Complementary Filter
- Kategorie: State estimation & navigation › Localisation
- Schlagwörter: state-estimation, imu, attitude-estimation, sensor-fusion, filtering
Ein einfacher Schätzer, der zwei Sensoren mit komplementärem Rauschen zusammenführt, indem er den einen tiefpass- und den anderen hochpassfiltert; häufig verwendet, um Gyroskop- und Beschleunigungsdaten zur Lage zu fusionieren.
Definition
Ein Komplementärfilter (complementary filter) kombiniert zwei Messungen derselben Größe, deren Fehler in unterschiedlichen Frequenzbereichen liegen. Dem einen Sensor wird bei tiefen Frequenzen vertraut, und er durchläuft einen Tiefpass, dem anderen bei hohen Frequenzen, und er durchläuft einen Hochpass; die beiden Filter werden so gewählt, dass sie sich zu eins ergänzen, sodass das wahre Signal unverändert durchgeht. Der klassische Fall ist die Lageschätzung mit einer IMU: Die Integration des Gyroskops liefert glatte, schnell reagierende Winkel, die wegen des Bias driften, während die aus dem Beschleunigungssensor berechnete Neigung verrauscht und durch Vibration und Beschleunigung gestört ist, aber nicht driftet. Ihre Überblendung ergibt Roll- und Nickwinkel, die zugleich reaktionsschnell und stabil sind.
In seiner einfachsten diskreten Form aktualisiert der Filter einen Winkel als θ ← α(θ + ω·Δt) + (1 − α)·θ_acc, wobei ein α nahe eins die Übergangszeitkonstante festlegt. Nichtlineare Varianten arbeiten direkt auf Rotationsmatrizen oder Quaternionen, um auch bei großen Winkeln gültig zu bleiben; der explizite Komplementärfilter von Mahony, Hamel und Pflimlin (2008) schätzt über einen Integralterm zudem den Gyroskop-Bias, und Madgwicks Filter verwendet einen Korrekturschritt per Gradientenabstieg. Der Kurs lässt sich nicht mit dem Beschleunigungssensor korrigieren, weil die Schwerkraft keine Information über die Drehung um die Hochachse enthält; für den Gierwinkel braucht man daher ein Magnetometer, Vision oder eine andere Referenz.
Die zentrale Annahme ist, dass der Beschleunigungssensor im zeitlichen Mittel die Reaktion auf die Schwerkraft misst. Tatsächlich misst ein Beschleunigungssensor die spezifische Kraft, die Differenz zwischen der Beschleunigung des Körpers und der Schwerkraft, sodass die Neigungsreferenz bei anhaltender Beschleunigung, etwa in einer langen koordinierten Kurve, verfälscht ist. Bei Multikoptern im Flug spiegeln die horizontalen Beschleunigungsmesswerte überwiegend den Rotorwiderstand statt der Neigung wider, was einschränkt, wie gut die Annahme gilt. Verglichen mit einem Kalman-Filter hat ein Komplementärfilter feste Verstärkungen, kein explizites Unsicherheitsmodell und sehr geringen Rechenaufwand, weshalb er auf kleinen Flugreglern und Hobby-IMU-Platinen verbreitet ist. Bei linearen Problemen mit stationärem Rauschen nimmt ein stationärer Kalman-Filter dieselbe komplementäre Form an, wobei die Verstärkungen aus dem Rauschmodell gewählt werden.
Warum es wichtig ist
Er ist oft das erste Sensorfusionsverfahren, das Ingenieure implementieren, und bleibt eine praktische Wahl, wo Rechenleistung knapp ist oder eine einfache, einstellbare Lageschätzung genügt. Wer seine Schwerkraftannahme versteht, versteht auch, warum Lageschätzungen bei anhaltender Beschleunigung schlechter werden.
Wichtige Anwendungen
- Lageschätzung auf kleinen Flugreglern und IMU-Platinen
- Balancierroboter und Plattformen mit inversem Pendel
- Neigungserfassung für Kamera-Gimbals und Handgeräte
- Fusion von Barometer- und Beschleunigungsdaten für Höhe und Steigrate
- Rückfall-Lageschätzung neben komplexeren Filtern
In der Praxis
Ein zweirädriger Balancierroboter liest eine Sechs-Achsen-IMU in einem schnellen Regelkreis auf einem Mikrocontroller aus. Der mit atan2 aus den Achsen des Beschleunigungssensors berechnete Nickwinkel springt jedes Mal, wenn die Motoren das Chassis ruckartig bewegen, während die integrierte Gyroskop-Drehrate stetig driftet. Der Ingenieur zieht einen beim Start gemessenen Gyroskop-Bias ab und überblendet dann beide mit einem Komplementärfilter, wobei er eine Übergangszeitkonstante wählt, die lang genug ist, um Motorrucke zu ignorieren, aber kurz genug, um die Drift auszugleichen. Dieselbe Idee findet sich in Forschungssystemen: In Arbeiten zu Quadrocoptern, die nach einem Rotorausfall fliegen, liefert ein Komplementärfilter Nick- und Rollwinkel allein aus der IMU, während die bordeigene Bildverarbeitung Position und Kurs liefert.
Häufige Missverständnisse
- Der Beschleunigungssensor misst die Schwerkraft — er misst die spezifische Kraft, die nur dann der Reaktion auf die Schwerkraft entspricht, wenn der Körper nicht beschleunigt
- Gyroskop und Beschleunigungssensor genügen für die vollständige 3D-Orientierung — der Gierwinkel ist aus der Schwerkraft nicht beobachtbar und driftet ohne Magnetometer oder andere Kursreferenz
- Ein Komplementärfilter ist eine grobe Alternative zum Kalman-Filter — ein stationärer Kalman-Filter für ein lineares Problem hat dieselbe Struktur; der Unterschied ist, dass seine Verstärkungen aus einem Rauschmodell stammen
Wer das wissen sollte
- Entwickler für Embedded-Systeme und Flugregler
- Hobbybastler, die Drohnen und Balancierroboter bauen
- Ingenieure für Zustandsschätzung
- Robotikstudierende, die Sensorfusion lernen
Verwandte Technologien
- Kalman-Filter (Kalman Filter)
- Mahony-Filter (Mahony Filter)
- Madgwick-Filter (Madgwick Filter)
- Lage- und Kursreferenzsystem (Attitude and Heading Reference System, AHRS)
- Quaternionen-Integration (Quaternion Integration)
Verwandte Begriffe
Verwandte Projekte
- 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
Videos
- Drone Control and the Complementary Filter: Brian Douglas
- Complementary Filter Sensor Fusion between Accelerometer and Gyroscope to estimate Pitch and Roll: OtherYATC