MAVROS
Основная документация: http://wiki.ros.org/mavros
MAVROS (MAVLink + ROS) — это пакет для ROS, предоставляющий возможность управлять беспилотниками по протоколу MAVLink. MAVROS поддерживает полетные стеки PX4 и APM. Связь организовывается по UART, USB, TCP или UDP.
MAVROS подписывается на определенные ROS-топики в ожидании команд, публикует в другие топики телеметрию, и предоставляет сервисы.
Нода MAVROS автоматически запускается в launch-файле Клевера. Для настройки типа подключения см. аргумент fcu_conn
.
Упрощенное взаимодействие с коптером возможно с использованием пакета
simple_offboard
.
В пакете
clover
некоторые плагины MAVROS отключены (в целях сохранения ресурсов). Подробнее см. параметрplugin_blacklist
в файле/home/pi/catkin_ws/src/clover/clover/launch/mavros.launch
.
Основные сервисы
/mavros/set_mode
— установить полетный режим контроллера. Обычно устанавливается режим OFFBOARD (для управления с Raspberry Pi).
/mavros/cmd/arming
— включить или выключить моторы беспилотника (изменить armed-статус).
Основные публикуемые топики
/mavros/state
— статус подключения к полетному контроллеру. Режим полетного контроллера.
/mavros/local_position/pose
— локальная позиция коптера в системе координат ENU и его ориентация.
/mavros/local_position/velocity
— текущая скорость в локальных координатах. Угловые скорости.
/mavros/global_position/global
— текущая глобальная позиция (широта, долгота, высота).
/mavros/global_position/local
— глобальная позиция в системе координат UTM.
/mavros/global_position/rel_alt
— относительная высота (относительно высоты включения моторов).
Просмотр сообщений, публикуемых в топики возможен с помощью утилиты rostopic
, например rostopic echo /mavros/state
. Подробнее см. работа с ROS.
Основные топики для публикации
/mavros/setpoint_position/local
— установить целевую позицию и рысканье (yaw) беспилотника (в системе координат ENU).
/mavros/setpoint_position/global
– установить целевую позицию в глобальных координатах (ширина, долгота и высота) и рысканье беспилотника.
/mavros/setpoint_velocity/cmd_vel
— установить целевую линейную скорость беспилотника.
/mavros/setpoint_attitude/attitude
и /mavros/setpoint_attitude/att_throttle
— установить целевую ориентацию (Attitude) и уровень газа.
/mavros/setpoint_attitude/cmd_vel
и /mavros/setpoint_attitude/att_throttle
— установить целевые угловые скорости и уровень газа.
Топики для посылки raw-пакетов
/mavros/setpoint_raw/local
— отправка пакета SET_POSITION_TARGET_LOCAL_NED. Позволяет установить целевую позицию /целевую скорость и целевое рысканье/угловую скорость по рысканью. Выбор устанавливаемых величин осуществляется с помощью поля type_mask
.
/mavros/setpoint_raw/attitude
— отправка пакета SET_ATTITUDE_TARGET. Позволяет установить целевую ориентацию / угловые скорости и уровень газа. Выбор устанавливаемых величин осуществляется с помощью поля type_mask
/mavros/setpoint_raw/global
— отправка пакета SET_POSITION_TARGET_GLOBAL_INT. Позволяет установить целевую позицию в глобальных координатах (ширина, долгота, высота), а также скорости полета.