Я пытаюсь объединить данные акселерометра и гироскопа, чтобы точно измерить углы наклона и рыскания объекта. После изучения дополнительного фильтра и попытки его реализации у меня возникло несколько вопросов о том, как он работает.
Я читал, что фильтр «доверяет» данным гироскопа, если происходит большое угловое движение, и что он «доверяет» данным акселерометра, если объект стабилен.
http://www.pieter-jan.com/node/11 В этой статье дополнительный фильтр описывается следующим образом:
* угол = 0,98 (угол + gyrData * dt) + 0,02 * (accData) *
Мне кажется, что предпочтение отдается данным гироскопа. На следующем изображении http://www.pieter-jan.com/images/resize/Complementary_Filter.png , найденный в нижней части страницы, отфильтрованные данные, кажется, «приближаются» к данным акселерометра, даже если данные гироскопа дрейфовали. Я не понимаю, почему это происходит, когда расчет предполагает, что предпочтение отдается данным гироскопа. Я наблюдал это и на других фотографиях. Во время моего собственного тестирования мне нужно было «поменять местами» 0,98 и 0,02, предполагая, что данные акселерометра предпочтительнее, чтобы получить аналогичные результаты. Я пропустил полное непонимание того, как работает этот фильтр? Нормально ли «предпочитать» данные акселерометра?
Кроме того, когда угол объекта необходимо контролировать в течение длительного периода времени, не становятся ли данные гироскопа бесполезными, поскольку дрейф настолько велик, как фильтр компенсирует это?