Объедините гироскоп с акселерометром, чтобы получить курс - PullRequest
6 голосов
/ 08 ноября 2011

Я использую устройство Android, чтобы получить курс (азимут или угол рыскания).

Android API использовал значение Акселерометра + поле mganetic для вычисления вращения матрицы, затем из этой матрицы извлекается азимут (он же SensorManager.getOrientation (...)) Но результат очень неточный!особенно если телефон возмущен какими-то магнитами.

А потом у меня есть гироскоп. Если я интегрирую значение времени впадины гироскопа, я смогу получить фактический угол, но, как все знают: р, это может сместиться ... после10 секунд, даже если я не сдвигаю угол, смещенный на 10 ° ...

Так что здесь у меня есть результат acce + magneto с одной стороны, это довольно дерьмо рядом с магнитным полем, а с другой стороныУ меня есть результаты гироскопа, которые действительно хороши, но дрейфуют со временем ...

Так что мой вопрос, есть ли простой или умный способ объединить два результата вместе, чтобы получить вид"надежной" оценки заголовка? Я говорю легко, потому что я знаю, что есть фильтры Калмана ... но даже если я прочитаю теорию 50 раз, я ничего не получу :).

Спасибо!

Ответы [ 3 ]

4 голосов
/ 09 ноября 2011

Насколько я знаю, в SensorManager реализован фильтр Калмана или что-то подобное. Проверьте Sensor Fusion на устройствах Android: революция в обработке движения .

Вы пытаетесь решить проблему, которая уже решена.

1 голос
/ 11 декабря 2011

Кажется, у нас очень распространенная путаница с датчиком гироскопа. Недавно я ответил на аналогичный вопрос здесь , поэтому я рекомендую всем, кто интересуется этими темами, взглянуть на этот вопрос и ответить.

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

0 голосов
/ 06 декабря 2011

Чтобы сделать его коротким:

Невозможно объединить гироскоп + акселерометр, чтобы получить азимут (я точно) Просто потому, что акселерометр не может определить ускорение по оси XY ..

Метод может заключаться в том, чтобы объединить гироскоп с компасом, но это не будет работать очень хорошо, если есть магнитное возмущение

...