В ArduPilot несколько независимых failsafe могут сработать одновременно. Например, слабая батарея может совпасть с потерей GCS, а плохой GPS — с radio loss. Настраивай не отдельные переключатели, а общую таблицу приоритетов и конечных действий.

Собери матрицу
Для каждого события запиши источник, условие, задержку, действие, необходимые sensors, способ pilot takeover и ожидаемую запись в DataFlash. Добавь минимум radio, battery low/critical, GCS heartbeat, EKF и crash. Отметь, что произойдёт, если RTL недоступен из-за позиции.

Radio failsafe
Проверь, как приёмник сообщает потерю связи: специальные frames, throttle value или отсутствие данных. Без пропеллеров выключи передатчик и убедись, что ArduPilot видит именно failsafe. Выбери действие с учётом типа полёта и навигационной готовности. Замороженные RC-каналы не должны имитировать нормальное управление.
Battery failsafe
Он достоверен только после калибровки voltage/current/capacity. Разделяй low и critical. Не задавай одинаковый порог для батарей с разным числом банок без корректной логики. Учитывай, что RTL может потребовать больше энергии, чем немедленная безопасная посадка.
GCS failsafe
Потеря heartbeat от наземной станции имеет смысл только если GCS действительно участвует в операции. Не включай жёсткое действие для случайно открытого ноутбука, который не является критичным каналом. Проверь, какой MAVLink endpoint отправляет heartbeat и что произойдёт при закрытии приложения или потере telemetry.
EKF и crash
EKF failsafe реагирует на недостоверность оценки положения/ориентации. Изучи sensor health и innovations до выбора действия. Crash detection предназначен для прекращения опасной работы после признаков аварии, но его условия не должны конфликтовать с необычными манёврами модели.
Тестируй слой за слоем
- Наземный тест каждого триггера без пропеллеров.
- Проверка сообщения, mode change и логируемого события.
- Проверка pilot takeover.
- Контролируемый лётный тест эквивалентного режима.
- Разбор DataFlash и tlog.
Не создавай настоящий отказ в условиях, где нельзя безопасно восстановить управление. Failsafe готов, когда таблица не содержит противоречий, каждое действие имеет необходимые sensors, а пилот может объяснить последовательность при двух одновременных событиях. Далее проверяй RTL, fence и rally; общий маршрут — в руководстве ArduPilot Copter.