Перейти к содержимому
34
Арминг: проверки и отказы

Арминг: проверки и отказы #15

Mission Planner для технического персонала · Урок 15 из 43 · Модуль 2. Ввод аппарата в эксплуатацию

Что проверяет автопилот перед разрешением вращения моторов, как читать сообщения PreArm и почему проверки нельзя отключать.

Отключение проверок «чтобы взлететь» — самая дорогая экономия времени в этой профессии. Проверка сообщает о реальной проблеме.

Содержание

1. Цели урока

После этого урока вы будете понимать:

  • как устроена битовая маска ARMING_CHECK, в новых прошивках ARMING_SKIPCHK
  • полный список типовых сообщений PreArm с переводом
  • как правильно диагностировать отказ арминга
  • в каких случаях допустимо временно отключить проверку
↑ К оглавлению

2. Условия арминга

Арминг (arming) — активация силовой части: автопилот разрешает вращение моторов и переходит в готовность к полёту. Обратное действие — дизарминг. В интерфейсе Mission Planner это кнопки Arm и Disarm.

Перед разрешением вращения моторов ArduPilot проводит серию проверок (Arming Checks), управляемых битовой маской ARMING_CHECK. Параметр правится в CONFIG → Full Parameter List.

Схема арминга: группы pre-arm проверок с номерами битов, ветки отказов и сообщения PreArm

Восемь групп проверок в том порядке, в котором их выполняет прошивка, и типовые отказы каждой. В скобках у каждой группы — номер бита и его значение для маски. Формулировки сообщений приведены дословно, как их выдаёт ArduPilot 4.7 — по ним удобно искать причину. Важно: проверки не обрываются на первом сбое, поэтому в списке сообщений обычно видно сразу несколько причин

БитЗначениеПроверка
0 1 All — все проверки
1 2 Barometer
2 4 Compass
3 8 GPS lock
4 16 INS (гироскопы и акселерометры)
5 32 Parameters
6 64 RC channels
7 128 Board voltage
8 256 Battery level
9 512 Airspeed
10 1024 Logging available
11 2048 Hardware safety switch
12 4096 GPS configuration
13 8192 System
14 16384 Mission
15 32768 Rangefinder
16 65536 Camera
17 131072 AuxAuth
18 262144 VisualOdometry
19 524288 FFT
В прошивке 4.7 параметр заменён на ARMING_SKIPCHK с обратным смыслом. Это не переименование: ARMING_CHECK перечисляет проверки, которые нужно выполнять, а ARMING_SKIPCHK — те, которые нужно пропустить. Номера битов совпадают, но значение инвертировано: прежнему «все проверки включены» (ARMING_CHECK = 1) соответствует ARMING_SKIPCHK = 0, а прежнему «все выключены» (ARMING_CHECK = 0) — ARMING_SKIPCHK = -1.
Параметр ARMING_SKIPCHK и диалог Set Bitmask со списком проверок

Кнопка Set Bitmask в колонке Options открывает диалог со списком проверок — галочками отмечено то, что будет пропущено. На снимке ARMING_SKIPCHK = -1: отмечены все 18 позиций, то есть отключены все необязательные проверки

Бита 0 (All) в новом параметре нет, отсутствует и бит 9 (Airspeed). Официальная документация предупреждает, что автоматическая конверсия при обновлении может дать неверный результат: после перехода на 4.7 обязательно откройте CONFIG → Full Parameter List и проверьте значение вручную. Ошибка здесь означает молча отключённые предполётные проверки. Подробнее о переименованиях — в уроке 7.
Никогда не отключайте проверки «чтобы взлететь»: Соблазн поставить ARMING_CHECK = 0 (в новых прошивках ARMING_SKIPCHK = -1) при непонятном отказе велик и почти всегда заканчивается плохо. Проверка сообщает о реальной проблеме. Правильная последовательность: прочитать сообщение, понять причину, устранить. Временное отключение отдельного бита допустимо только при осознанной работе на стенде, и его надо вернуть.

Типовые сообщения и их причины. Формулировки приведены так, как их выдаёт прошивка 4.7 — по ним удобно искать в поиске:

СообщениеЧто означаетЧто делать
PreArm: Need Position Estimate Нет решения по положению от EKF Дождаться спутников или выйти на открытое место
PreArm: High GPS HDOP Плохая геометрия спутников Подождать; порог задаётся GPS_HDOP_GOOD
PreArm: GPS 1: Bad fix Приёмник не выдал устойчивого решения Проверить антенну и обзор неба
PreArm: 3D Accel calibration needed Акселерометр не откалиброван Пройти калибровку из урока 10
PreArm: Accels not healthy Датчик не отвечает или врёт Перезагрузить; при повторе — неисправность IMU
PreArm: Accels inconsistent Показания IMU расходятся между собой Повторить калибровку, проверить крепление платы
PreArm: Gyros not calibrated Гироскопы не прошли начальную калибровку Перезагрузить, не двигая аппарат
PreArm: Gyros not healthy Аппарат двигался при инициализации Поставить неподвижно и перезагрузить
PreArm: Gyros inconsistent Гироскопы расходятся между собой Проверить вибрации и крепление
PreArm: Compass 1 not healthy Магнитометр не отвечает Проверить подключение внешнего компаса
PreArm: Compass offsets too high Смещения превышают допустимые Повторить калибровку подальше от металла
PreArm: Compasses inconsistent Компасы показывают разное Отключить внутренний, оставить внешний
PreArm: Check mag field: … Модуль поля вне допустимого диапазона Уйти от арматуры и силовых кабелей
PreArm: Compass calibrated requires reboot Калибровка выполнена, но не применена Перезагрузить автопилот
PreArm: Baro: … Проблема с барометром Проверить, не обдувается ли датчик
PreArm: RC calibrating Идёт калибровка радио Завершить процедуру
PreArm: Throttle below failsafe Стик газа ниже порога failsafe Поднять стик; проверить FS_THR_VALUE
PreArm: Hardware safety switch Не нажат предохранительный выключатель Нажать и удерживать до постоянного свечения
PreArm: Motors Emergency Stopped Активен тумблер аварийной остановки Вернуть тумблер RCn_OPTION = 31
PreArm: Logging failed Не пишется бортовой лог Проверить карту памяти
PreArm: Battery below minimum arming voltage Напряжение ниже BATT_ARM_VOLT Зарядить батарею
PreArm: AHRS: … Фильтр положения не сошёлся Дать время на инициализацию, проверить вибрации
PreArm: System not initialised Прошивка ещё загружается Подождать несколько секунд
Сообщения с двоеточием и многоточием: Часть строк прошивка достраивает на ходу. Check mag field: … дополняется измеренным значением и границами, Baro: … и AHRS: … — текстом от подсистемы, Compass 1 — номером конкретного датчика. Поэтому в поиске по документации ищите начало строки, а не всё сообщение целиком.
Не все сообщения начинаются с PreArm: Часть проверок выполняется уже в момент команды, и тогда префикс будет Arm: — например Arm: Leaning при наклонённом аппарате, Arm: Throttle too high или Arm: AUTO mode not armable. Разница важна для диагностики: PreArm: означает, что предполётные проверки не пройдены, а Arm: — что они пройдены и отказала проверка при самой команде.
Проверки не обрываются на первой непройденной: В прошивке они объединены побитовым «и», а не логическим, поэтому выполняются все до одной. Практическое следствие: в DATA → Messages вы увидите сразу несколько сообщений, и устранять нужно каждую причину, а не только верхнюю в списке.
↑ К оглавлению

3. Практика

Задания выполняются в симуляторе SITL и не требуют реального аппарата. Выполните их до перехода к следующему уроку.

Задание 15.1. Отказ по каждой группе проверок

Выполняется в симуляторе SITL, реальный аппарат не требуется.

  • Дождитесь готовности и убедитесь, что аппарат активируется, а в HUD надпись меняется на ARMED.
  • Отключите GPS: SIM_GPS1_ENABLE = 0. Попробуйте перейти в LOITER и выполнить арминг. Запишите точный текст сообщения и его префикс.
  • Верните GPS, дождитесь решения. Наклоните аппарат в симуляторе и попробуйте активироваться в STABILIZE — получите отказ с префиксом Arm:.
  • Для каждого случая найдите на схеме из раздела 2 группу проверок, к которой относится сообщение, и её номер бита.

Задание 15.2. Разбор битовой маски

Выполняется в симуляторе SITL, реальный аппарат не требуется.

  • Определите, какое значение ARMING_CHECK соответствует «все проверки, кроме логирования». На прошивке 4.7 и новее решите обратную задачу для ARMING_SKIPCHK.
  • Спровоцируйте в симуляторе три разные ошибки PreArm и найдите их точные формулировки.
  • Объясните, почему проверка «Gyros not healthy» может появиться при взлёте с движущегося автомобиля.
↑ К оглавлению

4. Проверьте себя

Сформулируйте ответ своими словами, прежде чем сверяться со справочником ответов.

  1. Как вычислить значение ARMING_CHECK для произвольного набора проверок и чем отличается расчёт для ARMING_SKIPCHK?
  2. Чем отличается сообщение с префиксом PreArm: от сообщения с префиксом Arm: и что это даёт при диагностике?
  3. Что произойдёт, если поставить ARMING_SKIPCHK = -1: какие проверки отключатся, а какие останутся?
  4. Почему PreArm: Gyros not healthy может появиться при попытке взлёта с движущегося автомобиля?
  5. Аппарат выдаёт PreArm: Check mag field на площадке, где вчера всё работало. Каков порядок действий?
  6. Почему сообщение Compass calibrated requires reboot не исчезает после повторной калибровки?
↑ К оглавлению

5. Чек-лист самопроверки

Урок освоен, если каждый пункт выполнен на практике:

  • Аппарат активируется без сообщений PreArm
  • Знаю расшифровку минимум десяти типовых сообщений
  • Проверки не отключены «на всякий случай»: ARMING_CHECK = 1 либо ARMING_SKIPCHK = 0
Результат: все пункты выполнены — переходите к следующему уроку.
↑ К оглавлению

6. Что дальше

↑ К оглавлению
  • мод. : Вторник, 08 сентября 2026
Арминг: проверки и отказы