Ż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:

questionAnswers(2)

yourAnswerToTheQuestion