Jak modelować nieprzewidywalny hałas w filtrze Kalmana?

9

Tło:

Wdrażam prosty filtr Kalmana, który szacuje kierunek ruchu robota. Robot jest wyposażony w kompas i żyroskop.

Moje zrozumienie:

Zastanawiam się nad przedstawieniem mojego stanu jako wektora 2D , gdzie to bieżący kierunek kursu, a to szybkość obrotu zgłaszana przez żyroskop.(x,x˙)xx˙

Pytania:

  1. Jeśli moje zrozumienie jest prawidłowe, nie będzie termin kontrola, moim filtrze. Czy to prawda? Co jeśli przyjmę stan jako wektor 1D ? Czy zatem moja staje się terminem kontrolnym ? Czy te dwie metody przyniosą różne wyniki?u(x)x˙u
  2. Jak wiemy, główne źródło hałasu pochodzi z kompasu, gdy kompas znajduje się w zniekształconym polu magnetycznym. Tutaj przypuszczam, że szum Gaussa jest mniej znaczący. Ale zniekształcenie magnetyczne jest całkowicie nieprzewidywalne. Jak modelujemy to w filtrze Kalmana?
  3. Czy w filtrze Kalmana konieczne jest założenie, że „wszystkie dźwięki są białe”? Powiedzmy, że jeśli mój rozkład hałasu jest rozkładem Laplaciana, czy nadal mogę używać filtra Kalmana? Czy muszę przełączyć się na inny filtr, na przykład Extended Kalman Filter?
Hazard Sibbs
źródło

Odpowiedzi:

6
  1. Modelowałbym to jako system jedno-stanowy (x), z żyroskopem jako wejściem sterującym. Szum żyroskopowy staje się szumem wejściowym stanu, hałas kompasu staje się hałasem pomiarowym. Więc twój model systemu to gdzie jest oszacowaniem kierunku filtra, który porównujesz z kierunkiem kompasu, aby uzyskać Kalmana aktualizacja.
    θ˙^=ωgyro+w
    y^=x^
    y^
  2. Zniekształcenie magnetyczne będzie trudne, ponieważ jeśli usiądziesz w jednym miejscu, pojawi się jako stałe przesunięcie - filtr Kalmana nie poradzi sobie z tym dobrze. Jestem prawie pewien, że albo musisz zmapować zniekształcenie, uzyskać drugie odniesienie do absolutnego kierunku, albo po prostu zaakceptować zniekształcenie.
  3. Mylisz zawartość spektralną z rozkładem prawdopodobieństwa. Jeśli szum jest biały, wówczas każda próbka jest całkowicie niezależna od każdej innej próbki. Jeśli hałas jest laplacki, każda próbka jest zgodna z rozkładem Laplace'a. Filtry Kalmana nie lubią kolorowych szumów (ale można sobie z tym poradzić, dodając stany). Filtr Kalmana jest tylko ogólnym optymalnym filtrem, gdy hałas ma rozkład Gaussa, a funkcją kosztu jest suma kwadratów. W przypadku każdej innej funkcji hałasu i kosztów optymalny filtr jest prawdopodobnie nieliniowy. Ale dla każdej funkcji kosztu zerowego, białego szumu i sumy kwadratów filtr Kalmana jest najlepszym filtrem liniowym, jaki można znaleźć.

(Zauważ, że model systemu, który podałem, kończy się dość trywialnym filtrem Kalmana - możesz być lepiej, jeśli nie możesz znaleźć innego sposobu oszacowania przesunięcia kompasu, używając filtru uzupełniającego, aby połączyć te dwa wejścia czujnika. wszystkie obliczenia Kalmana i tak po prostu odkasną filtr uzupełniający, a są szanse, że będziesz mieć wystarczająco dużo domysłów dla swoich stałych, które możesz równie dobrze odgadnąć w punkcie przejścia w filtrze uzupełniającym i gotowe).

(Zauważ też, że jeśli masz jakieś bezwzględne odniesienie do pozycji , a niektóre oznaczają oszacowanie prędkości i pojazd, który zawsze jedzie w kierunku, w którym go wskazujesz, że możesz bardzo korzystnie zastosować rozszerzony filtr Kalmana, aby skorygować zniekształcenie kompasu za pomocą kierunek, w którym faktycznie się porusza, aby skorygować kierunek kompasu).

Optimal State Estimation autorstwa Dana Simona, Wiley 2006, to - moim zdaniem - bardzo bogate i jasne podejście do tematu filtrowania Kalmana i jego bardziej wyrafinowanych braci (H-infinity, przedłużony Kalman, bezzapachowy Kalman, a nawet trochę na temat filtrowania baysiańskiego i cząstek). Nie powie ci, jak zastosować to do takich problemów nawigacyjnych, ale gdzie byłaby zabawa w życiu, gdyby wszystkie problemy zostały rozwiązane ?. Jeśli nie potrafisz podążać za matematyką w książce Simona, prawdopodobnie powinieneś zadać sobie pytanie, czy będziesz w stanie zastosować filtr Kalmana w jakikolwiek inteligentny sposób.

TimWescott
źródło
+1 Dla komplementarnego filtra dla tej aplikacji wydaje się bardziej odpowiednie. Również książka Dana Simona jest bardzo dobra. Ten artykuł stanowi dobre wprowadzenie do filtra Kalmana (tego samego autora) masys.url.tw/AU/2013SP/OpenCV/0513/kalman-dan-simon.pdf
ddevaz
@ddevaz Tak, faktycznie wdrażam teraz filtr uzupełniający. Problem polega jednak na tym, że nie przynosi bardzo dobrych rezultatów. Zastanawiam się więc nad przejściem na inny „bardziej wyrafinowany” filtr ...
Sibbs Gambling
Widzę. Zredagowałem swoją odpowiedź, aby dołączyć materiał referencyjny na temat implementacji filtra Kalmana z żyroskopami, akcelerometrami i magnetometrem.
ddevaz,
3
  1. Nie będzie żadnego wejściowego elementu sterującego. Powinieneś wziąć (x, xdot) jako wektor stanu, aby poprawnie sformułować filtr Kalmana.

  2. Głównymi źródłami hałasu są kompas i żyroskop . Hałas i dryf żyroskopu są znaczące. Pokonywanie zniekształceń magnetycznych jest dość trudne, ale istnieją techniki kompensacji .

  3. Konieczne jest założenie zerowego średniego wielowymiarowego szumu o rozkładzie normalnym, jednak biały szum jest tylko szczególnym przypadkiem. W przypadku rozszerzonego filtra Kalmana założenie to musi być nadal prawdziwe. Możesz zajrzeć do innych typów filtrów ( filtr cząstek , bezzapachowy filtr Kalmana ).

Papier do projektowania / wdrażania filtrów Kalmana:

Wdrożenie algorytmu syntezy czujników do wykrywania orientacji 3D za pomocą czujników bezwładnościowych / magnetycznych

ddevaz
źródło
Więc nie mogę opuścić KF, aby poradzić sobie z nieprzewidywalnym zniekształceniem magnetycznym, prawda? Powinienem najpierw odrzucić zniekształcone wartości, a następnie zostawić KF, aby zajął się szumem czujnika. Dobrze?
Sibbs Gambling
Tak. Filtr Kalmana nie będzie w stanie dokładnie skompensować zniekształcenia magnetycznego, ponieważ zmiany mogą być drastyczne. Najpierw spróbuję zaimplementować kompensację magnetyczną, a następnie zaimplementować filtr Kalmana.
ddevaz