Failsafe: что делает аппарат при отказах
Хороший автопилот заранее знает, что делать при беде; разберём типовые отказы и реакции на них.
Failsafe — заранее заданная безопасная реакция автопилота на отказ или опасное событие (потерю связи, разряд батареи, отказ датчика).
Типовые отказы и реакции
- Потеря радиосвязи. Аппарат не должен «застыть» в неизвестности — обычно включается RTL (return to launch): автопилот сам ведёт его к точке старта и сажает.
- Низкое напряжение батареи. Сначала предупреждение, при критическом пороге — принудительный возврат или посадка на месте.
- Отказ GPS. Без координат автономный полёт невозможен; аппарат переходит в режим удержания по другим датчикам или плавно снижается.
- Выход за геозону. На границе разрешённой области (geofence) автопилот останавливает аппарат или возвращает внутрь.
Простая логика приоритетов
Несколько условий могут сработать разом, и нужно выбрать самое срочное. Закодируем приоритеты: критическая батарея важнее потери связи.
def decide(link_lost, battery_pct, geofence_breach):
if battery_pct < 10:
return "КРИТ. БАТАРЕЯ: посадка на месте"
if geofence_breach:
return "ГЕОЗОНА: возврат внутрь"
if link_lost:
return "НЕТ СВЯЗИ: возврат домой (RTL)"
if battery_pct < 25:
return "НИЗКАЯ БАТАРЕЯ: возврат домой"
return "НОРМА: продолжать миссию"
cases = [
(False, 80, False),
(True, 80, False),
(False, 20, False),
(True, 8, False),
(False, 80, True),
]
for c in cases:
print(c, "->", decide(*c))Вывод:
(False, 80, False) -> НОРМА: продолжать миссию (True, 80, False) -> НЕТ СВЯЗИ: возврат домой (RTL) (False, 20, False) -> НИЗКАЯ БАТАРЕЯ: возврат домой (True, 8, False) -> КРИТ. БАТАРЕЯ: посадка на месте (False, 80, True) -> ГЕОЗОНА: возврат внутрь
Обратите внимание на четвёртый случай: связь потеряна И батарея критична — выбран самый срочный вариант (посадка на месте), потому что лететь домой энергии может не хватить. Порядок проверок и есть приоритеты.
Как работает под капотом
Failsafe — это конечный автомат: набор состояний (миссия, RTL, посадка, удержание) и переходов по событиям. Настраивается заранее на земле: оператор задаёт пороги и действия. Грамотно настроенный failsafe — разница между «аппарат сам вернулся» и «аппарат улетел в неизвестность».
Частые ошибки
- Не настроить failsafe вовсе — при потере связи поведение непредсказуемо.
- Ставить RTL при критической батарее, когда домой уже не дотянуть, — иногда правильнее немедленная посадка.
- Задать точку «дома» неверно (не там, где взлетели) — аппарат вернётся не туда.
Итог
- Failsafe — заданная заранее реакция на отказы (связь, батарея, GPS, геозона).
- Это автомат с приоритетами: самое срочное событие побеждает.
- Настраивается на земле; от него зависит, вернётся ли аппарат.