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
Включить обход препятствий для этой команды
trackerboolean
Включить AI-детекцию для этой команды
tracker_camerastr
Камера для 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,
"tracker": false,
"tracker_camera": "",
"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. tracker​

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

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

messagebooleanrequired
Режим AI-детекции
true— Включить AI-детекцию
false— Выключить AI-детекцию
{
"topic": "10001_tracker",
"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
Этап калибровки
0— Reboot
1— Accelerometer
2— Magnetometer
3— Other
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"
}

Робот
  • MQTT Topic: {DRONE_ID}_send_audio_link
  • QoS: 1

Отправка ссылки на аудиофайл для голосового пайплайна робота. Робот скачивает файл и запускает цепочку обработки: распознавание речи (Whisper) → генерация ответа (LLM) → синтез речи (TTS) → воспроизведение. Также используется для запроса текущего состояния при перезагрузке страницы.

file_namestr
Имя аудиофайла
file_linkstr
URL для скачивания аудиофайла
tokenstr
Токен авторизации для доступа к файлу
statusstr
Запрос текущего состояния
current— Запросить текущее состояние всех топиков голосового пайплайна

Отправка аудиофайла:

{
"topic": "10001_send_audio_link",
"message": {
"file_name": "123434.wav",
"file_link": "https://dev.wheelies.ru/audio/123434.wav",
"token": "abc12345"
}
}

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

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

33. lep_control​

ЛЭП
  • MQTT Topic: {DRONE_ID}_lep_control
  • QoS: 1

Управление полётом вдоль ЛЭП и инспекцией столбов. Включает постановку дрона над линией, запуск/остановку полёта вдоль столбов и запрос текущего состояния.

actionstrrequired
Команда управления
current— Запрос текущего статуса всех подсистем ЛЭП
placement_enable— Включить постановку дрона над ЛЭП (поиск 2 столбов гимбал-камерой)
placement_start— Начать постановку (выравнивание, центрирование, снижение)
placement_stop— Остановить постановку (дрон зависает, возврат в состояние ready)
placement_disable— Выключить постановку (деактивация lep_placement)
enable— Включить полёт вдоль ЛЭП + инспекцию столбов
disable— Выключить полёт вдоль ЛЭП (деактивация всех нод ЛЭП)

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

{
"topic": "10001_lep_control",
"message": {
"action": "current"
}
}

Включить постановку:

{
"topic": "10001_lep_control",
"message": {
"action": "placement_enable"
}
}

Начать постановку:

{
"topic": "10001_lep_control",
"message": {
"action": "placement_start"
}
}

Остановить постановку:

{
"topic": "10001_lep_control",
"message": {
"action": "placement_stop"
}
}

Выключить постановку:

{
"topic": "10001_lep_control",
"message": {
"action": "placement_disable"
}
}

Включить полёт вдоль ЛЭП + инспекцию:

{
"topic": "10001_lep_control",
"message": {
"action": "enable"
}
}

Выключить полёт вдоль ЛЭП:

{
"topic": "10001_lep_control",
"message": {
"action": "disable"
}
}

34. asset_config​

Телеметрия
  • MQTT Topic: {DRONE_ID}_asset_config
  • QoS: 1

Отправка конфигурации аппаратных компонентов с сервера на дрон.

camerasobject
Список камер
camera_<index>object
Камера (key = short_id)
idstr
UUID камеры
horizontal_fovfloat
Горизонтальный угол обзора (FOV)
mounting_typestr
Тип крепления (fixed/gimbal/etc.)
zoom_typestr
Тип зума (digital/optical)
zoom_ratioint
Кратность зума
resolution_xint
Разрешение по X
resolution_yint
Разрешение по Y
sd_cardobject
Конфигурация SD-карты
idstr
UUID карты памяти
batteriesobject
Список батарей
battery_<index>object
Батарея (key = short_id)
idstr
UUID батареи
capacity_mahint
Ёмкость (mAh)
cell_countint
Кол-во ячеек
chemical_compositionstr
Химический состав (LiPo / Li-ion)
servosobject
Список сервоприводов
servo_<index>object
Серво (key = short_id)
idstr
UUID сервопривода
{
"topic": "10001_asset_config",
"message": {
"cameras": {
"camera_0": {
"id": "c2a11d4f-9b88-4a12-8f21-77a9d1c3b101",
"horizontal_fov": 82.5,
"mounting_type": "gimbal",
"zoom_type": "optical",
"zoom_ratio": 3,
"resolution_x": 4056,
"resolution_y": 3040
},
"camera_1": {
"id": "a91c22fe-11aa-4c77-9d88-88bb33cc44dd",
"horizontal_fov": 120.0,
"mounting_type": "fixed",
"zoom_type": "digital",
"zoom_ratio": 2,
"resolution_x": 1920,
"resolution_y": 1080
}
},

"sd_card": {
"id": "f11a22bb-3344-5566-7788-99aabbccdde1"
},

"batteries": {
"battery_0": {
"id": "b1c2d3e4-aaaa-bbbb-cccc-111122223333",
"capacity_mah": 16000,
"cell_count": 6,
"chemical_composition": "LiPo"
}
},

"servos": {
"servo_0": {
"id": "s1112222-aaaa-bbbb-cccc-000011112222"
},
"servo_1": {
"id": "s3334444-aaaa-bbbb-cccc-999988887777"
}
}
}
}

35. update_software​

ПО
  • MQTT Topic: {DRONE_ID}_update_software
  • QoS: 1

Отправка команды обновления программного обеспечения на дрон.

installation_idstringrequired
Идентификатор операции установки из таблицы `software_installation`
updated_software_release_idstringrequired
Идентификатор текущего релиза обновляемого ПО
target_software_release_idstringrequired
Идентификатор релиза новой версии ПО, которая должна быть установлена
image_tagstringrequired
Тег Docker-образа в формате `{companion_computer_model}-{target_version}`
{
"topic": "10001_update_software",
"message": {
"installation_id": "8f4d3c21-6f5d-4a31-bd93-12c3f0f7a8d1",
"updated_software_release_id": "f2c7b8e9-1a2b-4c3d-8e9f-123456789abc",
"target_software_release_id": "9d8c7b6a-5e4f-3a2b-1c0d-fedcba987654",
"image_tag": "jetson-2.5.1"
}
}