Вычисление магнитного заголовка с помощью необработанных данных акселерометра и магнитометра

У меня есть акселерометр и магнитометр каждые сырые данные создания X, Y и считывания Z. От этого я должен определить магнитный заголовок объекта.

Я не настолько силен в аккуратном, но я соединил формулу, которая действительно вполне прилично отвечает на вращение устройства, но также и отвечает на перемещение, что нельзя было бы думать, релевантно, таков как поворот устройства таким способом, который не оказывает влияния на направление, на это указывают. Такой как наложение его плоский и "прокрутка" устройства.

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

Таким образом, я предполагаю ядро своего вопроса (если у кого-то на самом деле нет формулы вокруг этого, делает это), то, как Вы вычисляете углы, в радианах, с помощью акселерометра для продольного и поперечного крена.

Затем, во-вторых, любая информация о самой направляющейся формуле была бы большой.

8
задан Kara 15 April 2014 в 19:51
поделиться

2 ответа

В зависимости от точности, которую требует ваше приложение, вам может потребоваться решить несколько проблем:

  1. Откалиброваны ли оси акселерометра? Я видел акселерометры MEM, оси которых не были взаимно перпендикулярны, и имели значительно разные характеристики отклика для каждой оси (обычно X и Y совпадали, а Z отличались). Вам нужно будет синтезировать идеальные оси XYZ из любых физических показаний, которые предоставляет ваше устройство. (Погуглите «калибровка акселерометра».)

  2. Откалиброваны ли оси магнитометра? Проблема похожа на описанную выше, за исключением того, что ее гораздо сложнее проверить: очень сложно создать однородные калиброванные магнитные поля. Если вы используете окружающее геомагнитное поле, вам необходимо будет тщательно контролировать локальный магнетизм вашей рабочей среды и ваших инструментов. (Погуглите «калибровка магнитометра».)

  3. После индивидуальной калибровки акселерометра и магнитометра необходимо откалибровать их оси относительно друг друга. Поскольку оба эти устройства обычно припаяны к печатной плате, практически гарантировано значительное смещение. Во многих случаях компоновка платы и параметры устройства могут даже не допускать совпадения осей XYZ друг с другом! Это может оказаться самой сложной задачей с точки зрения лаборатории, поэтому я рекомендую вам провести прямое сравнение с использованием другого оборудования, которое имеет оба типа датчиков и уже откалибровано (например, iPhone или Android-телефон, но перед этим проверьте устройство). использовать). Обычно это достигается путем корректировки двух предыдущих калибровочных матриц до тех пор, пока они не сгенерируют векторы, правильно выровненные относительно друг друга.

  4. Только после того, как вы сгенерируете взаимно откалиброванные векторы магнитного поля и акселерометра, вы сможете применить решения, предложенные другими респондентами.

Я описал только статическое решение, в котором и магнитометр, и акселерометр неподвижны относительно локальных гравитационного и магнитного полей. Если вам нужно генерировать ответы в режиме реального времени, когда система быстро перемещается, вам нужно будет учитывать поведение каждого датчика во времени. Есть два основных способа сделать это: 1) Применить фильтры во временной области к каждому датчику, чтобы их выходы имели общую временную область (обычно добавляя некоторую задержку). 2) Используйте прогностическое моделирование для изменения выходных сигналов датчика в режиме реального времени (меньше задержек, но больше шума).

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

Или вы можете выбрать совершенно другой путь и использовать статистику и подгонку данных, чтобы выполнить всю вышеперечисленную работу за один гигантский шаг. Рассмотрим задачу следующим образом: учитывая 6 входных значений (XYZ от некалиброванных магнитометра и акселерометра) и ссылку на устройство (при условии, что оно ручное, а на корпусе нарисована стрелка), выведите один угол, представляющий магнитный пеленг, на который указывает стрелка на корпусе, и возвышение стрелки относительно вектора силы тяжести (наклон корпуса).

Используя откалиброванное эталонное устройство (как указано выше), соедините его с калибруемым устройством и получите несколько сотен точек данных с устройством в разных ориентациях. Затем используйте мощный математический пакет, такой как Matlab, MathCAD, R или SciPy, для настройки и решения нелинейных уравнений для создания матриц преобразования.

2
ответ дан 6 December 2019 в 00:05
поделиться

Я бы указал на Углы Эйлера и Roll Pich Yaw .

1
ответ дан 6 December 2019 в 00:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: