Files
clover/docs/mavlink.md
2018-08-11 05:09:21 +03:00

3.0 KiB
Raw Blame History

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 в случае Клевера) и т. д.