2013-07-10 16 views
18

Po przeczytaniu wielu badań i artykułów obok wielu forów o tym, jak zmierzyć odległość w oparciu o dane przyspieszenia Znalazłem podwójną metodę integracji, ale błąd związany z tą metodą jest duży i zwiększa się z czasem. Ponadto znalazłem ludzi, którzy zasugerowali filtr Kalmana. Przeczytałem kilka odnośników na ten temat, ale nie było dla mnie jasne, jak z niego korzystać. także niektórzy mówili o czujnikach termojądrowych ... ale po ich przeczytaniu nie otrzymałem żadnych nowych pomysłów. , więc nadal jestem zdezorientowany i nie znalazłem właściwej odpowiedzi, aby śledzić ... Przepraszam za to długie wprowadzenie.obliczanie odległości za pomocą akcelerometru


Pytanie

Weźmy pod uwagę, że posiadają czujnik 9-osiowy w ręku i mogę przenieść moją rękę w jakimś kierunku, w jaki sposób mogę znaleźć nowe położenie dłoni w przestrzeni? jak uzyskać wektor ruchu od punktu początkowego do nowego punktu Mam na myśli, jak poznać pokonane odległości na trzech osiach?

Jeśli nie ma bezpośredniej odpowiedzi ... niektóre porady lub referencje byłyby wspaniałe lub niektóre algorytmy, które dają dokładne odpowiedzi, a ja sam mogę je studiować i używać. bardzo dziękuję

+0

zasadniczo odpowiedział na własne pytanie: „Znalazłem metodę podwójnej integracji, ale błąd związany z tej metody jest duża i rośnie przez czas.” Błąd narasta tak szybko, że metoda jest bezużyteczna. – Ali

+0

możliwy duplikat [System wewnętrznego pozycjonowania oparty na żyroskopie i akcelerometrze] (http://stackoverflow.com/questions/7499959/indoor-positioning-system- based-mon-gyroscope-accelerometer) – Ali

+0

To wciąż aktywne pole badań, więc powiedziałbym, że to naprawdę trudne. – Korchkidu

Odpowiedz

3

bez uwzględnienia obrotów:

Rozważmy, że w momencie t=t0 jesteś w pozycji [ x0 , y0 , z0 ] i wektora prędkości [ vx0 , vy0 , vz0 ].

Na t=t1 czytasz wektor przyspieszenia [ ax1 , ay1 , az1 ] (średnia przyspieszenie od t0 i t1).

Wówczas wektor prędkości w t=t1 będą:

[ vx1 , vy1 , vz1 ] = [ vx0 + ax1 * (t1 - t0) , vy0 + ay1 * (t1 - t0) , vz0 + az1 * (t1 - t0) ] 

Średnia prędkość między t0 i t1 będzie

[ vx01 , vy01 , vz01 ] = [ (vx0 + vx1)/2 , (vy0 + vy1)/2 , (vz0 + vz1)/2 ] 

i pozycja w t=t1 będą:

[ x1 , y1 , z1 ] = [x0 + vx01 * (t1 - t0), y0 + vy01 * (t1 - t0), y0 + vy01 * (t1 - t0) ] 

Jak możesz zobacz, błąd propaguje się z t^2, dlatego systemy inercyjne muszą być kompensowane przez zewnętrzne odniesienie, takie jak GPS.

15

Krótka odpowiedź na twoje pytanie brzmi: nie możesz tego zrobić.

Metoda podwójnej integracji jest tak naprawdę jedynym sposobem na uzyskanie informacji, których szukasz przy użyciu tylko przyspieszeniomierza. Znalazłeś problem z tą metodą. Błąd zwiększa się z czasem i na ogół nie zapewnia dokładności, której szuka wielu.

Filtrowanie Kalmana zwykle wymaga 2 urządzeń i zasadniczo pobiera najlepsze z obu urządzeń i filtruje złe. Zobacz przykład poniżej.

Filtrowanie Kalmana to naprawdę trudny temat, do którego próbowałem zagłębić się w projektowaniu dla starszych osób, ale nigdy nie znalazłem żadnych znaczących wyników przy moich ograniczonych testach. Doskonałym miejscem do rozpoczęcia zrozumienia tego tematu jest ta youtube video series.

To jest facet, który wygrał wyzwanie DARPA ze Stanford i wyjaśnia ten temat w łatwy do zrozumienia sposób. Cały kurs to 6-osobowy film o programowaniu robotów, aby przenieść i zrozumieć ich lokalizację w nieznanym środowisku. Warto obejrzeć, jeśli masz czas i zainteresowanie.

Wygląda na to, że próbujesz zrobić coś podobnego do tego, co zrobiłem dla starszych projektantów, podając naprawdę konkretne informacje o względnej lokalizacji.

Kolejny świetny filtrowanie Kalmana read this (jeśli ten link nie działa, sprawdź go i sprawdź link do bloga TKJ). Zasadniczo ten facet używa przyspieszeniomierza i żyroskopu do śledzenia orientacji w rzeczywistym świecie.

Coś innego do obejrzenia wiki Kinematyka w czasie rzeczywistym. To dotyczy ciągników i kombajnów w celu zapewnienia naprawdę dokładnych informacji o lokalizacji. John Deere sprzedaje system, ale kosztuje 20 000 $. Oto wersja biedak Korzystanie GPS and beagleboard

4

przez czujnik 9-Axis jestem przy założeniu, że środki:

  • 3-oś żyroskopu (środki szybkość obrotowa)
  • 3-osiowy akcelerometr (przyspieszenie działania)
  • 3 oś magnetometru (pozycja środki)

Pierwsze praktyczne oszacowanie pozycji z tego typu czujnika 9 oś nie jest możliwe, bez użycia innego czujnika t kapelusz wykorzystuje odniesienie zewnętrzne takie jak GPS.

Teoretycznie, jeśli znasz przyspieszenie obiektu w przestrzeni oraz jego początkową pozycję i prędkość, będziesz w stanie obliczyć nową pozycję obiektu poprzez propagowanie informacji o jego przyspieszeniu i prędkości z powrotem do położenia początkowego (tj. przyspieszenie dwukrotnie). Powodem, że nie jest to możliwe w praktyce jest to, że przyspieszeniomierz ma hałas. Hałas ten będzie mieć średnią niezerową, więc przy całkowaniu sygnału przyspieszenia nieustannie dodaje się niezerowy średni hałas i kumuluje się w wynikowym sygnale prędkości. Jest to postrzegane jako dryft czujnika. Oszacowanie prędkości zaczyna się dość poprawnie, ale szybko znika z powodu nagromadzonego hałasu. Integracja po raz drugi w celu uzyskania pozycji tylko pogarsza sytuację, powtarzając proces.

Korzystając z zewnętrznego źródła, takiego jak GPS, można użyć filtru Kalmana, aby połączyć powoli aktualizowany sygnał GPS i szybko aktualizujący sygnał przyspieszenia, aby uzyskać wiarygodne oszacowanie pozycji. GPS ma wpływ na zerowanie dryfu, który byłby akumulowany przez przeprowadzenie integracji na sygnale przyspieszenia.

Proponuję rzucić okiem na filmy z Youtube firmy Udacity, które zasugerował Khamey. Podczas nauki filtra Kalmana pomaga uzyskać ogólny ogólny obraz tego, co jest celem i co robi filtr kalmana. Wtedy matematyka i rzeczywiste kroki algorytmu będą znacznie łatwiejsze do zrozumienia. Kolejną rzeczą, która jest pomocna przy uczeniu się filtra Kalmana, jest robienie tego dla jednej zmiennej stanu naraz zamiast całego wektora stanu. To tylko pomaga skupić twoją uwagę na tym, co faktycznie robi filtr Kalmana, aby nie utknąć w algebrze macierzy.

0

Jeśli istnieje mapa podstawowa i masz pewność, że czujnik porusza się po znanej ścieżce (takiej jak droga), możesz użyć mapy podstawowej, aby skorygować głośne odczyty.Zobacz: Jun Han, Emmanuel Owusu, Thanh-Le Nguyen, Adrian Perrig i Joy Zhang "ACComplice: Wnioskowanie o lokalizacji za pomocą akcelerometrów na smartfonach" w materiałach z IV Międzynarodowej Konferencji na temat Systemów Komunikacji i Sieci (COMSNETS 2012), Bangalore, Indie, styczeń 3-7, 2012.

http://www.netsec.ethz.ch/publications/papers/han_ACComplice_comsnets12.pdf

Powiązane problemy