Объединить данные гироскопа и акселерометра
Я строю балансировочный робот, используя систему NXT от Lego Mindstorm. Я использую два датчика от HiTechnic, первый - акселерометр, а второй - гироскоп. Я успешно отфильтровал шум от обоих датчиков и производных углов для диапазона от -90 до 90 градусов, при этом 0 градусов были идеально сбалансированы.
Моя следующая задача - объединить оба значения датчика, чтобы скорректировать дрейф гироскопа с течением времени. Ниже приведен пример графика, который я создал из реальных данных, чтобы продемонстрировать отклонение от гироскопа:
Наиболее часто используемый подход, который я видел, чтобы объединить эти датчики, - это использование фильтра Калмана. Тем не менее, я не эксперт в исчислении, и я действительно не понимаю математические символы, я понимаю математику в исходном коде.
Я использую RobotC (который похож на любой другой C-производный) и был бы очень признателен, если бы кто-нибудь дал мне примеры того, как это сделать в C.
Спасибо за помощь!
РЕЗУЛЬТАТЫ РЕШЕНИЯ:
Хорошо, kersny решил мою проблему, познакомив меня с дополнительными фильтрами. Это график, иллюстрирующий мои результаты:
Результат № 1
Результат № 2
Как видите, фильтр корректирует гироскопический дрейф и объединяет оба сигнала в один плавный сигнал.
Редактировать: Так как я все равно исправлял поврежденные изображения, я подумал, что было бы интересно показать установку, которую я использовал для генерации этих данных: