Finora sono stati discussi algoritmi di filtraggio il cui obiettivo è
stimare lo stato corrente del sistema sulla sola base delle osservazioni
disponibili fino all'istante corrente.
Più formalmente, il problema del filtraggio consiste nel determinare la
distribuzione
| (3.45) |
Nell'ambito della stima bayesiana ricorsiva è in effetti possibile distinguere tre problemi differenti:
Mentre i filtri di Kalman forniscono una stima causale dello stato, in molte applicazioni offline l'intera sequenza di osservazioni è già disponibile. In questo caso è possibile ottenere una stima più accurata degli stati passati sfruttando anche le osservazioni future. Tale problema prende il nome di smoothing.
Nel caso lineare-gaussiano una soluzione ottima è fornita
dall'algoritmo di Rauch–Tung–Striebel (RTS) (RTS65).
L'algoritmo esegue dapprima una normale fase forward di filtraggio di
Kalman, ottenendo per ogni istante la stima filtrata
e la relativa covarianza
.
Successivamente viene effettuata una passata backward che
propaga verso gli stati precedenti l'informazione contenuta nelle
osservazioni future.
Definito il guadagno di smoothing
| (3.46) |
| (3.47) |
| (3.48) |
L'algoritmo RTS può essere interpretato come una correzione retroattiva delle stime ottenute dal filtro di Kalman: se le osservazioni future indicano che una traiettoria stimata localmente non era plausibile, parte di tale informazione viene propagata agli stati precedenti. Ne consegue una riduzione dell'errore di stima e una maggiore coerenza temporale della traiettoria.
Lo smoothing è particolarmente utile nei problemi di ricostruzione di traiettorie, navigazione, fusione sensoriale e analisi offline dei dati, dove la causalità non rappresenta un vincolo e tutta la sequenza delle osservazioni è disponibile prima della fase di elaborazione.
Dal punto di vista concettuale lo smoothing RTS può essere visto come una soluzione intermedia tra il filtraggio causale e una ottimizzazione batch della traiettoria. Come nel caso batch, le osservazioni future influenzano la stima degli stati passati; tuttavia, invece di risolvere un problema globale ai minimi quadrati, RTS sfrutta una passata forward di filtraggio seguita da una passata backward di correzione. Nel caso lineare-gaussiano il risultato coincide con la soluzione bayesiana ottima del problema di smoothing e viene ottenuto con complessità lineare nel numero di campioni.
Sebbene l'algoritmo RTS sia definito per il caso lineare-gaussiano, il concetto di smoothing si estende naturalmente ai sistemi non lineari. In tali contesti vengono spesso impiegate varianti basate su EKF o UKF, oppure formulazioni batch ai minimi quadrati nelle quali l'intera traiettoria viene stimata simultaneamente. Molti problemi moderni di SLAM, visual odometry e pose graph optimization possono essere interpretati come problemi di smoothing non lineare.
Paolo medici