ArduPilot сообщает о рисках раньше, чем модель взлетит: pre-arm блокирует запуск, EKF оценивает согласованность сенсоров, fence ограничивает пространство, failsafe задаёт реакцию на отказ, а dataflash log показывает, что произошло на самом деле. Безопасная настройка не отключает эти слои, а проверяет их по одному.

Pre-arm — диагноз, а не помеха
При отказе arm подключись к наземной станции и прочитай первое красное сообщение HUD. ArduPilot также периодически отправляет активные причины в GCS. Не ставь ARMING_SKIPCHK ради полёта: официальная документация допускает обход только для осознанного стендового теста. В поле нужно исправить первопричину.
- Accel/gyro: повтори калибровку на устойчивой поверхности, проверь ориентацию и дай датчикам прогреться.
- Compass: убери модель от металла и силовых проводов, проверь внешнюю/внутреннюю установку и повтори калибровку.
- GPS/home: выйди на открытое место, дождись устойчивой оценки положения и исключи помехи VTX.
- Battery: проверь источник измерения и порядок low/critical thresholds, а не просто снижай порог.
- Logging: ошибка записи означает проблему SD-карты или ресурсов; без лога приёмку не продолжай.

EKF сравнивает сенсоры
EKF не является ещё одним GPS. Он сопоставляет GPS, IMU, компас, барометр и другие источники и оценивает доверие к положению, скорости и направлению. Рост variance означает расхождение измерений. Если несколько variance превышают порог, в GPS-зависимом режиме может сработать EKF failsafe.
Не лечи нестабильный EKF повышением FS_EKF_THRESH без диагностики. Более мягкий порог отложит реакцию на настоящий GPS glitch или ошибку компаса. Сначала проверь вибрации, питание, спутники, магнитные помехи и ориентацию. В GCS наблюдай EKF status, а после полёта анализируй innovations и события failsafe.
Перед изменением параметров сохрани полный parameter file и отметь firmware, frame type и дату. Меняй одну группу причин за раз: сначала механические вибрации, затем компас, затем GPS. Если одновременно переставить GPS, ослабить фильтр и изменить EKF gates, даже хороший следующий полёт не покажет, какое действие помогло.
Fence не заменяет навигацию
Geofence задаёт допустимую высоту и/или область. До arm контроллер должен иметь позицию и находиться внутри fence. Граница выбирается с запасом на GPS-ошибку, тормозной путь и ветер. Слишком тесный polygon способен вызвать повторные нарушения при попытке вернуться внутрь.
Fence action должен соответствовать модели и площадке. RTL опасен без проверенного home и безопасной высоты, Land может быть неприемлем над водой или деревьями. Сначала проверь уведомление и реакцию на большой учебной границе, оставаясь в прямой видимости.
Разделяй причины failsafe
Radio, battery, GCS, EKF и terrain failsafe имеют разные триггеры и действия. Настрой каждую причину отдельно и документируй ожидаемый результат. После mode change из-за radio, battery, GCS или terrain failsafe ArduPilot может оставаться в новом режиме, пока пилот явно не выберет другой; восстановление линка не всегда возвращает прежний режим.
- Проверь radio failsafe без пропеллеров: входы должны перейти в ожидаемое состояние, а режим — в заданное действие.
- Проверь battery thresholds по откалиброванному напряжению и току, не разряжая LiPo до опасного состояния.
- Если GCS не является обязательным каналом управления, не задавай реакцию, которая сделает случайный обрыв телеметрии опаснее.
- Назначь доступный ручной режим, не требующий GPS, для возврата управления при проблеме EKF.
Лог — обязательная часть приёмки
После каждого тестового полёта скачай dataflash log до следующих изменений. Сначала ищи сообщения ERR и события Radio, Battery, Fence, EKF или Navigation. Затем сопоставляй время события с режимом, RC input, GPS, высотой и питанием. Резкое окончание лога в воздухе может указывать на brownout; скачок GPS — на помеху или плохой приём, а не на ошибку траектории.
Первый лётный план должен быть коротким: ручной режим, проверка стабилизации, удержание позиции, ручной RTL рядом, отмена RTL, затем отдельная проверка fence. Между этапами просматривай лог. Увеличивать дистанцию можно только после чистого повторяемого результата.
Храни лог вместе с соответствующим parameter file и краткой заметкой о погоде, батарее и изменениях. Имя «последний.bin» быстро теряет смысл; дата, модель и номер теста позволяют сравнить два вылета без догадок и подтверждают, что анализ относится к текущей конфигурации.
Перед полётом используй FPV-чек-лист, а архитектурные различия ArduPilot, INAV и Betaflight сверяй в руководстве по выбору прошивки.