Калибровка компаса

В связи с искажениями от внешних магнитных полей, для работы IMU-сенсора или магнитометра в режиме компаса, их необходимо откалибровать.

Виды искажений

На показания электронного компаса действуют два типа искажений:

  • Hard Iron Distortion создаётся дополнительным магнитным полем, которое генерируют внешние объекты. Например динамики звуковых колонок, провода питания и аккумуляторная батарея.
  • Soft Iron Distortion создается внешними металлическими предметами, искажающими уже имеющееся магнитное поле. Например корпус двигателя, проводка или металлические болты.

Для калибровки компаса настройте железо и выполните программную настройку.

Железная часть

Рассмотрим калибровку компаса на одной из платформ Arduino, например, Uno.

  1. Прошейте плату скетчем приведённым ниже.
    compassCalibrationMatrix.ino
    // скетч используется для калибровки компаса
    // подробности читайте на:
    // http://wiki.amperka.ru/articles:troyka-magnetometer-compass-calibrate
     
    // библиотека для работы I²C
    #include <Wire.h>
    // библиотека для работы с модулями IMU
    #include <TroykaIMU.h>
     
    // создаём объект для работы с компасом
    Compass compass;
     
    void setup()
    {
      // открываем последовательный порт
      Serial.begin(9600);
      // инициализация компаса
      compass.begin();
      // устанавливаем чувствительность компаса
      // ±4 gauss — по умолчанию, ±8 gauss, ±12 gauss, ±16 gauss
      compass.setRange(RANGE_4_GAUSS);
    }
     
    void loop()
    {
      // Выводим «сырые» значения компаса по трём осям
      Serial.print(compass.readX());
      Serial.print(",");
      Serial.print(compass.readY());
      Serial.print(",");
      Serial.println(compass.readZ());
      delay(100);
    }

Программная часть

Рассмотрим программную настройку на OS Windows.

  1. Скачайте и установите утилиту MagMaster.
  2. В открывшимся окне выберите номер «COM-порта» и нажмите кнопку «Open».
  3. Последовательно нажимайте на вопросительные знаки и устанавливайте датчик в положение, соответствующее всплывающей картинке.
  4. После каждого замера сохраняйте текущие значения компаса с помощью кнопки «Point».
  5. Далее нажмите на кнопку «Calculate Transformation Matrix and Bias», после чего получите:
    1. Transformation Matrix — матрицу масштаба и ортогонализации.
    2. Bias — значения смещения по всем трем осям

В заключении сохраните полученную корректировочную матрицу «Transformation Matrix» и значения сдвигов по трем осям «Bias» для дальнейшего использования с компасом или IMU-сенсором.

Список поддерживаемых модулей