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

Статья

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

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

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

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

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

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