Open Source Robotics

Una colección curada de proyectos, herramientas y software de robótica de código abierto de alta calidad.

Complementary Filter

  • Categoría: State estimation & navigation › Localisation
  • Etiquetas: state-estimation, imu, attitude-estimation, sensor-fusion, filtering

Un estimador sencillo que fusiona dos sensores con ruido complementario aplicando un filtro paso bajo a uno y un filtro paso alto al otro; se usa habitualmente para fusionar datos de giroscopio y acelerómetro en una actitud.

Definición

Un filtro complementario (complementary filter) combina dos medidas de la misma magnitud cuyos errores se encuentran en bandas de frecuencia distintas. En uno de los sensores se confía a bajas frecuencias y se pasa por un filtro paso bajo; en el otro se confía a altas frecuencias y se pasa por un filtro paso alto, y los dos filtros se eligen de modo que sumen uno para que la señal verdadera pase sin cambios. El caso clásico es la estimación de actitud a partir de una IMU: integrar el giroscopio da ángulos suaves y de respuesta rápida que derivan por el sesgo, mientras que la inclinación calculada a partir del acelerómetro es ruidosa y se ve perturbada por las vibraciones y las aceleraciones, pero no deriva. Combinarlos da un alabeo y un cabeceo que son a la vez de respuesta rápida y estables.

En su forma discreta más sencilla, el filtro actualiza un ángulo como θ ← α(θ + ω·Δt) + (1 − α)·θ_acc, donde α, cercano a uno, fija la constante de tiempo de cruce. Las versiones no lineales trabajan directamente sobre matrices de rotación o cuaterniones para seguir siendo válidas con ángulos grandes; el filtro complementario explícito de Mahony, Hamel y Pflimlin (2008) también estima el sesgo del giroscopio mediante un término integral, y el filtro de Madgwick usa un paso de corrección por descenso de gradiente. El rumbo no puede corregirse con el acelerómetro, porque la gravedad no contiene información sobre la rotación alrededor del eje vertical, de modo que la guiñada necesita un magnetómetro, visión u otra referencia.

El supuesto clave es que, promediado en el tiempo, el acelerómetro mide la reacción a la gravedad. En realidad, un acelerómetro mide la fuerza específica, la diferencia entre la aceleración del cuerpo y la gravedad, por lo que durante una aceleración sostenida, como un giro coordinado largo, la referencia de inclinación queda sesgada. En los multirrotores en vuelo, las lecturas horizontales del acelerómetro reflejan sobre todo el arrastre de los rotores y no la inclinación, lo que limita hasta qué punto se cumple el supuesto. En comparación con un filtro de Kalman, un filtro complementario tiene ganancias fijas, ningún modelo explícito de incertidumbre y un coste computacional muy bajo, por lo que es habitual en controladores de vuelo pequeños y en placas IMU para aficionados. Para problemas lineales con ruido estacionario, un filtro de Kalman en régimen permanente adopta la misma forma complementaria, con ganancias elegidas a partir del modelo de ruido.

Por qué importa

A menudo es el primer método de fusión de sensores que implementan los ingenieros, y sigue siendo una opción práctica allí donde el cómputo es escaso o basta con una estimación de actitud sencilla y ajustable. Entender su supuesto sobre la gravedad explica también por qué las estimaciones de actitud se degradan durante aceleraciones sostenidas.

Aplicaciones clave

  • Estimación de actitud en controladores de vuelo pequeños y placas IMU
  • Robots autoequilibrados y plataformas de péndulo invertido
  • Detección de inclinación para gimbals de cámara y dispositivos de mano
  • Fusión de datos de barómetro y acelerómetro para altitud y velocidad de ascenso
  • Estimación de actitud de respaldo junto a filtros más complejos

En la práctica

Un robot autoequilibrado de dos ruedas lee una IMU de seis ejes dentro de un lazo de control rápido en un microcontrolador. El ángulo de cabeceo calculado con atan2 a partir de los ejes del acelerómetro salta cada vez que los motores sacuden el chasis, mientras que la velocidad angular integrada del giroscopio deriva de forma constante. El ingeniero resta un sesgo del giroscopio medido en el arranque y después combina ambos con un filtro complementario, eligiendo una constante de tiempo de cruce lo bastante larga para ignorar las sacudidas de los motores pero lo bastante corta para cancelar la deriva. La misma idea aparece en sistemas de investigación: en trabajos sobre cuadricópteros que vuelan tras el fallo de un rotor, un filtro complementario proporciona el cabeceo y el alabeo solo a partir de la IMU, mientras que la visión a bordo proporciona la posición y el rumbo.

Ideas erróneas comunes

  • El acelerómetro mide la gravedad — mide la fuerza específica, que es igual a la reacción a la gravedad solo cuando el cuerpo no está acelerando
  • Un giroscopio y un acelerómetro bastan para una orientación 3D completa — la guiñada no es observable a partir de la gravedad y deriva sin un magnetómetro u otra referencia de rumbo
  • Un filtro complementario es una alternativa tosca a un filtro de Kalman — un filtro de Kalman en régimen permanente para un problema lineal tiene la misma estructura; la diferencia es que sus ganancias proceden de un modelo de ruido

Quién debería saberlo

  • Desarrolladores de sistemas embebidos y de controladores de vuelo
  • Aficionados que construyen drones y robots autoequilibrados
  • Ingenieros de estimación de estado
  • Estudiantes de robótica que aprenden fusión de sensores

Tecnologías relacionadas

  • Filtro de Kalman (Kalman Filter)
  • Filtro de Mahony (Mahony Filter)
  • Filtro de Madgwick (Madgwick Filter)
  • Sistema de referencia de actitud y rumbo (Attitude and Heading Reference System, AHRS)
  • Integración de cuaterniones (Quaternion Integration)

Términos relacionados

  • IMU
  • Sensor Fusion
  • Extended Kalman Filter
  • Yaw / Pitch / Roll
  • UAV
  • Visual-Inertial Odometry

Proyectos relacionados

  • 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

Vídeos

  • Drone Control and the Complementary Filter: Brian Douglas
  • Complementary Filter Sensor Fusion between Accelerometer and Gyroscope to estimate Pitch and Roll: OtherYATC

Este sitio web requiere JavaScript. Por favor, habilite JavaScript para explorar nuestros proyectos de robótica.