Complementary Filter
- Catégorie: State estimation & navigation › Localisation
- Mots-clés: state-estimation, imu, attitude-estimation, sensor-fusion, filtering
Un estimateur simple qui fusionne deux capteurs aux bruits complémentaires en filtrant l'un par un passe-bas et l'autre par un passe-haut ; couramment utilisé pour fusionner les données du gyroscope et de l'accéléromètre en une attitude.
Définition
Le filtre complémentaire (complementary filter) combine deux mesures d'une même grandeur dont les erreurs se situent dans des bandes de fréquence différentes. On fait confiance à un capteur aux basses fréquences et on le fait passer par un filtre passe-bas, à l'autre aux hautes fréquences et on le fait passer par un filtre passe-haut, et les deux filtres sont choisis pour que leur somme vaille un, afin que le signal réel passe sans modification. Le cas classique est l'estimation d'attitude à partir d'une IMU : intégrer le gyroscope donne des angles lisses et réactifs qui dérivent à cause du biais, tandis que l'inclinaison calculée à partir de l'accéléromètre est bruitée et perturbée par les vibrations et les accélérations, mais ne dérive pas. Les mélanger donne un roulis et un tangage à la fois réactifs et stables.
Sous sa forme discrète la plus simple, le filtre met à jour un angle selon θ ← α(θ + ω·Δt) + (1 − α)·θ_acc, où α proche de un fixe la constante de temps de coupure. Des versions non linéaires travaillent directement sur des matrices de rotation ou des quaternions pour rester valides aux grands angles ; le filtre complémentaire explicite de Mahony, Hamel et Pflimlin (2008) estime aussi le biais du gyroscope par un terme intégral, et le filtre de Madgwick utilise une étape de correction par descente de gradient. Le cap ne peut pas être corrigé par l'accéléromètre, car la gravité ne porte aucune information sur la rotation autour de l'axe vertical ; le lacet nécessite donc un magnétomètre, la vision ou une autre référence.
L'hypothèse clé est qu'en moyenne dans le temps, l'accéléromètre mesure la réaction à la gravité. Un accéléromètre mesure en réalité la force spécifique, la différence entre l'accélération du corps et la gravité, si bien que lors d'une accélération soutenue, comme un long virage coordonné, la référence d'inclinaison est biaisée. Sur les multirotors en vol, les mesures horizontales de l'accéléromètre reflètent surtout la traînée des rotors plutôt que l'inclinaison, ce qui limite la validité de l'hypothèse. Comparé à un filtre de Kalman, un filtre complémentaire a des gains fixes, aucun modèle explicite d'incertitude et un coût de calcul très faible, d'où sa fréquence sur les petits contrôleurs de vol et les cartes IMU d'amateurs. Pour les problèmes linéaires à bruit stationnaire, un filtre de Kalman en régime permanent prend la même forme complémentaire, avec des gains choisis à partir du modèle de bruit.
Pourquoi c'est important
C'est souvent la première méthode de fusion de capteurs que les ingénieurs implémentent, et il reste un choix pratique partout où le calcul est limité ou qu'une estimation d'attitude simple et réglable suffit. Comprendre son hypothèse sur la gravité explique aussi pourquoi les estimations d'attitude se dégradent lors d'accélérations soutenues.
Applications principales
- Estimation d'attitude sur les petits contrôleurs de vol et les cartes IMU
- Robots en équilibre et plateformes à pendule inversé
- Mesure d'inclinaison pour nacelles de caméra et appareils portatifs
- Fusion de données de baromètre et d'accéléromètre pour l'altitude et le taux de montée
- Estimation d'attitude de secours en parallèle de filtres plus complexes
En pratique
Un robot en équilibre à deux roues lit une IMU six axes dans une boucle de commande rapide sur un microcontrôleur. L'angle de tangage calculé avec atan2 à partir des axes de l'accéléromètre saute chaque fois que les moteurs secouent le châssis, tandis que la vitesse angulaire intégrée du gyroscope dérive régulièrement. L'ingénieur soustrait un biais du gyroscope mesuré au démarrage, puis mélange les deux avec un filtre complémentaire, en choisissant une constante de temps de coupure assez longue pour ignorer les à-coups des moteurs mais assez courte pour annuler la dérive. La même idée se retrouve dans des systèmes de recherche : dans des travaux sur des quadrirotors volant après une défaillance de rotor, un filtre complémentaire fournit le tangage et le roulis à partir de la seule IMU, tandis que la vision embarquée fournit la position et le cap.
Idées reçues
- L'accéléromètre mesure la gravité — il mesure la force spécifique, qui n'est égale à la réaction à la gravité que lorsque le corps n'accélère pas
- Un gyroscope et un accéléromètre suffisent pour une orientation 3D complète — le lacet n'est pas observable à partir de la gravité et dérive sans magnétomètre ni autre référence de cap
- Un filtre complémentaire est une alternative grossière au filtre de Kalman — un filtre de Kalman en régime permanent pour un problème linéaire a la même structure ; la différence est que ses gains proviennent d'un modèle de bruit
Qui devrait le savoir
- Développeurs de systèmes embarqués et de contrôleurs de vol
- Amateurs qui construisent des drones et des robots en équilibre
- Ingénieurs en estimation d'état
- Étudiants en robotique qui apprennent la fusion de capteurs
Technologies associées
- Filtre de Kalman (Kalman Filter)
- Filtre de Mahony (Mahony Filter)
- Filtre de Madgwick (Madgwick Filter)
- Centrale d'attitude et de cap (Attitude and Heading Reference System, AHRS)
- Intégration de quaternions (Quaternion Integration)
Termes associés
Projets associés
- PCL: Industry-standard C++ library for point cloud processing in robotics perception
- OpenCat: An open-source Arduino and Raspberry Pi-based quadruped robot pet framework
- FAST-LIVO2: Fast, direct LiDAR-inertial-visual odometry from HKU-MARS, published in IEEE T-RO
- GTSAM: Factor-graph optimization library powering many modern SLAM backends
- OpenVINS: The reference open platform for visual-inertial state estimation research
- manif: Header-only C++ Lie theory library for robotics state estimation
Vidéos
- Drone Control and the Complementary Filter: Brian Douglas
- Complementary Filter Sensor Fusion between Accelerometer and Gyroscope to estimate Pitch and Roll: OtherYATC