2016-01-28 12 views
2

У меня есть сырые данные гироскопа и магнитометра. на основе этих данных, я должен рассчитать информацию о заголовке с точностью 1Deg.Как рассчитать заголовок с использованием гироскопа и магнитометра

Я хотел бы знать, есть ли какой-либо алгоритм, который может помочь мне получить информацию о направлении, используя имеющуюся информацию с указанной точностью?

Любая статья или любая ссылка также будут полезны.

Благодаря

+0

stackoverflow не о поиске/написании кода для вас, речь идет о проблемах с исправлением, которые у вас есть в вашем [существующем] коде. Покажите нам, что вы пробовали, и программисты здесь смогут вам помочь, иначе я могу предложить вам [искать с google] (https://www.google.com.ua/search?q=calculate+heading + из + Гироскоп + и + магнитометр + данные) (или просто посмотрите на боковую панель в разделе _Related_) и прекратите тратить наше время на поиск вас – ankhzet

+0

Вопрос слишком широк в его текущей форме. Какой алгоритм вы пробовали, и где именно вы застряли? Обратите внимание, что запросы на ресурсы за пределами сайта рассматриваются здесь не по теме. – njuffa

+0

Проверьте обратный ход, возвращенный API-интерфейсом телефона – nbsrujan

ответ

4

Я предполагаю, что вы используете телефон для сбора gyroscope+magnetometer данных.

Вы не можете вычислить заголовок с Gyro+Magnetometer, если не знаете начального состояния устройства. Вы должны попробовать Accelerometer+Magnetometer. Вы можете получить значения курса от rotation-matrix' or yaw` компонента от API датчика движения устройства Android/IOS.

Если вы хотите реализовать свой собственный алгоритм компенсации наклона. Все, что вам нужно сделать, это реализовать компенсацию наклона с помощью accelerometer и magnetometer. Вы получаете accelerometer и magnetometer показания в раме устройства. Accelerometer и Magnetometer дает показания как функцию вращения устройства. Это вращение содержит информацию о Roll, Pitch и Heading устройства. Ниже приводится объяснение и вывод оценки курса с использованием accelerometer+magnetometer.

Android sensor coordinate system


Tilt compensation algorithm

Пусть accelerometer и magnetometer дать вам

показания соответственно. Они находятся в раме устройства, а устройство повернуто на

.

Адрес: Адрес: Таким образом, вращение матрица устройства будет

Мы должны решить для . Так шаг за шагом решение для .

С выше, приравнивая к нулю, мы получаем

Имея из выше

Это основной метод получения значения заголовка от accelerometer+magentomete. Yaw/Heading значение обеспечивается API-интерфейсом датчика движения, присутствующим в мобильных телефонах.

Довольно много вещей, которые вам нужно искать при реализации алгоритмов sensor-fusion. Accelerometers не всегда дает правильные показания, устройства под линейными ускорениями. Magnetometer показания подвергаются искажениям из-за наличия ферромагнитных веществ. Точность зависит от компонента белого шума в датчике gyroscope.

Существует множество алгоритмов для оценки точных значений курса. Некоторые из них являются

  • Madgwick AHRS
  • Дополнительный фильтр
  • фильтр Калмана
  • Compensation of Magnetic Disturbances, этот алгоритм дает лучшие результаты среди всех, из личного опыта я говорю.
+0

Благодарим вас за подробный ответ. Я забыл упомянуть о моем заявлении в моем вопросе. Моя заявка связана с авиационной областью. Мой магнитометр будет расположен на вертикальном плавнике самолета. Я попробую этот подход также – Pratik

+0

@Pratik Если магнитометр расположен на плавнике самолета, проверьте показания магнитометра один раз. Вы должны откалибровать магнитометр перед его использованием, если датчик не откалиброван сам по себе. – nbsrujan

 Смежные вопросы

  • Нет связанных вопросов^_^