Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 18 kwi 2024, o 19:55


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 
Autor Wiadomość
 Tytuł: Filtr Kalmana
PostNapisane: 23 maja 2017, o 14:12 
Offline
Użytkownik

Dołączył(a): 30 paź 2016
Posty: 41
Pomógł: 1

Witajcie,

bawię się obecnie scalaczkiem MPU6050.
Zacząłem wgłębiać się w temat filtrowania zakłóceń i napotkałam wiele artykułów o filtrze Kalmana.
Nie jestem jednak automatykiem, z jej zakresu mam podstawową wiedzę i nie bardzo potrafię sobie
przełożyć to na ,,elektroniczny" świat.

Ogółem rozumiem do czego służy:
,,Metoda ta dokonuje filtracji i fuzji
pomiarów pochodzących z wielu sensorów. W procesie przetwarzania danych,
uwzględniając prawdopodobieństwo wystąpienia błędu (szumy pomiaru, błędy
systemu pomiarowego), szacuje się stan oraz prawdopodobieństwo jego wystąpienia."
- cytat pochodzi z Filtr Kalmana - zastosowania w prostych
układach sensorycznych. Jan Kędzierski

Niestety nie wiem w jaki sposób:
1. użyć tego filtru,
2. jak go napisać (może są już gotowe biblioteki)
3. Czy z akcelerometrami z wyjściami cyfrowymi również należy ich używać czy tylko z tymi na wyjściach analogowych i dlaczego.
4. co dokładnie da mi zastosowanie tego filtru?
5. może patrzę na to zupełnie od złej strony i dlatego nie mogę tego pojąć?
6. Czy są jeszcze jakieś inne ciekawe sposoby filtracji wyników akcelerometru?


Pozdrawiam serdecznie i mam nadzieję, że temat Was zainteresuje i przyda się innym w przyszłości.

Poniżej przedstawiam ciekawe linki dotyczące tego zagadnienia: (możecie podawać swoje)

http://forbot.pl/blog/artykuly/programowanie/filtr-kalmana-teorii-praktyki-1-id2855
http://docplayer.pl/2007814-Filtr-kalmana-zastosowania-w-prostych-ukladach-sensorycznych.html



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 maja 2017, o 15:27 
Offline
Użytkownik

Dołączył(a): 14 sty 2017
Posty: 39
Pomógł: 4

viewtopic.php?t=12022
Nie wiem czy szukałeś ale temat był już poruszany. I jakiś kod już znajdziesz szukając wpisując w forumowej wyszukiwarce "filtr kalmana" lub "MPU 6050.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 maja 2017, o 15:41 
Offline
Użytkownik

Dołączył(a): 30 paź 2016
Posty: 41
Pomógł: 1

Tak przejrzałem już wszystkie tematy i nie są jakoś szczególnie rozwinięte. :)
Kod to nie wszytko ;)
Chciałbym sam taki napisać tylko muszę zrozumieć :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 maja 2017, o 20:09 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 sie 2013
Posty: 230
Lokalizacja: Zabrze
Pomógł: 17

Może to pomoże: http://forbot.pl/blog/artykuly/programowanie/filtr-kalmana-teorii-praktyki-1-id2855

_________________
40-32:2=4!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 maja 2017, o 19:35 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 mar 2015
Posty: 116
Pomógł: 16

Poniższy artykuł powinien być pomocny:
"Wyznaczanie orientacji obiektu w przestrzeni z wykorzystaniem naiwnego filtru Kalmana"
do pobrania: http://pe.org.pl/articles/2014/1/9.pdf

Pozdr.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 maja 2017, o 11:03 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 24 mar 2012
Posty: 72
Pomógł: 5

Filtr Kalmana jak sam napisałeś: "Metoda ta dokonuje filtracji i fuzji pomiarów pochodzących z wielu sensorów..." a więc raczej nie możemy mówić o filtracji sygnału z akcelerometru. Weźmy sobie za problem wyznaczenie położenia kątowego jakiegoś obiektu w przestrzeni 3D. Każdemu przyjdzie do głowy skorzystać z żyroskopu lub akcelerometru. Każdy z nich ma swoje wady. Otóż akcelerometr oprócz składowej stałej przyśpieszenia ( ziemskiej ), która pozwala nam wyznaczyć położenie obiektu, będzie też reagował na przyśpieszenia obiektu z zewnątrz, zgadza się ? Wynik będzie zakłócony.
To teraz żyroskop. Żyroskop nie ma tego błędu co akcelerometr możemy sobie nim machać jak chcemy i generalnie powinno być ok. No ale żyroskop nie zwraca nam od razu położenia kątowego tylko zwraca nam prędkość obrotu względem danej osi a więc, żeby przejść na kąt musimy dokonać całkowania. No i pojawia się problem bo to całkowanie wcale nie jest bardzo dokładne i dlatego z upływem czasu błąd rośnie.
Dobra, więc jaki wniosek ? Wniosek taki, że samym akcelerometrem ani samym żyroskopem nie określimy dokładnie położenia kątowego i tutaj przychodzą z pomocą właśnie filtry takie jak filtr Kalmana i podobne. One połączą niejako odczyty z obu sensorów i wyjdzie coś co jest dokładne(a na pewno dokładniejsze). Ja do fuzji danych nie używałem filtru Kalmana. Na swoje potrzeby uzyskałem zadowalający efekt za pomocą tzw filtru komplementarnego.

Jeżeli nie chcesz wiedzieć co to filtr komplementarny nie czytaj dalej :D
Kluczem jest słowo komplementarny ( KOMPLEMENTARNOŚĆ ). Żyroskop jest obarczony błędem wolnozmiennym ( tzw dryf ) a akcelerometr szybkozmiennym. No więc niejako filtr komplementarny przeprowadza filtracje odpowiednio górno i dolno przepustową. Czyli te odczyty się niejako uzupełniają. Łączą. No dobra ale teraz najlepsze. Implementacja w kodzie :

alfa = A*(alfa + omega*dt) + (1-A)*gamma

no ale co jest co ?

alfa - położenie kątowe robota
A - współczynnik który przyjmuje wartość od 0 do 1 ( stała wartość )
omega - prędkość kątowa - z żyroskopu
dt - krok czasowy
gamma - położenie kątowe określone na podstawie akcelerometru

Jak tak popatrzysz na ten wzór to aż dziwne, że tak prosta rzecz może działać no nie? :D

To teraz na koniec dwa wykresy z efektu działania tego ustrojstwa:

ObrazekObrazek

widzisz o co chodzi ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO