Visualizzazione e debug di un EKF


22

Attualmente sto eseguendo il debug e ottimizzando un EKF (Extended Kalman Filter). Il compito è il classico tracciamento della posa di robot mobili in cui i punti di riferimento sono marcatori AR.

A volte sono sorpreso di come alcune misurazioni influenzino la stima. Quando guardo e calcolo i numeri e le matrici coinvolte, posso capire come è stata eseguita la fase di aggiornamento, cosa e perché è successo esattamente, ma questo è molto noioso.

Quindi mi chiedo se qualcuno sta usando una tecnica, un trucco o una visualizzazione intelligente per avere un'idea migliore di ciò che sta accadendo nel passaggio di aggiornamento di EKF?

AGGIORNAMENTO N. 1 (sarà più specifico e mostrerà la prima approssimazione di ciò che ho in mente)

Quello che sto cercando è un modo per visualizzare un passaggio di aggiornamento in un modo che mi dia un'idea di come ogni componente della misurazione influisce su ciascun componente dello stato.

La mia prima idea è quella di tracciare la misurazione e la sua previsione insieme ad alcuni vettori presi dalla matrice K. I vettori di K rappresentano come il vettore dell'innovazione (misura - previsione della misura, non tracciata) influenzerà ogni componente dello stato.

Attualmente sto lavorando con un EKF in cui lo stato è posa 2D (x, y, angolo) e anche le misure sono pose 2D.

Trama del passaggio di aggiornamento

Nell'immagine allegata (aprila in una nuova pagina / scheda per vedere a piena risoluzione), il vettore (ridimensionato) K (1,1: 2) (sintassi MATLAB per prendere una matrice secondaria da matrice 3x3) dovrebbe dare un'idea di come il primo componente dello stato EKF cambierà con l'attuale vettore di innovazione, K (2,1: 2) come cambierà il secondo componente di EKF, ecc. In questo esempio, il vettore di innovazione ha un componente x relativamente grande ed è allineato con vettore K (2,1: 2) - il secondo componente dello stato (coordinata y) cambierà di più.

Un problema in questo diagramma è che non dà un'idea di come il terzo componente (angolo) del vettore dell'innovazione influenza lo stato. Il primo componente dello stato aumenta un po ', contrariamente a quanto indica K (1: 1: 2) - il terzo componente dell'innovazione causa questo, ma al momento non riesco a visualizzarlo.

Il primo miglioramento sarebbe quello di visualizzare come il terzo componente dell'innovazione influenza lo stato. Quindi sarebbe bello aggiungere dati di covarianza per avere un'idea di come viene creata la matrice K.

AGGIORNAMENTO # 2 Ora la trama ha vettori nello spazio degli stati che mostrano come ogni componente della misurazione cambia la posizione. Da questo diagramma, posso vedere che il terzo componente della misurazione cambia di più lo stato.

Aggiunti vettori corrispondenti a ciascun componente della misurazione nello spazio-stato


Potresti provare a simulare l'EKF su Gazebo Data.
Naresh,

Grazie per l'aggiornamento @Ian e mi dispiace che mi ci sia voluto tanto tempo per notarlo. * 8 ')
Mark Booth

Risposte:


4

Un modo molto informativo per visualizzare l'effetto delle misurazioni (per me) è tracciare lo stato del robot (media, con ellisse di covarianza) prima e dopo ogni misurazione. Quindi, prendi i singoli componenti della misurazione (cuscinetto, intervallo per i marcatori AR) e applicali separatamente per farti un'idea.

Per farlo:

un',Bθ[0,2π]

r(θ)=un'BBcos2θ+un'peccato2θ

Tracciare la covarianza dell'ipotesi precedente, dello stato misurato e dell'ipotesi posteriore è di solito sufficiente per scoprire se le equazioni di un EKF vengono applicate correttamente.

Buona fortuna e non aggiornare la tua domanda troppo frequentemente. Invece, torna con nuove domande.


0

Qualcosa che viene spesso fatto è tracciare nel tempo le variabili di stato e i loro intervalli di 3 sigma. I punti in cui questo intervallo si riduce sono gli aggiornamenti, in cui è possibile annotare la fonte delle misurazioni interessate.

Oltre agli errori di implementazione che dovrebbero essere controllati (non solo equazioni errate, ma anche equazioni numericamente instabili), l'effetto degli aggiornamenti è direttamente influenzato solo dalla differenza tra ciò che è "atteso" e "misurato" e le loro rispettive incertezze. Quindi potresti essere interessato a capire un modo per visualizzare questo equilibrio in termini di progressione del tempo nella prima trama.

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.