3.0 KiB
MAVLink
Основная документация: https://mavlink.io/en/.
MAVLink – это протокол для организации связи между автономными летательными и транспортными системами (дронами, самолетами, автомобилями). Проктол MAVLink лежит в основе взаимодействия между PixHawk и Raspberry Pi.
В Клевер включено 2 обертки над этим протоколом: MAVROS и simple_offboard.
Код для отправки произвольного MAVLink сообщения можно найти в примерах.
Основные концепции
Канал связи
Протокол MAVLink может быть использован поверх следующих каналов связи:
- последовательное соединение (UART, USB и др.);
- UDP (Wi-Fi, Ethernet, 3G, LTE);
- TCP (Wi-Fi, Ethernet, 3G, LTE).
Сообщение
MAVLink-сообщение это отдельная "порция" данных, передаваемая между устройствами. Отдельное MAVLink-сообщение содержит информацию о состоянии дрона (или другого устройства) или команду для дрона.
Примеры MAVLink-сообщений:
ATTITUDE,ATTITUDE_QUATERNION– ориентация квадрокоптера в пространстве;LOCAL_POSITION_NED– локальная позиция квадрокоптера;GLOBAL_POSITION_INT– глобальная позиция квадрокоптера (широта/долгота/высота);COMMAND_LONG– команда для квадрокоптера (взлететь, сесть, переключить режим и т. д.).
Полный список MAVLink-сообщений можно посмотреть в документации MAVLink.
Система, компонент системы
Каждое устройство (дрон, базовая станция и т. д.) имеет ID в сети MAVLink. В PX4 MAVLink ID менятся с помощью параметра MAV_SYS_ID. Каждое MAVLink сообщение содержит поле с ID системы-отправителя. Кроме того, некоторые сообщения (например, COMMAND_LONG) содержат также ID системы-получателя.
Помимо ID систем, сообщения могут содержать ID компонента-отправителя и компонента-получателя. Примеры компонентов системы: полетный контроллер, внешняя камера, управляющий бортовой компьютер (Raspberry Pi в случае Клевера) и т. д.