Państwo ma połączyć wszystkie te czujniki bezpośrednio do mikrokontrolera. Filtr Kalmana nie jest filtrem elektronicznym, takim jak filtr LRC, który przechodzi między czujnikami a mikrokontrolerem. Filtr Kalmana jest filtrem matematycznym zaimplementowanym jako procedura programowa wewnątrz mikrokontrolera.
Wymienione czujniki dają mikrokontrolerowi 14 lub 15 nieprzetworzonych liczb za każdym razem, gdy wszystkie są aktualizowane.
Kiedy latam małym samolotem, tak naprawdę chcę wiedzieć, jakie jest jego położenie i orientacja oraz jak daleko jest nad ziemią - 7 liczb.
Potrzebuję czegoś , co da mi te 7 liczb.
Idealnie chciałbym za każdym razem uzyskać nową ocenę tych 7 liczb za pośrednictwem mojej pętli sterowania. Aktualizacje raz na sekundę, które otrzymuję z mojego taniego GPS, nie są wystarczająco szybkie. (Ludzie przy jakiej częstotliwości potrzebuje moja pętla aktualizacji wyjścia-sens-oblicz-wyliczyć-wyjście, aby pozostać stabilna? Mówią mi, że nawet 50 razy na sekundę nie będzie wystarczająco szybka).
W jakiś sposób będę musiał zmniejszyć te 14 lub 15 nieprzetworzonych liczb, które mam, z których niektóre tylko czasami aktualizuję, do (szacunkowych) 7 liczb, które naprawdę chcę.
Jak zauważył Josh, istnieje wiele doraźnych sposobów na przekształcenie surowych liczb w użyteczne dane. Każda procedura, która konwertuje 15 liczb na 7 liczb, można opisać jako „filtr”.
Nie musisz używać optymalnego filtra. Ale użyjesz pewnego rodzaju filtru - tj. Czegoś, co konwertuje z 15 liczb surowych danych, które masz (szacunkowe) na 7 liczb, których naprawdę chcesz.
Kalman Filter jest w pewnych warunkach „optimum” filtr, najlepszym sposobem przekształcania że surowe dane do numerów 7 naprawdę chcę.
Korzystanie z filtra Kalmana, który ktoś już napisał i debugował, może zająć mniej pracy, niż napisanie innego filtru od zera, debugowanie go i dodawanie kolejnych elementów, dopóki nie będzie można go użyć - filtr, który będzie nieuchronnie okazują się nieoptymalne.
Dane czujnika są zaszumione. Jeśli go nie przefiltrujesz, twój pojazd będzie działał co najmniej chaotycznie, gdyby był nawet wystarczająco stabilny, aby latać. Filtrowanie, za pomocą filtra Kalmana lub w inny sposób, może zmniejszyć hałas, gdy jest wykonane poprawnie, poprawiając stabilność z kolei.
Filtr Kalmana jest szczególnie wydajny filtr. Wymaga modelu systemu i modeli hałasu zarówno dla systemu, jak i czujników. Następnie szacuje stan pojazdu na podstawie dostarczonego oszacowania stanu i kontroli zastosowanych w dowolnym momencie. Ten szacowany stan będzie dokładniejszy niż raport czujników.
źródło
Możesz również użyć filtrów cząstek. Aby zapoznać się z podstawowym wprowadzeniem do filtrów cząstek, zapoznaj się z filmami profesora Thrun w sekcji Programowanie samochodu robotycznego.
http://www.youtube.com/watch?v=H0G1yslM5rc
http://www.youtube.com/watch?v=QgOUu2sUDzg
Filtry cząstek są bardziej niezawodne i mają znacznie mniejsze prawdopodobieństwo błędu zamknięcia pętli, co często występuje podczas implementacji EKF.
Filmy wideo opisują działanie filtra cząstek stałych.
źródło
Filtr Kalmana jest algorytmem powszechnie stosowanym w bezzałogowych statkach powietrznych do łączenia wielu pomiarów czujników w celu zapewnienia „optymalnej” oceny położenia i / lub orientacji UAV. Na przykład filtr Kalmana może łączyć pomiary akcelerometru, żyroskopu i magnetometru z oszacowaniem prędkości w celu oszacowania odchylenia, pochylenia i przechylenia UAV.
Aby uzyskać więcej informacji na temat czujników i algorytmów wykorzystywanych do szacowania stanu UAV, zapoznaj się z samodzielnym artykułem Podstawy małego bezzałogowego lotu statku powietrznego .
Artykuł zawiera także linki do towarzyszącego kodu Matlaba implementującego opisane algorytmy oceny stanu UAV filtra Kalmana.
źródło