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

Статья

Companion Computer и MAVLink routing: архитектура и отказоустойчивость

Как спроектировать связь автопилота, companion computer и GCS через MAVLink routing, контролировать heartbeat, message rates и отказ каждого узла.

Companion computer добавляет зрение, связь или высокоуровневое планирование, но не должен становиться скрытой единой точкой отказа. MAVLink routing доставляет сообщения между компонентами по system ID, component ID и известным адресам. Архитектуру нужно описать до запуска сервисов.

Companion Computer и MAVLink routing: архитектура и отказоустойчивость — обложка WARPfly
Companion Computer и MAVLink routing: архитектура и отказоустойчивость — обложка WARPfly. Оригинальная графика WARPfly.

Нарисуй топологию

Укажи каждый узел: автопилот, companion, наземную станцию, камеру, радиомодем и сетевой мост. Для каждого запиши физический интерфейс, скорость, system/component ID, направления сообщений и владельца команд. Два узла с конфликтующими ID затрудняют маршрутизацию и диагностику.

Companion Computer и MAVLink routing: архитектура и отказоустойчивость — карта материала
Companion Computer и MAVLink routing: архитектура и отказоустойчивость — карта материала. Оригинальная графика WARPfly.

Пойми правила routing

MAVLink router обучается адресам по входящим сообщениям и пересылает целевые или широковещательные сообщения согласно реализации. Не считай, что любой пакет автоматически попадёт во все интерфейсы. Проверяй конкретный router и endpoint. Loop между двумя мостами может умножить трафик.

Heartbeat — присутствие, не здоровье

Heartbeat сообщает, что компонент доступен и каков его тип/состояние. Он не доказывает качество датчика, актуальность алгоритма или способность выполнить команду. Задай таймаут отдельно для связи и отдельные health-показатели для функции companion. Потеря heartbeat не должна лишать пилота базового управления.

Управляй бюджетом канала

  • выбери только необходимые сообщения и частоты;
  • измеряй фактическую загрузку serial/UDP;
  • приоритизируй управление и критичную телеметрию;
  • ограничивай тяжёлые потоки логов и изображений отдельно;
  • не лечи потери бесконечным повтором команд.

Проверь отказ каждого ребра

  1. Перезапусти companion, оставив автопилот включённым.
  2. Отключи GCS и затем восстанови соединение.
  3. Создай перегрузку низкоприоритетными сообщениями.
  4. Подай устаревшие и некорректные данные на вход сервиса.
  5. Проверь ручной takeover и отсутствие повторной опасной команды после reconnect.

Для недоверенной сети используй поддерживаемые механизмы подписи, фильтрацию и сетевое разделение. Храни схему, конфигурацию router и версии сервисов вместе. Отказоустойчивая система сохраняет базовый полёт при исчезновении companion и ясно сообщает, какая дополнительная функция потеряна.

Наблюдай систему как сервис

Собирай метрики частоты heartbeat, возраста ключевых сообщений, загрузки каналов, reconnect и отклонённых команд. Логируй system/component ID и маршрут, но не секретные ключи. Задай тревоги на деградацию до полного разрыва. После изменения topology повтори матрицу отказов: новый мост может создать цикл или незаметно поменять владельца команды.

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

#companion computer#MAVLink routing#heartbeat#GCS#ArduPilot#message rates

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

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