Калибровка акселерометра и компаса
Mission Planner для технического персонала · Урок 10 из 43 · Модуль 2. Ввод аппарата в эксплуатацию
Две базовые калибровки, от которых зависит всё остальное. Особое внимание компасу: это самый капризный датчик на аппарате.
Никакой объём тюнинга не компенсирует некорректно откалиброванный акселерометр. Большинство проблем с уводом в LOITER — это компас.
Содержание
1. Цели урока
После этого урока вы будете понимать:
- как правильно провести шестипозиционную калибровку
- когда достаточно быстрой Calibrate Level
- чем hard-iron отличается от soft-iron искажений
- как бороться с влиянием тока на показания компаса
- как выполнить CompassMot и MagFit и чем они различаются
2. Калибровка акселерометра
Процедура определяет смещения и масштабные коэффициенты трёх осей акселерометра для каждого установленного на плате IMU (обычно их два или три).
Полная калибровка (Accel Calibration)
Программа последовательно просит установить аппарат в шесть положений: level (горизонтально), left side, right side, nose down, nose up, on its back. Требования к процедуре:
- аппарат должен быть неподвижен в каждом положении;
- положения должны быть точными: используйте ровный стол, при необходимости — уровень;
- «горизонтально» означает горизонтально по конструкции аппарата, а не по плате;
- каждое нажатие кнопки фиксирует показания; между нажатиями аппарат не двигают.
Калибровка горизонта (Calibrate Level)
Отдельная кнопка, требующая только одного положения — горизонтального. Она корректирует параметры AHRS_TRIM_X и AHRS_TRIM_Y, то есть учитывает наклон установки платы относительно корпуса.
Проверка результата
После калибровки в горизонтальном положении на ровной поверхности:
- в HUD крен и тангаж должны показывать 0 ± 1°;
- в DATA → Status поля
ax,ayблизки к нулю,azблизко к −9,81 (или +9,81 в зависимости от знака в конкретной версии).
3. Калибровка компаса
Магнитометр — самый капризный датчик на аппарате. Большинство проблем с уводом в LOITER, круговым дрейфом (эффект «toilet bowl») и ошибками EKF связаны именно с ним.
Идеальная калибровка даёт сферу с центром в нуле. Смещение центра — hard-iron (постоянные магниты, металл рядом). Эллипс — soft-iron или влияние тока
Виды магнитных помех
| Тип помехи | Источник | Лечение |
|---|---|---|
| Hard-iron | Постоянные магниты моторов, ферромагнитные крепежи, динамики | Обычная калибровка (offsets) |
| Soft-iron | Искажение поля стальными и никелевыми деталями | Калибровка с определением эллипсоида (diagonals) |
| От тока | Магнитное поле силовых проводов и моторов, пропорциональное току | COMPASS_MOT_* или CompassMot / MagFit по логу |
| Внешняя | Арматура в бетоне, ЛЭП, автомобили | Смена места калибровки и взлёта |
Процедура Onboard Calibration
- Отойдите от строений, машин, арматуры минимум на 10–15 метров. Асфальт над арматурой и бетонные площадки — плохое место.
- Снимите с себя часы, телефон, ключи.
- SETUP → Mandatory Hardware → Compass → Start.
- Вращайте аппарат вокруг всех трёх осей, стараясь «закрыть» полную сферу: держите его носом вверх и крутите, носом вниз и крутите, на каждом боку и крутите.
- Полосы прогресса заполняются по каждому компасу. Процедура занимает 1–3 минуты.
- По завершении программа покажет fitness (качество подгонки) и предложит перезагрузку.
| Fitness | Оценка |
|---|---|
| ≤ 8 | Отлично |
| 8–16 | Приемлемо, обычно достаточно |
| 16–30 | Плохо; ищите источник помех, повторите в другом месте |
| ≥ 30 | Компас непригоден в текущей установке |
COMPASS_USE2 = 0. Один хороший компас лучше, чем один хороший плюс один шумящий.Компенсация влияния тока
При больших токах магнитное поле силовых проводов и моторов заметно искажает показания компаса. Искажение пропорционально току, поэтому в висении курс держится, а на разгоне или наборе высоты начинает уплывать — аппарат «косит» в LOITER, кружит вместо возврата по прямой, теряет точность в AUTO.
Есть два способа компенсации. Оба записывают поправки в одни и те же параметры, но получают их по-разному.
| Способ | Как выполняется | Когда применять |
|---|---|---|
| CompassMot | На земле, аппарат закреплён, винты перевёрнуты, газ поднимается вручную | Классический способ. Нужен датчик тока. Требует надёжного крепления |
| MagFit по логу | Обычный полёт, затем обработка бортового лога на компьютере | Современный и рекомендуемый. Безопаснее и точнее, аппарат никуда не крепится |
Процедура CompassMot по шагам
- Убедитесь, что работает датчик тока. Компенсация строится на зависимости искажения от тока, без монитора батареи она бессмысленна. Проверьте, что в DATA → Status поле
currentпоказывает ненулевое значение под нагрузкой. Настройка датчика — в SETUP → Optional Hardware → Battery Monitor. - Переверните винты и переставьте их через один луч. В такой конфигурации при подъёме газа тяга прижимает аппарат к земле, а не поднимает его.
- Закрепите аппарат. Скотчем, стяжками, грузом — так, чтобы он гарантированно не сдвинулся.
- Включите передатчик, стик газа в нуле.
- Подключите силовую батарею.
- Подключите автопилот к компьютеру по USB и соединитесь в Mission Planner.
- Откройте SETUP → Optional Hardware → Compass/Motor Calib.
- Нажмите Start. Регуляторы издадут звук готовности.
- Плавно поднимите газ до 50–75 процентов и удерживайте 5–10 секунд. Винты вращаются.
- Быстро сбросьте газ в ноль.
- Нажмите Finish — та же кнопка, надпись на ней меняется со Start на Finish.
- Отключите батарею и верните винты в нормальное положение.
Во время процедуры экран показывает четыре величины и строит график зависимости помехи от газа:
| Показатель | Что означает |
|---|---|
Current |
Текущий ток, А |
x, y, z |
Рассчитываемые коэффициенты компенсации по трём осям |
Throttle |
Текущее положение газа, проценты |
Interference |
Уровень помехи, проценты — главный результат процедуры |
Оценка результата по итоговому значению Interference:
| Помеха | Оценка | Что делать |
|---|---|---|
| до 30 процентов | Приемлемо | Ничего. LOITER, RTL и AUTO будут работать нормально |
| 31–60 процентов | Серая зона | У одних работает, у других нет. Лучше исправить механически |
| более 60 процентов | Неприемлемо | Компенсация не спасёт: выносите автопилот дальше от силовой части либо ставьте внешний компас |
COMPASS_MOTCT: значение 2 означает компенсацию по току, 1 — по газу, 0 — выключено. Сами коэффициенты попадают в COMPASS_MOT_X, COMPASS_MOT_Y, COMPASS_MOT_Z. Править их вручную в CONFIG → Full Parameter List не нужно — только смотреть. Вариант с компенсацией по газу вместо тока технически возможен, но не рекомендуется: связь помехи с током линейна, с газом — нет.Процедура MagFit по логу
Способ не требует ни крепления аппарата, ни вращения винтов на земле: поправки вычисляются по записи реального полёта.
- Включите подробное логирование компаса. В CONFIG → Full Parameter List убедитесь, что в
LOG_BITMASKвключена запись IMU и компаса. - Выполните полёт продолжительностью 3–5 минут в режиме LOITER или ALT_HOLD: развороты на 360 градусов в обе стороны, полёт по всем четырём сторонам света, набор высоты и снижение, участки на разной тяге. Задача — набрать данные при разных курсах и разных токах.
- Скачайте бортовой лог через DATA → DataFlash Logs → Download DataFlash Log Via Mavlink. Лучше по USB: файл весит десятки мегабайт.
- Обработайте лог. В составе MAVProxy есть утилита MAVExplorer с командой
magfit. Есть и веб-сервисы, принимающие файл лога и возвращающие готовый набор параметров. - Загрузите полученные значения в аппарат: CONFIG → Full Parameter List → Load from file, затем Write Params.
- Проверьте результат контрольным полётом: курс в HUD должен совпадать с реальным направлением, а в LOITER аппарат не должен уводить по кругу.
COMPASS_MOTCT и коэффициенты COMPASS_MOT_*.Лучшее решение — механическое: Никакая программная компенсация не заменит правильного размещения. Внешний компас на мачте высотой 10–15 см над рамой, силовые провода скручены попарно, GPS-модуль с компасом вынесен от питания — и калибровка перестаёт быть проблемой.
Магнитное склонение
Параметр COMPASS_DEC (в радианах) учитывает разницу между магнитным и истинным севером. При включённой опции Automatic Declination значение подставляется автоматически по координатам GPS из встроенной модели. Оставьте автоматический режим включённым.
4. Практика
Задания выполняются в симуляторе SITL и не требуют реального аппарата. Симулятор позволяет безопасно внести искажение в датчик и посмотреть, как калибровка его исправляет, — на живом аппарате такой эксперимент не поставить.
Задание 10.1. Смещение акселерометра и его исправление
Выполняется в симуляторе SITL, реальный аппарат не требуется.
- Подключитесь к симулятору и запишите в CONFIG → Full Parameter List текущие значения
INS_ACCOFFS_X,INS_ACCOFFS_Y,INS_ACCOFFS_Z, а такжеAHRS_TRIM_XиAHRS_TRIM_Y. - Проверьте исходное состояние: в HUD крен и тангаж около нуля, в DATA → Status поля
axиayблизки к нулю. - Внесите искусственное смещение: задайте
SIM_ACC1_BIAS_X = 0.5и запишите параметры. Это имитирует сбитый акселерометр. - Посмотрите, как изменились показания
axв Status и положение авиагоризонта. - Выполните SETUP → Mandatory Hardware → Accel Calibration и объясните, почему шестипозиционная процедура в симуляторе выполняется нажатием клавиш без физического переворота.
- Верните
SIM_ACC1_BIAS_X = 0и сравните значенияINS_ACCOFFS_*с исходными.
Задание 10.2. Искажения компаса
Выполняется в симуляторе SITL, реальный аппарат не требуется.
- Запишите текущие
COMPASS_OFS_X,COMPASS_OFS_Y,COMPASS_OFS_Z— это результат заводской калибровки симулятора. - Задайте
SIM_MAG1_OFS_X = 200и запишите параметры. Так имитируется hard-iron: постоянный магнит или стальной крепёж рядом с датчиком. - Понаблюдайте за курсом в HUD при развороте аппарата в LOITER. Объясните, к какому типу помех из таблицы раздела 3 относится это искажение.
- Дополнительно задайте
SIM_MAG1_DIA_X = 1.2— это уже soft-iron, искажение формы поля. Сравните характер ошибки с предыдущим случаем. - Верните оба параметра к исходным значениям:
SIM_MAG1_OFS_X = 0,SIM_MAG1_DIA_X = 1.
Задание 10.3. Работа с несколькими компасами
Выполняется в симуляторе SITL, реальный аппарат не требуется.
- Откройте SETUP → Mandatory Hardware → Compass и посмотрите, сколько компасов обнаружил симулятор и какие из них отмечены галочкой Use.
- Найдите в CONFIG → Full Parameter List параметры
COMPASS_USE,COMPASS_USE2,COMPASS_USE3и сопоставьте их с галочками на экране. - Отключите второй компас и проследите за сообщениями во вкладке DATA → Messages после перезагрузки автопилота.
- Проверьте состояние
COMPASS_AUTODECи объясните, почему автоматический режим предпочтительнее ручного ввода склонения. - Верните исходную конфигурацию компасов.
SIM_ существуют только в симуляторе. Это модель поведения датчиков, а не настройки автопилота. На реальном аппарате их нет, и искать их там бессмысленно. Не переносите файл параметров из SITL на живой аппарат: кроме бесполезных SIM_ в нём чужие калибровки.5. Проверьте себя
Сформулируйте ответ своими словами, прежде чем сверяться со справочником ответов.
- Чем полная шестипозиционная калибровка отличается от Calibrate Level и в каком случае достаточно второй?
- Почему нельзя держать аппарат в руках во время калибровки акселерометра?
- Чем hard-iron отличается от soft-iron: каков источник каждого искажения и как оно выглядит на сфере калибровки?
- Что означает значение fitness 20 по итогам калибровки компаса и что делать в этом случае?
- Почему один внешний компас часто лучше, чем внешний вместе с внутренним?
- Зачем при CompassMot переворачивать винты и переставлять их через один луч?
- Почему CompassMot бесполезен без работающего датчика тока?
- Уровень помехи по итогам CompassMot составил 45 процентов. Как это трактовать?
- Чем MagFit по логу точнее CompassMot и почему нельзя выполнять обе процедуры подряд?
- В каких единицах задаётся
COMPASS_DECи почему его обычно не трогают вручную?
6. Чек-лист самопроверки
Урок освоен, если каждый пункт выполнен на практике:
- Акселерометр откалиброван, углы на ровной поверхности 0 ± 1°
- Компас откалиброван вдали от металла, fitness не более 16
- Лишние компасы отключены
- Курс в HUD соответствует реальному направлению
7. Что дальше
- Предыдущий урок: 9. Конфигурация рамы и ориентация контроллера
- Следующий урок: 11. Калибровка радиоуправления и регуляторов оборотов
- Полный перечень тем: Содержание курса
- мод. : Понедельник, 24 августа 2026


