В связи с искажениями от внешних магнитных полей, для работы IMU-сенсора или магнитометра в режиме компаса, их необходимо откалибровать.
На показания электронного компаса действуют два типа искажений:
Для калибровки компаса настройте железо и выполните программную настройку.
Рассмотрим калибровку компаса на одной из платформ Arduino, например, Uno.
// Пример выводит сырые значения магнитометра, которые // используются для последующей калибровки сенсора // Подробности читайте в документации про калибровку магнитометра // 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.
В заключении сохраните полученную корректировочную матрицу «Transformation Matrix» и значения сдвигов по трем осям «Bias» для дальнейшего использования с компасом или IMU-сенсором.