Перейти к содержимому

Статья

ArduPilot SITL и MAVProxy: тест миссии и failsafe

Воспроизводимый workflow ArduPilot SITL: запуск версии и frame, управление через MAVProxy, тест миссии, параметров и отказов с сохранением артефактов.

Редакция WARPfly2 мин чтения0 просмотров

ArduPilot SITL запускает ту же логику автопилота как программу и соединяет её с моделью среды. MAVProxy предоставляет консоль управления и маршрутизацию. Вместе они позволяют превратить миссию, параметры и failsafe в повторяемый тест, который сохраняется рядом с конфигурацией.

ArduPilot SITL и MAVProxy: тест миссии и failsafe — обложка WARPfly
ArduPilot SITL и MAVProxy: тест миссии и failsafe — обложка WARPfly. Оригинальная графика WARPfly.

Сделай запуск идентифицируемым

Зафиксируй ветку или tag ArduPilot, тип аппарата и frame, модель симуляции, стартовую локацию и дополнительные параметры. Команда запуска должна воспроизводиться на чистом окружении. Не сравнивай два теста, если между ними незаметно изменился default parameter set.

ArduPilot SITL и MAVProxy: тест миссии и failsafe — карта материала
ArduPilot SITL и MAVProxy: тест миссии и failsafe — карта материала. Оригинальная графика WARPfly.

Проверь базовый сценарий

Через MAVProxy дождись готовности EKF, загрузи короткую миссию, выполни ARM, взлёт, два waypoint и безопасное завершение. Сохрани консоль, DataFlash и параметры. Сначала добейся повторяемого штатного результата, затем вводи отказы.

Проектируй отказ как эксперимент

  • событие: какая связь, датчик или ресурс меняется;
  • момент: режим, участок миссии, высота и запас энергии;
  • ожидание: конкретный переход режима и траектория;
  • критерий: допустимое время реакции и итоговое состояние;
  • восстановление: что происходит при возврате источника.

Не отключай несколько источников одновременно в первом тесте. Например, потеря GCS, RC и GPS создаёт неоднозначность при выборе причины перехода.

Используй MAVProxy наблюдаемо

Записывай команды, сообщения режима, EKF и failsafe. Подключение второй GCS через routing не должно менять сам сценарий. Для автоматизации добавь явные ожидания, таймауты и проверку состояния вместо фиксированных пауз: медленный запуск не должен давать ложный провал.

Сверь с реальностью

Симуляция не воспроизводит плохой разъём, вибрацию компаса или фактическую задержку привода без специальной модели. После SITL сделай Hardware In The Loop или безопасный стенд, затем короткий лётный тест. Не имитируй опасный отказ на реальном аппарате, если его можно подтвердить по безопасной части цепочки.

Храни mission file, parameter diff, сценарий, ожидаемый результат и хэши логов. Повторяй набор после обновления firmware — так SITL защищает от регрессий, а не просто демонстрирует Auto.

Сделай тест самопроверяемым

Автоматический сценарий должен завершаться явным результатом и кодом ошибки, а не требовать визуально смотреть карту. Проверяй последовательность режимов, пределы высоты и расстояния, причину failsafe и финальное состояние. Сохраняй случайное seed модели среды, если оно влияет на результат, и отделяй нестабильность теста от дефекта автопилота.

Была ли статья полезна?

#ArduPilot SITL#MAVProxy#sim_vehicle.py#тест миссии#failsafe#regression test

Примените знания на практике

Подберите совместимые комплектующие или изучите готовые сборки пилотов.