Open Source Robotics

Uma coleção selecionada de projetos, ferramentas e software de robótica de código aberto de alta qualidade.

Complementary Filter

  • Categoria: State estimation & navigation › Localisation
  • Tags: state-estimation, imu, attitude-estimation, sensor-fusion, filtering

Um estimador simples que funde dois sensores com ruído complementar aplicando um filtro passa-baixas a um e um filtro passa-altas ao outro; comumente usado para fundir dados de giroscópio e acelerômetro em uma atitude.

Definição

Um filtro complementar (complementary filter) combina duas medições da mesma grandeza cujos erros estão em faixas de frequência diferentes. Em um dos sensores se confia nas baixas frequências e ele passa por um filtro passa-baixas; no outro se confia nas altas frequências e ele passa por um filtro passa-altas, e os dois filtros são escolhidos de modo a somarem um, para que o sinal verdadeiro passe inalterado. O caso clássico é a estimação de atitude a partir de uma IMU: integrar o giroscópio fornece ângulos suaves e responsivos que derivam por causa do viés, enquanto a inclinação calculada a partir do acelerômetro é ruidosa e perturbada por vibração e aceleração, mas não deriva. Combiná-los fornece rolagem e arfagem ao mesmo tempo responsivas e estáveis.

Em sua forma discreta mais simples, o filtro atualiza um ângulo como θ ← α(θ + ω·Δt) + (1 − α)·θ_acc, em que α próximo de um define a constante de tempo de cruzamento. Versões não lineares trabalham diretamente com matrizes de rotação ou quatérnios para continuarem válidas em ângulos grandes; o filtro complementar explícito de Mahony, Hamel e Pflimlin (2008) também estima o viés do giroscópio por meio de um termo integral, e o filtro de Madgwick usa uma etapa de correção por descida de gradiente. O rumo não pode ser corrigido pelo acelerômetro, porque a gravidade não carrega informação sobre a rotação em torno do eixo vertical, então a guinada precisa de um magnetômetro, de visão ou de outra referência.

A suposição central é que, na média ao longo do tempo, o acelerômetro mede a reação à gravidade. Na verdade, um acelerômetro mede a força específica, a diferença entre a aceleração do corpo e a gravidade, de modo que durante uma aceleração sustentada, como uma longa curva coordenada, a referência de inclinação fica enviesada. Em multirrotores em voo, as leituras horizontais do acelerômetro refletem principalmente o arrasto dos rotores, e não a inclinação, o que limita o quanto a suposição se sustenta. Em comparação com um filtro de Kalman, um filtro complementar tem ganhos fixos, nenhum modelo explícito de incerteza e custo computacional muito baixo, e é por isso que é comum em controladores de voo pequenos e placas de IMU para hobbistas. Para problemas lineares com ruído estacionário, um filtro de Kalman em regime permanente assume a mesma forma complementar, com ganhos escolhidos a partir do modelo de ruído.

Por que importa

Muitas vezes é o primeiro método de fusão de sensores que os engenheiros implementam, e continua sendo uma escolha prática onde o processamento é limitado ou uma estimativa de atitude simples e ajustável basta. Entender sua suposição sobre a gravidade também explica por que as estimativas de atitude se degradam durante acelerações sustentadas.

Principais aplicações

  • Estimação de atitude em controladores de voo pequenos e placas de IMU
  • Robôs autoequilibrados e plataformas de pêndulo invertido
  • Detecção de inclinação para gimbals de câmera e dispositivos portáteis
  • Fusão de dados de barômetro e acelerômetro para altitude e razão de subida
  • Estimação de atitude de reserva ao lado de filtros mais complexos

Na prática

Um robô autoequilibrado de duas rodas lê uma IMU de seis eixos dentro de uma malha de controle rápida em um microcontrolador. O ângulo de arfagem calculado com atan2 a partir dos eixos do acelerômetro salta sempre que os motores dão trancos no chassi, enquanto a velocidade angular integrada do giroscópio deriva continuamente. O engenheiro subtrai um viés do giroscópio medido na inicialização e depois combina os dois com um filtro complementar, escolhendo uma constante de tempo de cruzamento longa o suficiente para ignorar os trancos dos motores, mas curta o suficiente para cancelar a deriva. A mesma ideia aparece em sistemas de pesquisa: em trabalhos sobre quadricópteros que voam após a falha de um rotor, um filtro complementar fornece a arfagem e a rolagem apenas a partir da IMU, enquanto a visão embarcada fornece a posição e o rumo.

Equívocos comuns

  • O acelerômetro mede a gravidade — ele mede a força específica, que é igual à reação à gravidade apenas quando o corpo não está acelerando
  • Um giroscópio e um acelerômetro bastam para uma orientação 3D completa — a guinada não é observável a partir da gravidade e deriva sem um magnetômetro ou outra referência de rumo
  • Um filtro complementar é uma alternativa grosseira a um filtro de Kalman — um filtro de Kalman em regime permanente para um problema linear tem a mesma estrutura; a diferença é que seus ganhos vêm de um modelo de ruído

Quem deve saber

  • Desenvolvedores de sistemas embarcados e de controladores de voo
  • Hobbistas que constroem drones e robôs autoequilibrados
  • Engenheiros de estimação de estado
  • Estudantes de robótica que aprendem fusão de sensores

Tecnologias relacionadas

  • Filtro de Kalman (Kalman Filter)
  • Filtro de Mahony (Mahony Filter)
  • Filtro de Madgwick (Madgwick Filter)
  • Sistema de referência de atitude e rumo (Attitude and Heading Reference System, AHRS)
  • Integração de quatérnios (Quaternion Integration)

Termos relacionados

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

Projetos 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 site requer JavaScript. Por favor, habilite o JavaScript para explorar nossos projetos de robótica.