Как получить начальную ориентацию для расчетов с гироскопом? - PullRequest
4 голосов
/ 16 января 2012

Мой вопрос, вероятно, очень прост, но может быть и так, что я совершенно не прав - поэтому я решил спросить. В конце я вычислю ориентацию моего телефона с помощью данных от датчика гироскопа. Я знаю, что я должен использовать что-то вроде фильтра Калмана или дополнительного фильтра, чтобы справиться с дрейфом гироскопа. Я сделаю это на втором этапе, но проблема, которую я здесь задаю, одинакова для обоих подходов. Итак, настоящий вопрос заключается в следующем:

Из гироскопа я получаю только угловые изменения (после интеграции). Поэтому мне нужно некоторое начальное значение, к которому я могу добавить измеренное изменение. Но как мне получить эту отправную точку? Использую ли я акселерометр и магнитометр для определения ориентации телефона? Или это там лучше?

Если это имеет значение, я использую Android для этого и имею реализацию для определения ориентации телефона с помощью акселерометра и магнитометра, но это очень неточно.

1 Ответ

1 голос
/ 16 января 2012

Используйте произвольную ориентацию в качестве начальной ориентации.

Любой разумный фильтр должен оправиться от этого и быстро сходиться к фактической ориентации.

Я использовал фильтр, описанный в Направляющая косинусная матрица IMU: Теория . Я позаботился о интегральном windup , ограничив TotalCorrection (стр. 27). Работает как шарм!

...