Калибровка компаса
В связи с искажениями от внешних магнитных полей, для работы IMU-сенсора или магнитометра в режиме компаса, их необходимо откалибровать.
Виды искажений
На показания электронного компаса действуют два типа искажений:
- Hard Iron Distortion создаётся дополнительным магнитным полем, которое генерируют внешние объекты. Например динамики звуковых колонок, провода питания и аккумуляторная батарея.
- Soft Iron Distortion создается внешними металлическими предметами, искажающими уже имеющееся магнитное поле. Например корпус двигателя, проводка или металлические болты.
Для калибровки компаса настройте железо и выполните программную настройку.
Железная часть
Рассмотрим калибровку компаса на одной из платформ Arduino, например, Uno.
- Прошейте плату скетчем приведённым ниже.
- 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.
- Скачайте и установите утилиту MagMaster.
- В открывшимся окне выберите номер «COM-порта» и нажмите кнопку «Open».
- Последовательно нажимайте на вопросительные знаки и устанавливайте датчик в положение, соответствующее всплывающей картинке.
- После каждого замера сохраняйте текущие значения компаса с помощью кнопки «Point».
- Далее нажмите на кнопку «Calculate Transformation Matrix and Bias», после чего получите:
- Transformation Matrix — матрицу масштаба и ортогонализации.
- Bias — значения смещения по всем трем осям
В заключении сохраните полученную корректировочную матрицу «Transformation Matrix» и значения сдвигов по трем осям «Bias» для дальнейшего использования с компасом или IMU-сенсором.