Интеграция показаний гироскопа и акселерометра

Возможный дубликат:
объединить данные гироскопа и акселерометра

Я прочитал несколько статей по Kalman filters, но, похоже, есть несколько хороших общедоступных рабочих примеров перехода от математической статьи к реальному рабочему коду.

У меня есть система, содержащая трехосевой акселерометр и один гироскоп, измеряющий вращение вокруг одной из осей акселерометра. Система предназначена для удержания человеком, и большую часть времени гироскоп будет измерять вращение вокруг вектора гравитации или близко к нему. (Люди, работающие в той же отрасли, вероятно, узнают, о чем я говорю;)) Я понимаю, что это недостаточно ограничено.

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


person moonshadow    schedule 21.09.2008    source источник
comment
Не могли бы вы добавить ссылки на эти документы?   -  person TraumaPony    schedule 21.09.2008
comment
На самом деле, статья в Википедии сейчас намного лучше, чем когда я впервые получил спецификацию. Мои глаза все еще стекленеют, когда я вижу все эти уравнения.   -  person moonshadow    schedule 21.09.2008
comment
Ваше здоровье. Удачи с вашим трехосевым акселерометром ;)   -  person TraumaPony    schedule 21.09.2008
comment
Дайте нам знать, как идут дела и какие ресурсы вы найдете в своих поисках.   -  person Kena    schedule 15.10.2008


Ответы (6)


nBot, двухколесный балансировочный робот
немного информации и ссылок о том, как этот автор решил решить проблему баланса для своего двухколесного робота.

person Louis Davis    schedule 11.06.2009
comment
Первая ссылка MAV-блог: демо-приложение Kalman мертво. - person openfrog; 12.08.2011

Учитывая ваш интерес к фильтру Калмана, возможно, вы намерены дополнить данные GPS инерциальными измерениями. О вашем вопросе:

«Как мне закодировать фильтр, чтобы использовать показания акселерометра для калибровки гироскопа в моменты времени, когда система наклонена так, что ось гироскопа не коллинеарна гравитации и вращается вокруг оси гироскопа? достаточно информации для этого"

Это похоже на настройку гирокомпаса. Предполагая, что вы выполняете заводскую калибровку и держите устройство на стенде, вы сможете самостоятельно измерить юстировку. Затем запустите код выравнивания, который вы напишете, и устраните ошибку смещения гироскопа из разницы между измерением и выравниванием по гирокомпасу.

Если вы хотите обновлять дрейф гироскопа на лету, вам понадобится фильтр Калмана.

Что касается реализации, я рекомендую главу 7, GPS и инерциальная интеграция, из Теория системы глобального позиционирования и приложения, том 2 содержит превосходную информацию по этой теме. В нем есть теория и математика, но нет исходного кода.

person Steve Roe    schedule 18.01.2009
comment
Спасибо! Хотя это не данные GPS, которые я собираюсь увеличить, проблема аналогична. Выравнивание гирокомпаса выглядит как очень полезный поисковый запрос, я поищу. - person moonshadow; 20.01.2009
comment
Даже если вы не используете GPS, глава 7 Теории и приложений GPS может предоставить вам полезную информацию. Я смог найти главу в книгах Google. - person Steve Roe; 20.01.2009

Я нашел хорошие статьи об использовании акселерометров и гироскопов в навигации в этом блоге. Часть о фильтрации Калмана немного туманна, но, кажется, есть примеры кода.

Вы также найдете общие ресурсы по фильтрации Калмана по адресу http://academic.csuohio.edu/simond/publications.html. Статья, упомянутая в (8), является хорошим, но не слишком страшным введением. к математике фильтров Калмана.

person Kena    schedule 15.10.2008

Джентльмен из Дании только что опубликовал рабочий пример получения фильтра Калмана для решения почти точно этой проблемы.

person moonshadow    schedule 10.09.2012

Если вы разрабатываете для Propeller uController, то Обмен объектами Parallax есть код. Отличный вопрос ;-)

person Chris O    schedule 27.05.2010

person    schedule
comment
Имейте в виду, что гравитация — это постоянная сила, которую воспринимает акселерометр. Я могу и использую это для определения текущего шага и крена устройства. Чего я не могу определить с помощью одного только акселерометра, так это рыскания; для этого и нужен гироскоп. Однако его чтение со временем дрейфует, отсюда и мой вопрос. - person moonshadow; 21.09.2008
comment
Спасибо за предложение Рунга-Кутта, я рассмотрю это. - person moonshadow; 21.09.2008