Skip to main content

Сервер → Дрон

Топики для передачи команд и данных от сервера к дрону.

1. mission

Миссии
  • MQTT Topic: {DRONE_ID}_mission
  • QoS: 1

Отправка миссии на дрон. Содержит вейпоинты, параметры полёта, настройки детекции и записи видео.

mission_iduuidrequired
ID миссии
paramsArray[Param]required
Массив параметров миссии
param_iduuidrequired
ID параметра
namestr
Имя параметра
typestrrequired
Тип данных параметра
point
float
boolean
valueMixed
Значение параметра. Тип должен соответствовать params[i].type
commandsArray[Command]required
Массив команд для последовательного выполнения. Одновременно выполняется только одна команда
command_iduuidrequired
ID команды
command_typestrrequired
Тип команды
move_toДвижение к заданной точке
landПриземлиться
takeoffВзлететь
coverageМаршрут по области
by_pathДвижение по маршруту
scan_areaСканирование области
manual_controlРучной контроль
speedfloat
Скорость полёта (м/с)
conffloat
Порог уверенности детекции (0.0–1.0)
rec_video_droneboolean
Запись видео на борту дрона
rec_video_dist_thresholdfloat
Порог дистанции для начала записи видео
obstacle_avoidanceboolean
Включить обход препятствий для этой команды
use_ai_videoboolean
Включить AI-детекцию для этой команды
orthophotoboolean
Создание ортофотоплана
orthophoto_camerastr
Камера для съёмки ортофотоплана
pointsArray[Point]required
Точки маршрута
latfloatrequired
Широта
longfloatrequired
Долгота
heightfloat
Высота полёта (м)
triggersArray[Trigger]
Массив триггеров для переключения между командами
conditionstrrequired
Условие переключения. Используются переменные из params
command_idstrrequired
ID целевой команды для переключения
priorityintrequired
Приоритет триггера. Меньшее значение — более высокий приоритет
{
"topic": "10001_mission",
"message": {
"mission_id": "abc-123",
"params": [],
"commands": [
{
"command_id": "cmd-456",
"command_type": "move_to",
"speed": 5.0,
"conf": 0.8,
"rec_video_drone": true,
"rec_video_dist_threshold": 0.0,
"obstacle_avoidance": true,
"use_ai_video": false,
"orthophoto": false,
"orthophoto_camera": "",
"points": [
{
"lat": 55.751244,
"long": 37.618423,
"height": 50.0
},
{
"lat": 55.752,
"long": 37.619,
"height": 50.0
}
]
}
],
"triggers": []
}
}

2. pause_mission

Миссии
  • MQTT Topic: {DRONE_ID}_pause_mission
  • QoS: 1

Управление паузой текущей миссии. При активации дрон зависает на месте и ожидает команду возобновления. При снятии паузы также сбрасывается ручной режим (hand_mode).

messagestrrequired
Команда управления паузой
onПоставить на паузу (удерживать текущее положение)
offВозобновить выполнение миссии
{
"topic": "10001_pause_mission",
"message": "on"
}

3. cancel_mission

Миссии
  • MQTT Topic: {DRONE_ID}_cancel_mission
  • QoS: 1

Отмена текущей миссии.

messagestrrequired
Способ завершения миссии
BACK_TO_STARTВозврат на точку старта (RTL)
ON_CURRENT_PLACEПосадка на текущем месте (LAND)
{
"topic": "10001_cancel_mission",
"message": "BACK_TO_START"
}

4. use_hand_mode

Управление полётом
  • MQTT Topic: {DRONE_ID}_use_hand_mode
  • QoS: 1

Управление ручным режимом движения дрона. При активации миссия ставится на паузу, включается приём команд джойстика через joy_control, отключается обработка obstacle avoidance.

messagestrrequired
Режим управления
trueРучной режим
falseАвтоматический режим
{
"topic": "10001_use_hand_mode",
"message": "true"
}

5. gimbal_control

Камера и подвес
  • MQTT Topic: {DRONE_ID}_gimbal_control
  • QoS: 1

Ручное управление подвесом камеры. Устанавливает значения roll, pitch, yaw и zoom для указанной камеры. Если активен автоматический режим, он автоматически отключается.

messageobjectrequired
Объект, где ключ — ID камеры, значение — параметры подвеса
{camera_id}objectrequired
Параметры подвеса для конкретной камеры
rollintrequired
Крен (1100–1900, центр 1500)
pitchintrequired
Тангаж (1100–1900, центр 1500)
yawintrequired
Рыскание (1100–1900, центр 1500)
zoomintrequired
Зум
0Без зума
1+Увеличение (максимальный зум задается характеристиками камеры)
{
"topic": "10001_gimbal_control",
"message": {
"camera_0": {
"roll": 0,
"pitch": -45,
"yaw": 180,
"zoom": 1
}
}
}

6. get_current_data

Запрос состояния
  • MQTT Topic: {DRONE_ID}_get_current_data
  • QoS: 1

Запрос текущего состояния всех модулей дрона. При получении true каждый подписанный модуль публикует своё текущее состояние: детекции, данные подвеса, статус слежения, статус удара.

Подписанные модули:

  • gimbal_data
  • drone_strike_status
  • drone_follow_status
  • actual_objects_data
  • download_info
  • transferring_info
  • current_model_tracking
messagebooleanrequired
Команда запроса
trueЗапросить текущие данные
falseНет действия
{
"topic": "10001_get_current_data",
"message": true
}

7. gimbal_auto_control

Камера и подвес
  • MQTT Topic: {DRONE_ID}_gimbal_auto_control
  • QoS: 1

Управление автоматическим сканированием подвеса камеры.

statusstrrequired
Действие
startЗапустить автосканирование
stopОстановить автосканирование
currentЗапросить текущий статус
typestrrequired
Тип сканирования
sinСинусоидальное движение
dynamicДинамическое движение
noneБез типа (для current/stop)
camera_idstr
ID камеры для сканирования
{
"topic": "10001_gimbal_auto_control",
"message": {
"status": "start",
"type": "sin",
"camera_id": "camera_0"
}
}

8. joy_control

Управление полётом
  • MQTT Topic: {DRONE_ID}_joy_control
  • QoS: 1

Команды джойстика для ручного управления дроном. Обрабатываются только при активном ручном режиме (use_hand_mode = true). Каждая команда состоит из направления и интенсивности (1–3).

messagestrrequired
Команда в формате direction_intensity
directionstrrequired
Направление движения
forwardВперёд
backНазад
leftВлево
rightВправо
forward_leftВперёд-влево
forward_rightВперёд-вправо
back_leftНазад-влево
back_rightНазад-вправо
upВверх
downВниз
stopОстановка
centerНейтральное положение (зависание)
intensityintrequired
Интенсивность движения (1–3)
{
"topic": "10001_joy_control",
"message": "forward_2"
}

9. critical_disarm

Управление полётом
  • MQTT Topic: {DRONE_ID}_critical_disarm
  • QoS: 1

Экстренное выключение моторов дрона. При получении true немедленно отправляется MAVLink-команда принудительного отключения, текущая миссия отменяется.

danger

Используется только в экстренных ситуациях. Дрон немедленно теряет тягу и падает.

messagebooleanrequired
Команда аварийного отключения
trueНемедленно отключить моторы
{
"topic": "10001_critical_disarm",
"message": true
}

10. obstacle_avoidance

Управление полётом
  • MQTT Topic: {DRONE_ID}_obstacle_avoidance
  • QoS: 1

Включение/выключение системы обхода препятствий. При включении активируется obstacle_detector, drone_controller начинает реагировать на команды уклонения. Значение флага отображается в телеметрии (поле obstacle_avoidance).

messagebooleanrequired
Режим обхода препятствий
trueВключить обход препятствий
falseВыключить обход препятствий
{
"topic": "10001_obstacle_avoidance",
"message": true
}

11. sim_gps

Управление полётом
  • MQTT Topic: {DRONE_ID}_sim_gps
  • QoS: 1

Симуляция GPS-координат для тестирования.

latfloatrequired
Широта
longfloatrequired
Долгота
altfloatrequired
Высота (м)
{
"topic": "10001_sim_gps",
"message": {
"lat": 55.75,
"long": 37.61,
"alt": 100
}
}

12. camera_tracking

Камера и подвес
  • MQTT Topic: {DRONE_ID}_camera_tracking
  • QoS: 1

Выбор камеры, используемой для AI-трекинга объектов.

messagestrrequired
Идентификатор камеры для трекинга (например, camera_front, camera_0)
{
"topic": "10001_camera_tracking",
"message": "camera_front"
}

13. use_ai_video

Камера и подвес
  • MQTT Topic: {DRONE_ID}_use_ai_video
  • QoS: 1

Глобальное включение или выключение AI-детекции объектов на видеопотоке.

messagebooleanrequired
Режим AI-детекции
trueВключить AI-детекцию
falseВыключить AI-детекцию
{
"topic": "10001_use_ai_video",
"message": true
}

14. set_model_name

ML-модели
  • MQTT Topic: {DRONE_ID}_set_model_name
  • QoS: 1

Установка активной ML-модели для детекции объектов.

messagestrrequired
Имя файла модели (например, yolov8n.pt)
{
"topic": "10001_set_model_name",
"message": "yolov8n.pt"
}

15. get_drone_params

Параметры дрона
  • MQTT Topic: {DRONE_ID}_get_drone_params
  • QoS: 1

Запрос значений параметров полётного контроллера (ArduPilot) дрона.

messageArray[str]required
Список имён запрашиваемых параметров
{
"topic": "10001_get_drone_params",
"message": [
"WPNAV_SPEED",
"WPNAV_SPEED_DN"
]
}

16. set_drone_params

Параметры дрона
  • MQTT Topic: {DRONE_ID}_set_drone_params
  • QoS: 1

Установка значений параметров полётного контроллера (ArduPilot) дрона.

messageobjectrequired
Объект с параметрами: ключ — имя параметра, значение — новое значение
{
"topic": "10001_set_drone_params",
"message": {
"WPNAV_SPEED": 500,
"WPNAV_SPEED_DN": 150
}
}

17. get_calibration_data

Калибровка
  • MQTT Topic: {DRONE_ID}_get_calibration_data
  • QoS: 1

Запрос текущих данных калибровки сенсоров дрона.

messagebooleanrequired
Команда запроса
trueЗапросить данные калибровки
{
"topic": "10001_get_calibration_data",
"message": true
}

18. set_calibration

Калибровка
  • MQTT Topic: {DRONE_ID}_set_calibration
  • QoS: 1

Запуск этапа калибровки датчиков дрона. При запуске калибровки акселерометра отключаются основные модули и активируется нода калибровки.

stepintrequired
Этап калибровки
0Reboot
1Accelerometer
2Magnetometer
3Other
paramintrequired
Параметр/ориентация (зависит от step). Accel: 0–6, Mag: 0–2, Other: 1–3, Reboot: 0–2
{
"topic": "10001_set_calibration",
"message": {
"step": 1,
"param": 0
}
}

19. get_check_motors

Калибровка
  • MQTT Topic: {DRONE_ID}_get_check_motors
  • QoS: 1

Запрос текущих данных проверки моторов.

messagebooleanrequired
Команда запроса
trueЗапросить данные моторов
{
"topic": "10001_get_check_motors",
"message": true
}

20. set_check_motors

Калибровка
  • MQTT Topic: {DRONE_ID}_set_check_motors
  • QoS: 1

Запуск проверки моторов с указанным PWM-значением.

idintrequired
ID мотора
0Все моторы
1–4Конкретный мотор
valueintrequired
PWM-значение для проверки
{
"topic": "10001_set_check_motors",
"message": {
"id": 0,
"value": 1200
}
}

21. stream_url

Камера и подвес
  • MQTT Topic: {DRONE_ID}_stream_url
  • QoS: 1

Передача URL видеопотока на дрон для конкретной камеры.

camera_idstrrequired
Идентификатор камеры
provider_urlstrrequired
URL видеопотока (RTSP/RTMP)
{
"topic": "10001_stream_url",
"message": {
"camera_id": "camera_0",
"provider_url": "rtsp://192.168.1.100:8554/stream"
}
}

22. drone_request_approve

Регистрация
  • MQTT Topic: {DRONE_ID}_drone_request_approve
  • QoS: 1

Подтверждение запроса регистрации дрона. Передаёт ключи шифрования для установки защищённого соединения.

public_keystrrequired
Публичный ключ для шифрования
aes_keystrrequired
AES-ключ для симметричного шифрования
{
"topic": "10001_drone_request_approve",
"message": {
"public_key": "MIIBIjANBgkqhki...",
"aes_key": "aGVsbG8gd29ybGQ="
}
}

ML-модели
  • MQTT Topic: {DRONE_ID}_send_file_link
  • QoS: 1

Отправка ссылки для загрузки ML-модели на дрон. Опционально может содержать ссылку на файл с классами.

file_namestrrequired
Имя файла модели
file_linkstrrequired
URL для скачивания файла модели
classes_file_linkstr | null
URL для скачивания файла с классами (в формате .txt или .yaml). null — если файл классов не передаётся
tokenstrrequired
Токен авторизации для доступа к файлам

С файлом классов:

{
"topic": "10001_send_file_link",
"message": {
"file_name": "019cb80a-fb28-72e0-94a6-c50c5d9e79a5.rknn",
"file_link": "https://wheelies.ru/api/files/static/application/00c643de-7f97-4cfe-a37f-939cd82ee3ba.rknn",
"classes_file_link": "https://wheelies.ru/api/files/static/text/67f4e943-ebb0-4fba-ad7c-8dee8d8130e9.txt",
"token": "eyJhbGciOiJIUzI1..."
}
}

Без файла классов:

{
"topic": "10001_send_file_link",
"message": {
"file_name": "019c9faa-7880-738c-a301-3d4b3b27f770.pt",
"file_link": "https://dev.wheelies.ru/api/files/static/application/f4a5373a-968e-41ed-b774-8022f9c74b8f.pt",
"classes_file_link": null,
"token": "eyJhbGciOiJ..."
}
}

24. delete_model

ML-модели
  • MQTT Topic: {DRONE_ID}_delete_model
  • QoS: 1

Удаление ML-моделей с дрона. Сообщение — массив имён файлов для удаления.

messageArray[str]required
Список имён файлов моделей для удаления
{
"topic": "10001_delete_model",
"message": [
"model_v1.pt",
"model_v2.pt"
]
}

25. follow_track_object

Слежение за объектами
  • MQTT Topic: {DRONE_ID}_follow_track_object
  • QoS: 1

Управление слежением камеры за объектом (трекинг).

statusstrrequired
Действие
startНачать слежение
stopПрекратить слежение
currentЗапросить текущий статус
track_idstrrequired
ID отслеживаемого объекта
class_namestrrequired
Класс объекта (например, car, person)
zoom_statusstr
Режим автозума
enableАвтозум включён
disenableАвтозум выключен
zoom_meanfloat
Целевое среднее значение зума (1.0–15.0)
{
"topic": "10001_follow_track_object",
"message": {
"status": "start",
"track_id": "42",
"class_name": "car",
"zoom_status": "enable",
"zoom_mean": 5.0
}
}

26. drone_strike_object

Слежение за объектами
  • MQTT Topic: {DRONE_ID}_drone_strike_object
  • QoS: 1

Управление тараном объекта дроном.

statusstrrequired
Действие
startНачать таран
stopПрекратить таран
track_idstrrequired
ID объекта для тарана
class_namestrrequired
Класс объекта
{
"topic": "10001_drone_strike_object",
"message": {
"status": "start",
"track_id": "42",
"class_name": "car"
}
}

27. drone_follow_object

Слежение за объектами
  • MQTT Topic: {DRONE_ID}_drone_follow_object
  • QoS: 1

Управление следованием дрона за объектом. Дрон физически перемещается за целью, удерживая дистанцию. При запуске автоматически останавливается режим тарана (drone_strike_object), если он был активен.

statusstrrequired
Действие
startНачать следование
stopПрекратить следование
track_idstrrequired
ID объекта
class_namestrrequired
Класс объекта
{
"topic": "10001_drone_follow_object",
"message": {
"status": "start",
"track_id": "42",
"class_name": "person"
}
}

28. registration_check_result

Регистрация
  • MQTT Topic: {DRONE_ID}_registration_check_result
  • QoS: 1

Отправка результата проверки регистрации дрона в системе.

messagebooleanrequired
Результат проверки
trueРегистрация подтверждена, дрон продолжает запуск
falseРегистрация не подтверждена, запускается процесс регистрации
{
"topic": "10001_registration_check_result",
"message": true
}

29. create_orthophoto

Ортофото
  • MQTT Topic: {DRONE_ID}_create_orthophoto
  • QoS: 1

Ответ сервера на запрос создания ортофотоплана. Содержит URL для загрузки результата.

request_idstrrequired
ID запроса на создание ортофотоплана
urlstrrequired
URL для загрузки ортофотоплана
tokenstrrequired
Токен авторизации для доступа
{
"topic": "10001_create_orthophoto",
"message": {
"request_id": "ortho-001",
"url": "https://storage.example.com/ortho/result.tif",
"token": "Bearer eyJhbGciOi..."
}
}

30. transferring_to_tensorRT

ML-модели
  • MQTT Topic: {DRONE_ID}_transferring_to_tensorRT
  • QoS: 1

Управление конвертацией ML-модели из формата .pt в формат .engine (TensorRT) на дроне. Поддерживает запрос текущего статуса, запуск и остановку конвертации.

statusstrrequired
Действие
currentЗапросить текущий статус конвертации
startНачать конвертацию модели
stopОстановить конвертацию модели
model_namestr
Имя файла модели (обязательно при status=start и status=stop)

Запрос текущего статуса:

{
"topic": "10001_transferring_to_tensorRT",
"message": {
"status": "current"
}
}

Запуск конвертации:

{
"topic": "10001_transferring_to_tensorRT",
"message": {
"status": "start",
"model_name": "yolov8s.pt"
}
}

Остановка конвертации:

{
"topic": "10001_transferring_to_tensorRT",
"message": {
"status": "stop",
"model_name": "yolov8s.pt"
}
}

31. drop_servo

Сброс
  • MQTT Topic: {DRONE_ID}_drop_servo
  • QoS: 1

Команда сброса сервопривода. Активирует механизм сброса груза (серво возвращается в исходное положение).

messagestrrequired
Команда сброса сервопривода
trueВыполнить сброс серво
{
"topic": "10001_drop_servo",
"message": "true"
}