Причины отказа активации дрона («нет Арма») в iNav
Причины невозможности «Арминга»:
Система INAV может отказать в выполнении некоторых операций, включая активацию («Арминг») или процедуры выполнения маршрута полета. Настоящий документ описывает возможные причины таких ситуаций.
Причины отказа в «Арминге»
INAV отказывается производить «Арминг» по следующим причинам (пример из вывода команды «cli status»):
| Причина (сокращение) | Битовая маска (шестнадцатеричное представление) | Объяснение |
|---|---|---|
| GEOZONE | 00000040 | Геозона препятствует активации. |
| FS | 00000080 | Приёмник не распознаёт действительный сигнал. |
| ANGLE | 00000100 | Аппарат не горизонтален (угол наклона не соответствует заданному в настройке «small_angle»). |
| CAL | 00000200 | Процедура предварительной калибровки датчиков не завершена. |
| OVRLD | 00000400 | Процессор перегружен. |
| NAV | 00000800 | Дополнительная проверка безопасности навигации включена («nav_extra_arming_safety = ON»). |
| COMPASS | 00001000 | Компас не откалиброван. |
| ACC | 00002000 | Акселерометр не откалиброван. |
| ARMSW | 00004000 | Тумблер активации (Арминга) был активирован при загрузке полетного контроллера. |
| HWFAIL | 00008000 | Необходимое аппаратное устройство (гироскоп, акселерометр, барометр и другое) неисправно или не распознаётся. |
| BOXFS | 00010000 | Включён резервный переключатель защиты («failsafe»). |
| KILLSW | 00020000 | Включён аварийный останов («kill-switch»). |
| RX | 00040000 | Радиосвязь не установлена (приёмник не обнаружен). |
| THR | 00080000 | Газ не установлен на минимальный уровень. |
| CLI | 00100000 | Интерфейс командной строки активен (будет отображаться всегда при работе в терминале). |
| CMS | 00200000 | Открыто меню конфигурации. |
| OSD | 00400000 | Экран телеметрии активен. |
| ROLL/PITCH | 00800000 | Наклоны и углы не стабилизированы. |
| AUTOTRIM | 01000000 | Автономная регулировка сервоприводов активирована. |
| OOM | 02000000 | Контроллер исчерпал всю доступную память. |
| SETTINGFAIL | 04000000 | Один из параметров выходит за допустимый диапазон. |
| PWMOUT | 08000000 | Ошибка вывода сигнала PWM (моторов или сервоприводов). |
| NOPREARM | 10000000 | Режим PREARM активирован и закончился временной лимит. |
| DSHOTBEEPER | 20000000 | Функция звуковых уведомлений DSHOT активирована. |
| LANDED | 40000000 | Обнаружена посадка аппарата. |
Примечание: На старых устройствах отображается только битовая маска, которую можно интерпретировать по приведенным в таблице числовым значениям. Например:
0x184000 = 00100000 + 00080000 + 00004000 (команда активна, газ не на минимуме, переключатель арма включен)
Приведённые значения относятся к версии INAV 8.0.1 (src/main/fc/runtime_config.h).
Небезопасность навигации
Эта ситуация возникает при включении навигационных режимов (включая автоматический возврат домой RTH).
- Недостаточное количество спутников GPS (даже если GPS отключён, но задан режим навигации).
- Активан тумблер навигационного режима (например, удержание позиции РН, следование маршруту WP, возвращение домой).
- Первое контрольное задание (WP) расположено слишком далеко от текущего местоположения.
- Качество сигналов от сенсоров низкое: EPH/EPV превышает 10 метров (Обратите внимание, что предел в CLI
inav_max_eph_epvуказан в см, по умолчанию 1000). Проверьте такжеinav_baro_epv - Последовательность путевых точек некорректна («JUMP»).
- Первая путевая точка расположена за пределами безопасной дистанции. INAV 5.1 и ниже использует
nav_wp_safe_distance. В INAV 6.0 используйтеnav_wp_max_safe_distance.
Настройка ограничений по расстояниям включает:
nav_wp_safe_distance: Безопасное расстояние до первой путевой точки (по умолчанию 100 метров, вводится в сантиметрах).
# get nav_wp_safe_distance
nav_wp_safe_distance = 10000
Allowed range: 0 - 65000
nav_wp_max_safe_distance: Максимальная допустимая дистанция до первой путевой точки (по умолчанию 100 метров, вводится в метрах).
# get nav_max_wp_safe_distance
nav_max_wp_safe_distance = 100
Allowed range: 0 - 1500
Ограничения инструкции JUMP в iNav:
- Первым элементом маршрута не может быть инструкция JUMP (невозможно рассчитать расстояние до предыдущей точки, запрещены обратные прыжки).
Как понять эту инструкцию на практике?
Это означает, что команда JUMP (Прыжок) не может стоять самой первой в списке точек вашего маршрута (Waypoint 0 или WP0).
Почему нельзя? Логика работы контроллера:
- Неоткуда "прыгать". Представьте, что команда
JUMPговорит автопилоту: "Вернись назад по маршруту на Х шагов, а потом продолжай с той точки, на которую приземлился".
Для этого контроллеру нужно знать, где он находится сейчас в рамках миссии. Первая точка маршрута (WP0) — это место старта. Если первой же командой будетJUMP, контроллер не сможет вычислить, откуда и насколько далеко назад ему нужно прыгнуть, потому что перед этой точкой ничего нет. Это как пытаться отступить на шаг назад, стоя на краю обрыва. - Запрет обратного прыжка в начале. Допустим, вы попытаетесь сделать
JUMPвперед. Но логика iNav требует расчета дистанции до предыдущей точки для внутренних проверок. Так как предыдущей точки нет, команда не может быть выполнена.
Что это значит для вас, как для пилота, при планировании миссии?
- Ваш маршрут всегда должен начинаться с конкретного действия, а не с "перемотки".
- Первой точкой (WP0) должна быть одна из команд:
WAYPOINT(полететь к координатам).POSHOLD_UNLIM/POSHOLD_TIME(зависнуть на месте).RTH(вернуться домой).LAND(приземлиться) и т.д.
Простой пример:
НЕПРАВИЛЬНАЯ последовательность:
- WP0:
JUMPto WP5 (Невозможно! Контроллер "зависнет" или проигнорирует команду). - WP1:
WAYPOINT(Координаты А) - ...
- WP5:
WAYPOINT(Координаты Б)
ПРАВИЛЬНАЯ последовательность:
- WP0:
WAYPOINT(Стартовые координаты или точка взлета) ← Начните с чего-то реального! - WP1:
WAYPOINT(Координаты А) - WP2:
JUMPto WP1 (Повторить этап) ← Теперь прыжок корректен, есть предыдущая точка WP1. - WP3:
WAYPOINT(Координаты Б)
Итог: Команда JUMP — это инструмент для создания циклов и повторов внутри уже заданного маршрута. Маршрут должен сначала начаться, а уже потом можно организовать в нем ветвление с помощью JUMP.
- Нельзя выполнять прыжок на непосредственно следующую точку маршрута (бессмысленно).
- Нельзя прыгать на точку за пределами списка маршрутных точек (поведение не определено).
- Прыжок возможен только на геопривязанные точки маршрута (в противном случае поведение не определено).
Проблема: Инструкция "Точки маршрута" не выполняется.
Пилот считает, что загрузил миссию по точкам, но она не стартует, при включении назначенного переключателя.
Возможные причины:
- Миссия фактически не загружена в полетный контроллер. Точки маршрута должны находиться в оперативной памяти (которая очищается при отключении питания), а не в EEPROM. Если точки были сохранены в EEPROM, необходимо восстановить их в оперативную память перед выполнением миссии.
- Самолет с неподвижным крылом находится в режиме MANUAL (РУЧНОЙ) или PASSTHROUGH.
- Аппарат в данный момент выполняет команду RTH (возврат к точке взлета).
- RTH не активируется, потому что сигнал GPS ухудшен (значения
eph/epvпревышают допустимые, заданные в настройке CLIinav_max_eph_epv).
Диагностика проблем с активацией («Армингом») и выполнением заданий
Проведение диагностики проблем с активацией и невозможностью выполнить задание лучше всего осуществлять с помощью специализированных конфигураторов и утилит:
- Конфигуратор INAV: выводит причину отказа активации.
- Blackbox Log: помогает установить причину возникшей проблемы после завершения процесса.
- Интерфейс командной строки INAV: доступен через терминал, конфигуратор и большинство наземных станций.
Пример вывода статуса:
# status ... Arming disable flags: NAV HWFAIL RX CLI
Другие полезные инструменты диагностики предоставляются большинством наземных станций, например, предупреждения о превышении безопасной дистанции до первой путевой точки.
Более подробную инструкцию по диагностике можно посмотреть по следующей ссылке:
quadmeup.com/troubleshooting-inav-why-inav-is-not-arming.
Заключение
Если система выдаёт сообщение «Навигация небезопасна», его можно решить путём изменения параметра nav_extra_arming_safety = ALLOW_BYPASS. Однако важно учитывать, что такое изменение является потенциально опасным и требует осторожности.
ID 58