Próbowałem kilku algorytmów, aby uzyskać nachylenie, przechylenie i odchylenie przy ciągłych liniowych przyspieszeniach i wibracjach (mniejszych niż 0,4 g, częstotliwości niższych niż 10 Hz). Żaden z nich nie daje dobrych wyników, ponieważ odczyty albo dryfują, albo zbytnio wpływają na nie przyspieszenia liniowe. Chcę osiągnąć, gdy przyspieszenie zewnętrzne jest mniejsze niż + -0,4 g, błąd skoku i przechylenia powinien być mniejszy niż + -1 stopni.
Wypróbowałem następujące algorytmy:
Algorytm Madgwicka . Gdy wzmocnienie Beta jest ustawione bardzo wysoko, zbieżność jest szybka, ale kąty są bardziej podatne na przyspieszenia liniowe. Zredukowałem go i zmniejszyłem błąd przy przyspieszeniach liniowych do + -0,5 stopnia. Jeśli jednak wibracja jest ciągła, odczyty będą dryfować i zebranie się do prawdziwych wartości zajmie wieczność. Ma to sens, ponieważ przy przyspieszeniach liniowych żyroskop jest bardziej zaufany, a obliczone kąty dryfują, gdy dryfuje integracja żyroskopu.
Algorytm Mahony'ego . W przeciwieństwie do Madgwicka, nie dryfuje wcale, niezależnie od tego, jakich wartości używam dla Ki i Kp. Jednak zawsze na to wpływ mają przyspieszenia liniowe. (Błędy większe niż + -6 stopni)
Tradycyjny filtr Kalmana . Wiele czasu poświęcono na dostrajanie tych ogromnych wektorów R i Q. Do tej pory ma taki sam występ jak Mahony.
Używam razor IMU . Wiem, że za pomocą tanich czujników nie można osiągnąć takiego samego wyniku jak ten .
Istnieje kilka innych opcji, takich jak UKF, ale zrozumienie lub wdrożenie jest trudne.
Wszelkie sugestie są mile widziane.