2013-03-19 17 views
10
  • Chcę monitorować orientację urządzenia na 2 osiach: bardzo prosto: w którą stronę jest w dół.
  • Należy zachować dokładność przez dłuższy okres czasu (12 godzin)
  • To będzie przedmiotem obrotów i przyspieszeń o wszystkich osiach

Urządzenie będzie Android telefon z normą żyroskop/akcelerometr. W przypadku tych dwóch typów czujników, jest możliwe spełnienie powyższych wymagań?Uzyskiwanie orientacji za pomocą żyroskopu i akcelerometru

Myślami dotąd: sam akcelerometr nie można osiągnąć, ponieważ biorąc pod uwagę dowolny zestaw wartości na moment w czasie, to nie jest możliwe, aby oddzielić grawitacyjne i przestrzennych elementów przyspieszenia. I nie mogę zrozumieć, jak żyroskop mógłby pomóc rozwiązać ten problem. Czy są jakieś sprytne formuły/algorytmy, które by to zarządzały?

Dzięki

+1

Spróbuj użyć google do "akcelerometru danych żyroskopu fusion". Jest to dość powszechne zadanie w IMU i jest zdecydowanie wykonalne. (Z góry mojej głowy mógłbyś ustawić filtr Kalmana/po prostu zrobić HPF na akcelerometrze i LPF na żyroskopie, ale nie mam przy sobie żadnych szczegółów dotyczących implementacji). – sapi

Odpowiedz

21

łatwy sposób połączyć akcelerometr i żyroskop dane jest przez zastosowanie filtr komplementarny. W ten sposób nie masz problemów z dryfem z żyroskopu i hałasem z akcelerometru. Jest także znacznie łatwiejszy do zrozumienia i wykorzystania niż filtr Kalmana.

Obliczysz kąt z żyroskopu, używając całki. A dla akcelerometru użyjesz funkcji tan2 do określenia pozycji wektora grawitacyjnego. Filtr komplementarnego następnie połączyć te dwa kąty w następujący sposób:

kąt = 0,98 * (kąt + gyroData * dt) + 0,02 * accAngle

Zauważmy jak przyjmują tylko część danych z przyspieszeniomierza (na tyle, aby zrekompensować dryft). W ten sposób będziesz używał danych żyroskopu do szybkich zmian, ale na dłuższą metę będziesz śledzić średnią wartość kąta przyspieszeniomierza, aby nie dryfować.

Mam nadzieję, że to pomoże. Jeśli potrzebujesz więcej informacji i przykład kodu C, napisałem artykuł na ten temat: here

Powiązane problemy