Żyroskop połączony z danymi akcelerometru
Buduję robota balansującego za pomocą systemu NXT Lego Mindstorm. Używam dwóch czujników HiTechnic, pierwszy to akcelerometr, a drugi to żyroskop. Z powodzeniem odfiltrowałem szumy z obu czujników i kąty pochodne w zakresie od -90 do 90 stopni, przy czym 0 stopni jest idealnie zrównoważone.
Moim następnym wyzwaniem jest połączenie obu wartości czujników w celu skorygowania dryfu żyroskopu w czasie. Poniżej znajduje się przykładowy wykres, który stworzyłem na podstawie rzeczywistych danych, aby zademonstrować dryf z żyroskopu:
Najczęściej stosowanym podejściem, jakie widziałem, aby połączyć te czujniki, jest solidny filtr Kalmana. Jednak nie jestem ekspertem w dziedzinie rachunku różniczkowego i naprawdę nie rozumiem symboli matematycznych, ale rozumiem matematykę w kodzie źródłowym.
Używam RobotC (który jest jak każda inna pochodna C) i naprawdę doceniłbym, gdyby ktoś mógł podać mi przykłady, jak to osiągnąć w C.
Dziękuję za pomoc!
WYNIKI ROZWIĄZANIA:
W porządku, kersny rozwiązał mój problem, wprowadzając mnie do uzupełniających filtrów. Oto wykres ilustrujący moje wyniki:
Wynik # 1
Wynik # 2
Jak widać, filtr koryguje dryf żyroskopowy i łączy oba sygnały w jeden gładki sygnał.
Edytować: Ponieważ i tak naprawiałem uszkodzone obrazy, pomyślałem, że fajnie byłoby pokazać platformę, której użyłem do generowania tych danych: