Complementary Filter
- Categoria: State estimation & navigation › Localisation
- Tag: state-estimation, imu, attitude-estimation, sensor-fusion, filtering
Un semplice stimatore che fonde due sensori con rumore complementare applicando un filtro passa-basso a uno e un filtro passa-alto all'altro; usato comunemente per fondere i dati di giroscopio e accelerometro in una stima dell'assetto.
Definizione
Un filtro complementare (complementary filter) combina due misure della stessa grandezza i cui errori si trovano in bande di frequenza diverse. Di un sensore ci si fida alle basse frequenze e lo si fa passare attraverso un filtro passa-basso, dell'altro ci si fida alle alte frequenze e lo si fa passare attraverso un filtro passa-alto, e i due filtri sono scelti in modo che la loro somma sia uno, così che il segnale vero passi inalterato. Il caso classico è la stima dell'assetto da un'IMU: integrare il giroscopio dà angoli regolari e reattivi che derivano a causa del bias, mentre l'inclinazione calcolata dall'accelerometro è rumorosa e disturbata da vibrazioni e accelerazioni ma non deriva. Combinandoli si ottengono rollio e beccheggio al tempo stesso reattivi e stabili.
Nella sua forma discreta più semplice, il filtro aggiorna un angolo come θ ← α(θ + ω·Δt) + (1 − α)·θ_acc, dove α vicino a uno fissa la costante di tempo di incrocio. Le versioni non lineari lavorano direttamente su matrici di rotazione o quaternioni per restare valide ad angoli grandi; il filtro complementare esplicito di Mahony, Hamel e Pflimlin (2008) stima anche il bias del giroscopio tramite un termine integrale, e il filtro di Madgwick usa un passo di correzione a discesa del gradiente. La rotta non può essere corretta dall'accelerometro, perché la gravità non contiene informazioni sulla rotazione attorno all'asse verticale, quindi l'imbardata richiede un magnetometro, la visione o un altro riferimento.
L'ipotesi chiave è che, in media nel tempo, l'accelerometro misuri la reazione alla gravità. In realtà un accelerometro misura la forza specifica, cioè la differenza tra l'accelerazione del corpo e la gravità, quindi durante un'accelerazione prolungata, come una lunga virata coordinata, il riferimento di inclinazione risulta distorto. Sui multirotori in volo, le letture orizzontali dell'accelerometro riflettono soprattutto la resistenza dei rotori e non l'inclinazione, il che limita la validità dell'ipotesi. Rispetto a un filtro di Kalman, un filtro complementare ha guadagni fissi, nessun modello esplicito dell'incertezza e un costo computazionale molto basso, ed è per questo che è comune sui piccoli controllori di volo e sulle schede IMU per hobbisti. Per problemi lineari con rumore stazionario, un filtro di Kalman a regime assume la stessa forma complementare, con guadagni scelti in base al modello di rumore.
Perché è importante
È spesso il primo metodo di fusione sensoriale che gli ingegneri implementano, e resta una scelta pratica ovunque la potenza di calcolo sia scarsa o basti una stima dell'assetto semplice e regolabile. Capire la sua ipotesi sulla gravità spiega anche perché le stime dell'assetto peggiorano durante accelerazioni prolungate.
Applicazioni principali
- Stima dell'assetto su piccoli controllori di volo e schede IMU
- Robot autobilanciati e piattaforme a pendolo inverso
- Rilevamento dell'inclinazione per gimbal di telecamere e dispositivi portatili
- Fusione dei dati di barometro e accelerometro per quota e velocità di salita
- Stima dell'assetto di riserva accanto a filtri più complessi
In pratica
Un robot autobilanciato a due ruote legge un'IMU a sei assi all'interno di un anello di controllo veloce su un microcontrollore. L'angolo di beccheggio calcolato con atan2 dagli assi dell'accelerometro salta ogni volta che i motori danno uno strattone al telaio, mentre la velocità angolare integrata del giroscopio deriva costantemente. L'ingegnere sottrae un bias del giroscopio misurato all'avvio, poi combina i due con un filtro complementare, scegliendo una costante di tempo di incrocio abbastanza lunga da ignorare gli strattoni dei motori ma abbastanza breve da annullare la deriva. La stessa idea compare nei sistemi di ricerca: nei lavori sui quadricotteri che volano dopo il guasto di un rotore, un filtro complementare fornisce beccheggio e rollio dalla sola IMU, mentre la visione di bordo fornisce posizione e rotta.
Idee sbagliate comuni
- L'accelerometro misura la gravità — misura la forza specifica, che è pari alla reazione alla gravità solo quando il corpo non sta accelerando
- Un giroscopio e un accelerometro bastano per un orientamento 3D completo — l'imbardata non è osservabile dalla gravità e deriva senza un magnetometro o un altro riferimento di rotta
- Un filtro complementare è un'alternativa grossolana al filtro di Kalman — un filtro di Kalman a regime per un problema lineare ha la stessa struttura; la differenza è che i suoi guadagni derivano da un modello di rumore
Chi dovrebbe saperlo
- Sviluppatori di sistemi embedded e di controllori di volo
- Hobbisti che costruiscono droni e robot autobilanciati
- Ingegneri della stima dello stato
- Studenti di robotica che imparano la fusione sensoriale
Tecnologie correlate
- Filtro di Kalman (Kalman Filter)
- Filtro di Mahony (Mahony Filter)
- Filtro di Madgwick (Madgwick Filter)
- Sistema di riferimento di assetto e rotta (Attitude and Heading Reference System, AHRS)
- Integrazione dei quaternioni (Quaternion Integration)
Termini correlati
Progetti correlati
- 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
Video
- Drone Control and the Complementary Filter: Brian Douglas
- Complementary Filter Sensor Fusion between Accelerometer and Gyroscope to estimate Pitch and Roll: OtherYATC