Сервер → Дрон
Топики для передачи команд и данных от сервера к дрону.
1. mission
Миссии- MQTT Topic:
{DRONE_ID}_mission - QoS: 1
Отправка миссии на дрон. Содержит вейпоинты, параметры полёта, настройки детекции и записи видео.
mission_iduuidrequiredparamsArray[Param]requiredparam_iduuidrequirednamestrtypestrrequiredpointfloatbooleanvalueMixedcommandsArray[Command]requiredcommand_iduuidrequiredcommand_typestrrequiredmove_to— Движение к заданной точкеland— Приземлитьсяtakeoff— Взлететьcoverage— Маршрут по областиby_path— Движение по маршрутуscan_area— Сканирование областиmanual_control— Ручной контрольspeedfloatconffloatrec_video_dronebooleanrec_video_dist_thresholdfloatobstacle_avoidancebooleanuse_ai_videobooleanorthophotobooleanorthophoto_camerastrpointsArray[Point]requiredlatfloatrequiredlongfloatrequiredheightfloattriggersArray[Trigger]conditionstrrequiredcommand_idstrrequiredpriorityintrequired{
"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).
messagestrrequiredon— Поставить на паузу (удерживать текущее положение)off— Возобновить выполнение миссии{
"topic": "10001_pause_mission",
"message": "on"
}
3. cancel_mission
Миссии- MQTT Topic:
{DRONE_ID}_cancel_mission - QoS: 1
Отмена текущей миссии.
messagestrrequiredBACK_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.
messagestrrequiredtrue— Ручной режимfalse— Автоматический режим{
"topic": "10001_use_hand_mode",
"message": "true"
}
5. gimbal_control
Камера и подвес- MQTT Topic:
{DRONE_ID}_gimbal_control - QoS: 1
Ручное управление подвесом камеры. Устанавливает значения roll, pitch, yaw и zoom для указанной камеры. Если активен автоматический режим, он автоматически отключается.
messageobjectrequired{camera_id}objectrequiredrollintrequiredpitchintrequiredyawintrequiredzoomintrequired0— Без зума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
messagebooleanrequiredtrue— Запросить текущие данныеfalse— Нет действия{
"topic": "10001_get_current_data",
"message": true
}
7. gimbal_auto_control
Камера и подвес- MQTT Topic:
{DRONE_ID}_gimbal_auto_control - QoS: 1
Управление автоматическим сканированием подвеса камеры.
statusstrrequiredstart— Запустить автосканированиеstop— Остановить автосканированиеcurrent— Запросить текущий статусtypestrrequiredsin— Синусоидальное движениеdynamic— Динамическое движениеnone— Без типа (для current/stop)camera_idstr{
"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).
messagestrrequireddirectionstrrequiredforward— Вперёдback— Назадleft— Влевоright— Вправоforward_left— Вперёд-влевоforward_right— Вперёд-вправоback_left— Назад-влевоback_right— Назад-вправоup— Вверхdown— Внизstop— Остановкаcenter— Нейтральное положение (зависание)intensityintrequired{
"topic": "10001_joy_control",
"message": "forward_2"
}
9. critical_disarm
Управление полётом- MQTT Topic:
{DRONE_ID}_critical_disarm - QoS: 1
Экстренное выключение моторов дрона. При получении true немедленно отправляется MAVLink-команда принудительного отключения, текущая миссия отменяется.
Используется только в экстренных ситуациях. Дрон немедленно теряет тягу и падает.
messagebooleanrequiredtrue— Немедленно отключить моторы{
"topic": "10001_critical_disarm",
"message": true
}
10. obstacle_avoidance
Управление полётом- MQTT Topic:
{DRONE_ID}_obstacle_avoidance - QoS: 1
Включение/выключение системы обхода препятствий. При включении активируется obstacle_detector, drone_controller начинает реагировать на команды уклонения. Значение флага отображается в телеметрии (поле obstacle_avoidance).
messagebooleanrequiredtrue— Включить обход препятствийfalse— Выключить обход препятствий{
"topic": "10001_obstacle_avoidance",
"message": true
}
11. sim_gps
Управление полётом- MQTT Topic:
{DRONE_ID}_sim_gps - QoS: 1
Симуляция GPS-координат для тестирования.
latfloatrequiredlongfloatrequiredaltfloatrequired{
"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{
"topic": "10001_camera_tracking",
"message": "camera_front"
}
13. use_ai_video
Камера и подвес- MQTT Topic:
{DRONE_ID}_use_ai_video - QoS: 1
Глобальное включение или выключение AI-детекции объектов на видеопотоке.
messagebooleanrequiredtrue— Включить 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{
"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
Запрос текущих данных калибровки сенсоров дрона.
messagebooleanrequiredtrue— Запросить данные калибровки{
"topic": "10001_get_calibration_data",
"message": true
}
18. set_calibration
Калибровка- MQTT Topic:
{DRONE_ID}_set_calibration - QoS: 1
Запуск этапа калибровки датчиков дрона. При запуске калибровки акселерометра отключаются основные модули и активируется нода калибровки.
stepintrequired0— Reboot1— Accelerometer2— Magnetometer3— Otherparamintrequired{
"topic": "10001_set_calibration",
"message": {
"step": 1,
"param": 0
}
}
19. get_check_motors
Калибровка- MQTT Topic:
{DRONE_ID}_get_check_motors - QoS: 1
Запрос текущих данных проверки моторов.
messagebooleanrequiredtrue— Запросить данные моторов{
"topic": "10001_get_check_motors",
"message": true
}
20. set_check_motors
Калибровка- MQTT Topic:
{DRONE_ID}_set_check_motors - QoS: 1
Запуск проверки моторов с указанным PWM-значением.
idintrequired0— Все моторы1–4— Конкретный моторvalueintrequired{
"topic": "10001_set_check_motors",
"message": {
"id": 0,
"value": 1200
}
}
21. stream_url
Камера и подвес- MQTT Topic:
{DRONE_ID}_stream_url - QoS: 1
Передача URL видеопотока на дрон для конкретной камеры.
camera_idstrrequiredprovider_urlstrrequired{
"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_keystrrequiredaes_keystrrequired{
"topic": "10001_drone_request_approve",
"message": {
"public_key": "MIIBIjANBgkqhki...",
"aes_key": "aGVsbG8gd29ybGQ="
}
}
23. send_file_link
ML-модели- MQTT Topic:
{DRONE_ID}_send_file_link - QoS: 1
Отправка ссылки для загрузки ML-модели на дрон. Опционально может содержать ссылку на файл с классами.
file_namestrrequiredfile_linkstrrequiredclasses_file_linkstr | nulltokenstrrequiredС файлом классов:
{
"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
Управление слежением камеры за объектом (трекинг).
statusstrrequiredstart— Начать слежениеstop— Прекратить слежениеcurrent— Запросить текущий статусtrack_idstrrequiredclass_namestrrequiredzoom_statusstrenable— Автозум включёнdisenable— Автозум выключенzoom_meanfloat{
"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
Управление тараном объекта дроном.
statusstrrequiredstart— Начать таранstop— Прекратить таранtrack_idstrrequiredclass_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), если он был активен.
statusstrrequiredstart— Начать следованиеstop— Прекратить следованиеtrack_idstrrequiredclass_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
Отправка результата проверки регистрации дрона в системе.
messagebooleanrequiredtrue— Регистрация подтверждена, дрон продолжает запускfalse— Регистрация не подтверждена, запускается процесс регистрации{
"topic": "10001_registration_check_result",
"message": true
}
29. create_orthophoto
Ортофото- MQTT Topic:
{DRONE_ID}_create_orthophoto - QoS: 1
Ответ сервера на запрос создания ортофотоплана. Содержит URL для загрузки результата.
request_idstrrequiredurlstrrequiredtokenstrrequired{
"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) на дроне. Поддерживает запрос текущего статуса, запуск и остановку конвертации.
statusstrrequiredcurrent— Запросить текущий статус конвертацииstart— Начать конвертацию моделиstop— Остановить конвертацию моделиmodel_namestrЗапрос текущего статуса:
{
"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
Команда сброса сервопривода. Активирует механизм сброса груза (серво возвращается в исходное положение).
messagestrrequiredtrue— Выполнить сброс серво{
"topic": "10001_drop_servo",
"message": "true"
}