Extended Kalman Filter
- Detto anche: EKF, extended KF
- Categoria: State estimation & navigation › Localisation
- Tag: state-estimation, sensor-fusion, localization, navigation, filtering, SLAM
Estensione non lineare del filtro di Kalman che stima lo stato di un sistema dinamico linearizzandone il modello attorno alla stima attuale a ogni passo temporale.
Definizione
Il filtro di Kalman esteso (EKF) è un algoritmo di stima dello stato che estende il filtro di Kalman classico per gestire dinamiche di sistema e modelli di osservazione non lineari. Mentre il filtro di Kalman standard fornisce stime ottimali dello stato per sistemi lineari con rumore gaussiano, la maggior parte dei sistemi robotici reali è non lineare: l'odometria delle ruote coinvolge funzioni trigonometriche, le osservazioni delle telecamere la proiezione prospettica e l'integrazione della IMU la matematica delle rotazioni. L'EKF affronta il problema linearizzando le funzioni non lineari attorno alla stima attuale dello stato con lo sviluppo di Taylor al primo ordine (matrici jacobiane), per poi applicare le equazioni standard del filtro di Kalman al sistema linearizzato.
L'algoritmo opera in due passi alternati. Il passo di predizione usa il modello dinamico del sistema per propagare in avanti nel tempo la stima dello stato e la sua incertezza. Per un robot mobile può usare le letture degli encoder delle ruote e un modello cinematico per prevedere la nuova posizione e il nuovo orientamento del robot. Il passo di aggiornamento incorpora le nuove misure dei sensori per correggere la stima prevista, pesando la correzione in base alle incertezze relative della predizione e della misura. I sensori meno rumorosi ricevono un peso maggiore nella correzione.
L'EKF mantiene un vettore di stato (la migliore stima di grandezze come posizione, velocità e orientamento) e una matrice di covarianza (che rappresenta l'incertezza di quella stima). Man mano che i sensori forniscono più informazioni, la covarianza di solito si riduce, indicando una fiducia crescente nella stima. Quando il robot attraversa zone prive di caratteristiche distintive per i sensori, la covarianza cresce, riflettendo un'incertezza in aumento.
La linearizzazione che rende l'EKF trattabile introduce anche il suo limite principale: funziona bene solo quando la non linearità è lieve rispetto all'incertezza. Se la stima dello stato è lontana dallo stato reale o il sistema è fortemente non lineare, l'approssimazione al primo ordine non regge più e il filtro può divergere. Per questi casi il filtro di Kalman unscented (UKF) e i filtri a particelle sono alternative migliori, anche se con un costo computazionale più elevato.
Nonostante i suoi limiti, l'EKF resta il cavallo di battaglia della stima dello stato in robotica grazie alla sua efficienza computazionale, alla facilità di implementazione e a decenni di affidabilità dimostrata. È la spina dorsale della maggior parte dei sistemi di navigazione GPS/INS, delle pipeline di odometria visivo-inerziale e degli stack di localizzazione dei robot. La variante EKF-SLAM stima contemporaneamente la posa del robot e le posizioni dei punti di riferimento, permettendo ai robot di costruire mappe mentre si localizzano.
Perché è importante
L'EKF è l'algoritmo che permette ai robot di sapere dove si trovano. Ogni robot mobile, drone e veicolo autonomo deve fondere dati rumorosi dei sensori in una stima coerente della propria posizione, velocità e orientamento. L'EKF lo fa in modo affidabile, efficiente e in tempo reale, ed è quindi uno degli algoritmi di maggiore importanza pratica in tutta la robotica.
Applicazioni principali
- Localizzazione dei robot mobili: fondere odometria delle ruote, IMU e GPS per la stima della posizione
- Stima dello stato dei droni: combinare i dati di accelerometro, giroscopio, magnetometro e barometro
- Odometria visivo-inerziale: fondere le misure di telecamera e IMU per la stima del moto proprio
- EKF-SLAM: localizzazione e mappatura simultanee con il filtro di Kalman esteso
- Navigazione GPS/INS: combinare il posizionamento satellitare con la navigazione inerziale per una localizzazione robusta
- Stima dello stato della batteria: monitorare livello di carica e stato di salute in veicoli elettrici e robot
In pratica
In un tipico robot mobile basato su ROS, il pacchetto robot_localization fornisce un nodo EKF pronto all'uso che fonde odometria delle ruote, dati della IMU e, facoltativamente, il GPS in una stima della posa regolare. L'ingegnere configura quali sensori usare e quali variabili di stato osserva ciascun sensore, e l'EKF si occupa del resto: predice tra una misura e l'altra, corregge quando arrivano nuovi dati e mantiene una stima coerente dell'incertezza.
Per applicazioni più impegnative come la guida autonoma, l'EKF fonde dati di LiDAR, telecamere, radar, GPS e IMU a frequenze diverse: LiDAR a 10 Hz, IMU a 200 Hz, GPS a 1 Hz. Il passo di predizione dell'EKF gira alla frequenza del sensore più veloce (la IMU), mentre i passi di aggiornamento avvengono in modo asincrono man mano che ciascun sensore fornisce nuovi dati. Questa fusione a frequenze multiple è uno dei punti di forza pratici dell'EKF.
Idee sbagliate comuni
- L'EKF fornisce la stima ottimale per i sistemi non lineari: è ottimale solo in modo approssimato; la linearizzazione introduce errori che possono accumularsi
- L'EKF è superato e sostituito dai filtri a particelle: l'EKF resta in pratica il filtro più usato grazie alla sua efficienza e affidabilità per sistemi debolmente non lineari
- Per usare un EKF bisogna capire tutta la matematica: una comprensione profonda aiuta, ma librerie come robot_localization (ROS) forniscono implementazioni dell'EKF ben collaudate
- L'EKF può fondere solo due sensori: l'EKF gestisce in modo naturale qualsiasi numero di modalità sensoriali nel suo passo di aggiornamento delle misure
Chi dovrebbe saperlo
- Ingegneri di robotica mobile che implementano sistemi di localizzazione e navigazione
- Sviluppatori di droni che lavorano su stima dello stato e controllo del volo
- Ingegneri di veicoli autonomi che fondono più flussi di dati dai sensori
- Ricercatori SLAM che costruiscono sistemi di mappatura e localizzazione
- Studenti di robotica che imparano i fondamenti della teoria della stima
Tecnologie correlate
- Filtro di Kalman
- Filtro di Kalman unscented
- Filtro a particelle
- Matrice jacobiana
- Matrice di covarianza
- Distribuzione gaussiana
- Stima bayesiana
Progetti correlati
- PCL: Industry-standard C++ library for point cloud processing in robotics perception
- Cartographer: Google's real-time 2D and 3D SLAM system for multi-platform robotics
- Nav2: ROS 2 navigation stack with path planning and obstacle avoidance for mobile robots
- FAST-LIVO2: Fast, direct LiDAR-inertial-visual odometry from HKU-MARS, published in IEEE T-RO
- DimOS: Python robotics runtime with agents, SLAM and teleop, no ROS required
- GTSAM: Factor-graph optimization library powering many modern SLAM backends
Video
- Visually Explained: Kalman Filters: Visually Explained
- The Extended Kalman Filter (EKF): Why Taylor Expansions are Awesome: James Han