Concatenare i filtri di Kalman


9

Il mio team sta costruendo un robot per navigare autonomamente in un ambiente esterno. Recentemente abbiamo ottenuto un nuovo sensore IMU / GPS integrato che a quanto pare esegue alcuni filtri Kalman estesi su chip. Fornisce velocità di beccheggio, rollio e imbardata, nord, est e giù, latitudine e longitudine.

Tuttavia, abbiamo anche alcuni encoder collegati alle nostre ruote, che forniscono velocità lineari e angolari. Prima di ottenere questo nuovo sensore IMU / GPS, abbiamo creato il nostro EKF per stimare il nostro stato utilizzando gli encoder e alcuni altri sensori a basso costo. Vogliamo utilizzare il filtro on-chip di questo nuovo sensore, ma anche incorporare i nostri encoder nel mix.

C'è qualche problema con il concatenamento dei filtri? Voglio dire, useremmo l'output dell'EKF on-chip del sensore IMU / GPS come aggiornamento del nostro EKF, così come usiamo i dati letti dagli encoder come aggiornamento del nostro EKF. Mi sembra ragionevole, ma mi chiedevo cosa si dovesse fare di solito in questo caso.


Puoi inviare correzioni / stime nella "scatola nera" dell'EKF?
Damien

@Damien no, non sembra esserci un modo per farlo.
Robz,

Risposte:


4

È possibile utilizzare INS / GPS come aggiornamenti all'output del primo EKF. In realtà, questo non è concatenare, ma semplicemente condizionare la stima sulla base delle informazioni aggiunte dall'INS / GPS.

Supponiamo di avere le seguenti funzioni:

, P t + 1 | t = EKF_PREDICT ( x t , P t , u t ), per input come stato x , covarianza P e input di controllo (stimati dall'odometria) u t .Xt+1|tPt+1|txtPtutxPut

e

, P t + 1 | t + 1 = EKF_UPDATE ( x t + 1 | t , P t + 1 | t , x t + 1 ). xt+1|t+1Pt+1|t+1xt+1|tPt+1|tX^t+1

Le stime sensori sono x t + 1 . Abbiamo cose come:X^t+1

X^t+1gpS=f(solPS)

X^t+1mun'p=f(mun'p)

X^t+1ionS=f(ioNS)

ecc. per tutti gli altri modi di stimare lo stato del robot. Quindi eseguire la funzione EKF_UPDATE per tutti quei sensori è abbastanza buono.

Il tuo loop sarà qualcosa del genere:

per tutto il tempo t

  • Let tramite l'odometriche corrente / stima cinematica di posa, e R u tramite il rumore tale stima.utRu

  • , P t + 1 | t = EKF_PREDICT ( x t , P t , u t , R u )Xt+1|tPt+1|tXtPtutRu

  • per tutti i sensori ,S

    • Let x tramite la stima della posa da tale sensore, e R S tramite il rumore che stimaX^t+1SRS

    • , P t + 1 | t + 1 = EKF_UPDATE ( x t + 1 | t , P t + 1 | t , x t + 1 , R S ). Xt+1|t+1Pt+1|t+1Xt+1|tPt+1|tX^t+1,RS

    • finali per

  • finali per

Alcuni avvertimenti sono:

  • Poiché stiamo utilizzando l'EKF, non vi è alcuna garanzia che il preventivo sia indipendente dall'ordinamento degli aggiornamenti. Cioè, se si esegue INS quindi GPS, la stima risultante potrebbe essere diversa rispetto a se si aggiorna con GPS quindi INS. Solitamente questo non è un grosso problema, ma il filtro richiederà molta più messa a punto.

  • Si prega di essere consapevoli del fatto che il tuo INS ha una propensione e una deriva, che potrebbero influire sulla tua affidabilità a lungo termine. Il GPS può aiutarti molto qui. La maggior parte della letteratura stima contemporaneamente la distorsione e la deriva nell'INS.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.