Come modellare il rumore imprevedibile in Kalman Filter?


9

Sfondo:

Sto implementando un semplice filtro Kalman che stima la direzione di rotta di un robot. Il robot è dotato di una bussola e un giroscopio.

La mia comprensione:

Sto pensando di rappresentare il mio stato come un vettore 2D , dove è la direzione di rotta corrente e è la velocità di rotazione riportata dal giroscopio.x(X,X˙)XX˙

Domande:

  1. Se la mia comprensione è corretta, non ci sarà alcun termine di controllo, nel mio filtro. È vero? Cosa succede se prendo lo stato come vettore 1D ? Quindi il mio diventa il termine di controllo ? Questi due metodi produrranno risultati diversi?u(X)X˙u
  2. Come sappiamo, la principale fonte di rumore proviene dalla bussola quando la bussola si trova in un campo magnetico distorto. Qui, suppongo che il rumore gaussiano sia meno significativo. Ma la distorsione magnetica è totalmente imprevedibile. Come lo modelliamo nel filtro Kalman?
  3. In Kalman Filter, è necessario assumere che "tutti i rumori sono bianchi"? Ad esempio, se la mia distribuzione del rumore è in realtà una distribuzione Laplaciana, posso ancora utilizzare un filtro Kalman? O devo passare a un altro filtro, come Extended Kalman Filter?

Risposte:


6
  1. Vorrei modellare questo come un sistema a uno stato (x), con il giroscopio come input di controllo. Il rumore del giroscopio diventa rumore di input dello stato, il rumore della bussola diventa rumore di misurazione. Quindi il tuo modello di sistema diventa dove è la stima della direzione del filtro, che confronti con la direzione della bussola per ottenere il tuo Kalman aggiornare. y = x y
    θ˙^=ωgyro+w
    y^=X^
    y^
  2. La distorsione magnetica sarà difficile, perché se ti siedi in qualsiasi posto apparirà come un termine di offset costante - il filtro Kalman non si occuperà di questo bene. Sono abbastanza sicuro che dovrai mappare la distorsione, ottenere qualche secondo riferimento di direzione assoluta o semplicemente accettare la distorsione.
  3. Stai confondendo il contenuto spettrale con la distribuzione di probabilità. Se il rumore è bianco, ogni campione è perfettamente indipendente da qualsiasi altro campione. Se il rumore è Laplaciano, ogni campione obbedisce alla distribuzione di Laplace. Ai filtri di Kalman non piace il rumore colorato (ma puoi affrontarlo aggiungendo stati). Un filtro Kalman è solo il filtro ottimale globale quando il rumore è di distribuzione gaussiana e la funzione di costo è la somma dei quadrati. Per qualsiasi altra funzione di rumore e costo, il filtro ottimale è probabilmente non lineare. Ma per qualsiasi funzione a costo zero, rumore bianco e somma dei quadrati, il filtro Kalman è il miglior filtro lineare disponibile.

(Si noti che il modello di sistema che ho fornito termina con un filtro Kalman piuttosto banale - potresti stare meglio, se non riesci a trovare altri mezzi per stimare l'offset della bussola, utilizzando un filtro gratuito per combinare questi due ingressi del sensore. tutti i calcoli di Kalman finiranno comunque per tossire un filtro gratuito, e c'è la possibilità che tu abbia abbastanza congetture per le tue costanti che puoi anche indovinare al punto di crossover in un filtro gratuito e farcela).

(Si noti inoltre che se si dispone di un riferimento di posizione assoluto e di alcuni mezzi per stimare la velocità e un veicolo che va sempre nella direzione in cui lo si punta, è possibile utilizzare un filtro Kalman esteso in modo molto redditizio per correggere la distorsione della bussola utilizzando la direzione in cui si sposta effettivamente per correggere la direzione della bussola).

La stima ottimale dello stato di Dan Simon, Wiley 2006, è - a mio avviso - un trattamento molto ricco e chiaro sull'argomento del filtraggio di Kalman e sui suoi fratelli più sofisticati (H-infinito, Kalman esteso, Kalman non profumato e anche un po ' sul filtraggio baysiano e delle particelle). Non ti dirà come applicarlo a problemi di navigazione come questo, ma dove sarebbe il divertimento nella vita se tutti i problemi fossero risolti ?. Se non riesci a seguire la matematica nel libro di Simon, allora probabilmente dovresti chiederti se sarai in grado di applicare un filtro Kalman in qualche modo intelligente.


+1 Per il filtro complementare per questa applicazione sembra più adatto. Anche il libro di Dan Simon è molto buono. Questo articolo è una buona introduzione al filtro Kalman (dello stesso autore) masys.url.tw/AU/2013SP/OpenCV/0513/kalman-dan-simon.pdf
ddevaz

@ddevaz Sì, attualmente sto implementando un filtro complementare. Ma il problema è che non produce risultati molto buoni. Quindi sto pensando di passare a un altro filtro "più sofisticato" ...
Sibbs Gambling

Vedo. Ho modificato la mia risposta per includere materiale di riferimento sull'implementazione del filtro Kalman con giroscopi, accelerometri e un magnetometro.
ddevaz,

3
  1. Non ci sarà alcun termine di input di controllo. Dovresti prendere (x, xdot) come vettore di stato per formulare correttamente il filtro Kalman.

  2. Le principali fonti di rumore sono la bussola e il giroscopio . Il rumore e la deriva del giroscopio sono significativi. È piuttosto impegnativo superare la distorsione magnetica in generale, ma esistono tecniche di compensazione .

  3. L'ipotesi di un rumore di distribuzione normale multivariato medio zero è necessaria, tuttavia il rumore bianco è solo un caso speciale di ciò. Per il filtro Kalman esteso, questa ipotesi deve ancora essere vera. Puoi esaminare altri tipi di filtri ( filtro antiparticolato , filtro Kalman non profumato ).

Carta di progettazione / implementazione del filtro Kalman:

Implementazione di un algoritmo di fusione dei sensori per il rilevamento dell'orientamento 3D con sensori inerziali / magnetici


Quindi non posso lasciare il KF per gestire l'imprevedibile distorsione magnetica, giusto? Dovrei prima scartare prima i valori distorti e poi lasciare il KF per gestire il rumore del sensore. Giusto?
Sibbs Gambling

Sì. Il filtro Kalman non sarà in grado di compensare accuratamente la distorsione magnetica perché i cambiamenti potrebbero essere drastici. Vorrei prima provare ad attuare una compensazione magnetica, quindi implementare il filtro Kalman.
ddevaz,
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.