Калибровка компаса
В связи с искажениями от внешних магнитных полей, для работы IMU-сенсора или магнитометра в режиме компаса, их необходимо откалибровать.
Виды искажений
На показания электронного компаса действуют два типа искажений:
- Hard Iron Distortion создаётся дополнительным магнитным полем, которое генерируют внешние объекты. Например динамики звуковых колонок, провода питания и аккумуляторная батарея.
- Soft Iron Distortion создается внешними металлическими предметами, искажающими уже имеющееся магнитное поле. Например корпус двигателя, проводка или металлические болты.
Для калибровки компаса настройте железо и выполните программную настройку.
Железная часть
Рассмотрим калибровку компаса на одной из платформ Arduino, например, Uno.
- Прошейте плату скетчем приведённым ниже.
- compassCalibrationMatrix.ino
// Пример выводит сырые значения магнитометра, которые // используются для последующей калибровки сенсора // Подробности читайте в документации про калибровку магнитометра // http://wiki.amperka.ru/articles:troyka-magnetometer-compass-calibrate // Библиотека для работы с модулями IMU #include <TroykaIMU.h> // Создаём объект для работы с магнитометром/компасом Compass compass; void setup() { // Открываем последовательный порт Serial.begin(9600); // Инициализируем компас compass.begin(); compass.setRange(CompassRange::RANGE_4GAUSS); } void loop() { // Выводим «сырые» значения компаса по трём осям Serial.print(compass.readX()); Serial.print(","); Serial.print(compass.readY()); Serial.print(","); Serial.println(compass.readZ()); delay(100); }
Программная часть
Рассмотрим программную настройку на OS Windows.
- Скачайте и установите утилиту MagMaster.
- В открывшимся окне выберите номер «COM-порта» и нажмите кнопку «Open».
- Последовательно нажимайте на вопросительные знаки и устанавливайте датчик в положение, соответствующее всплывающей картинке.
- После каждого замера сохраняйте текущие значения компаса с помощью кнопки «Point».
- Далее нажмите на кнопку «Calculate Transformation Matrix and Bias», после чего получите:
- Transformation Matrix — матрицу масштаба и ортогонализации.
- Bias — значения смещения по всем трем осям
В заключении сохраните полученную корректировочную матрицу «Transformation Matrix» и значения сдвигов по трем осям «Bias» для дальнейшего использования с компасом или IMU-сенсором.