Skip to main content

Дрон → Сервер

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

1. data

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

Периодическая публикация телеметрии дрона: координаты, высота, скорость, заряд батареи, курс, статус миссии и флаги режимов управления. Публикуется по таймеру (~0.7 с).

positionPositionrequired
Позиция дрона
pointPointrequired
Координаты
latfloatrequired
Широта
longfloatrequired
Долгота
heightfloat
Высота (м)
directionintrequired
Направление движения (0–360°)
speedfloat
Скорость (м/с)
battery_levelfloatrequired
Заряд батареи (0–100%)
headingfloatrequired
Курс/направление камеры (0–360°)
statusstrrequired
Текущий статус дрона
onlineВ сети, готов к работе
offlineНе в сети
on missionВыполняет миссию
taking offВзлетает
landingСовершает посадку
returningВозвращается на точку старта
pausedМиссия на паузе
emergency landingАварийная посадка
mission_iduuidrequired
ID текущей миссии
command_iduuidrequired
ID выполняемой команды
use_ai_videobooleanrequired
AI-детекция активна
use_hand_modebooleanrequired
Ручной режим управления активен
obstacle_avoidancebooleanrequired
Обход препятствий активен
camera_trackingstr
Идентификатор активной камеры трекинга (null если не выбрана)
aimobject
Цель во время тарана (null если нет цели)
carint
ID целевого объекта
{
"topic": "10001_data",
"message": {
"position": {
"point": {
"lat": 55.751244,
"long": 37.618423,
"height": 50.0
},
"direction": 180.0,
"speed": 5.2
},
"battery_level": 85.0,
"heading": 180.0,
"status": "on mission",
"mission_id": "01939ba1-fd8a-7ed4-acb1-35791c03c70d",
"command_id": "0193909e-e71c-7b38-8ed7-ab4d7aed7e1c",
"use_ai_video": true,
"aim": null,
"use_hand_mode": false,
"obstacle_avoidance": true,
"camera_tracking": null
}
}

2. mission_received

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

Подтверждение получения миссии дроном.

messageuuidrequired
ID полученной миссии
{
"topic": "10001_mission_received",
"message": "01939ba1-fd8a-7ed4-acb1-35791c03c70d"
}

3. mission_completed

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

Уведомление о завершении миссии.

messageuuidrequired
ID завершённой миссии
{
"topic": "10001_mission_completed",
"message": "01939ba1-fd8a-7ed4-acb1-35791c03c70d"
}

4. mission_cancelled

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

Уведомление об отмене миссии.

messageuuidrequired
ID отменённой миссии
{
"topic": "10001_mission_cancelled",
"message": "01939ba1-fd8a-7ed4-acb1-35791c03c70d"
}

5. photo

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

Данные фото с детектируемым объектом. Включает изображение в Base64.

namestrrequired
Класс детектируемого объекта (например, car, person)
idint
ID детектируемого объекта
timedatetimerequired
Время детекции в формате YYYY-MM-DDThh:mm:ss
photoBase64required
Изображение объекта в формате Base64
latfloatrequired
Широта координаты дрона в момент съёмки
longfloatrequired
Долгота координаты дрона в момент съёмки
{
"topic": "10001_photo",
"message": {
"name": "car",
"id": 1,
"time": "2025-08-09T18:31:42",
"photo": "/9j/4AAQSkZJRgABAD...",
"lat": 59.942,
"long": 30.3202
}
}

6. current_model_tracking

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

Информация о текущей активной и всех доступных ML-моделях на дроне.

current_modelstrrequired
Имя файла текущей активной модели
available_modelsArray[str]required
Список всех доступных моделей на дроне
{
"topic": "10001_current_model_tracking",
"message": {
"current_model": "yolov8n.pt",
"available_models": [
"yolov8n.pt",
"yolov8s.pt",
"custom_model.pt"
]
}
}

7. result_delete

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

Результат удаления ML-моделей. Массив объектов с результатом для каждого файла.

messageArray[object]required
Результаты удаления
model_namestrrequired
Имя файла модели
status_codeintrequired
HTTP-код результата (200 — успех, 500 — ошибка)
messagestrrequired
Текстовое описание результата
{
"topic": "10001_result_delete",
"message": [
{
"model_name": "old_model.pt",
"status_code": 200,
"message": "Deleted"
},
{
"model_name": "missing_model.pt",
"status_code": 500,
"message": "File not found"
}
]
}

8. objects_data

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

Метаданные детектируемого объекта без изображения. Передаётся при каждом обнаружении.

namestrrequired
Класс объекта (например, car, person)
idint
ID объекта в рамках текущей сессии
timedatetimerequired
Время детекции в формате YYYY-MM-DDThh:mm:ss
positionPositionrequired
Позиция обнаруженного объекта
pointPointrequired
Координаты объекта
latfloatrequired
Широта
longfloatrequired
Долгота
heightfloat
Высота (м)
directionintrequired
Направление движения объекта (0–360°)
speedfloat
Скорость объекта (м/с)
drone_pointPointrequired
Координаты дрона в момент детекции
latfloatrequired
Широта дрона
longfloatrequired
Долгота дрона
{
"topic": "10001_objects_data",
"message": {
"name": "car",
"id": 1,
"time": "2025-08-09T18:31:42",
"position": {
"point": {
"lat": 59.9397889,
"long": 149.18209,
"height": 200
},
"direction": 90,
"speed": 60
},
"drone_point": {
"lat": -35.364,
"long": 149.165
}
}
}

9. gimbal_data

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

Текущие данные подвеса камеры для каждой подключённой камеры.

{camera_id}objectrequired
Параметры подвеса камеры
rollintrequired
Крен
pitchintrequired
Тангаж
yawintrequired
Рыскание
zoomintrequired
Текущее значение зума
{
"topic": "10001_gimbal_data",
"message": {
"camera_0": {
"roll": 0,
"pitch": -45,
"yaw": 180,
"zoom": 1
}
}
}

10. gimbal_auto_status

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

Статус автоматического сканирования подвеса.

camera_idstrrequired
ID камеры
statusstrrequired
Текущий статус автосканирования
runningАвтосканирование выполняется
startАвтосканирование запущено
stopАвтосканирование остановлено
currentОтвет на запрос текущего статуса
typestrrequired
Тип сканирования
sinСинусоидальное движение
dynamicДинамическое движение
noneНе задан
{
"topic": "10001_gimbal_auto_status",
"message": {
"camera_id": "camera_1",
"status": "running",
"type": "sin"
}
}

11. drone_params_data

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

Ответ с запрошенными параметрами полётного контроллера (ArduPilot). Ключ — имя параметра, значение — текущее значение.

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

12. ardupilot_status

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

Статусные сообщения от ArduPilot (предупреждения, ошибки, информация).

severityintrequired
Уровень важности сообщения
0Emergency
1Alert
2Critical
3Error
4Warning
5Notice
6Info
messagestrrequired
Текст сообщения от ArduPilot
{
"topic": "10001_ardupilot_status",
"message": {
"severity": 4,
"message": "PreArm: GPS not healthy"
}
}

13. calibration_data

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

Данные о текущем состоянии калибровки сенсоров.

stepintrequired
Текущий этап калибровки
0Reboot
1Accelerometer
2Magnetometer
3Other
paramintrequired
Прогресс или параметр текущего этапа
statusintrequired
Общий статус калибровки
0False (не пройдена)
1True (пройдена)
2Running (выполняется)
3Rebooting (перезагрузка)
4NotStarted (не начата)
{
"topic": "10001_calibration_data",
"message": {
"step": 1,
"param": 75,
"status": 2
}
}

14. check_motors_data

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

Данные проверки моторов — массив PWM-значений для каждого мотора.

messageArray[int]required
Массив из 5 целых чисел: общий газ и PWM моторов 1–4 (в порядке тестирования: 1, 4, 2, 3)
{
"topic": "10001_check_motors_data",
"message": [1000, 1200, 1150, 1180, 1190]
}

15. download_info

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

Прогресс загрузки файла ML-модели на дрон.

statusstrrequired
Статус загрузки
noneЗагрузка не начата
progressЗагрузка в процессе
completeЗагрузка завершена
errorОшибка загрузки
model_namestrrequired
Имя файла загружаемой модели
progress_percentint
Процент загрузки (0–100, только при status=progress)
messagestr
Текст ошибки (только при status=error)
{
"topic": "10001_download_info",
"message": {
"status": "progress",
"model_name": "yolov8n.pt",
"progress_percent": 45
}
}

16. mag_fitness

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

Данные калибровки магнитометра (компаса).

compass_idintrequired
ID компаса (0, 1, 2)
fitnessfloatrequired
Качество калибровки (0.0 — плохо, 1.0 — отлично)
{
"topic": "10001_mag_fitness",
"message": {
"compass_id": 0,
"fitness": 0.95
}
}

17. stream_lost

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

Уведомление о потере URL видеопотока. Сервер должен отправить актуальный URL через stream_url.

messagebooleanrequired
Уведомление о потере потока
trueURL видеопотока потерян, требуется повторная отправка
{
"topic": "10001_stream_lost",
"message": true
}

18. payload

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

Полный статус оборудования дрона: камеры, SD-карта, прошивка, контроллер, состояние связи.

camerasobject
Подключённые камеры (ключ — имя камеры)
{camera_name}object
Параметры камеры
resolutionstr
Разрешение камеры
distortion_modelstr
Модель дисторсии
gimbalboolean
Наличие подвеса
zoomboolean
Поддержка зума
serial_numberstr
Серийный номер
sd_cardobject
Информация об SD-карте
modelstr
Модель карты
capacity_gbfloat
Общий объём (ГБ)
used_gbfloat
Использовано (ГБ)
free_gbfloat
Свободно (ГБ)
firmwareobject
Информация о прошивке
namestr
Название прошивки
versionstr
Версия прошивки
flight_controllerobject
Полётный контроллер
modelstr
Модель контроллера
sensorsArray[str]
Список датчиков
batterystr
Ёмкость батареи
connectivityobject
Информация о связи
telemetrystr
Тип телеметрии
wifiboolean
Наличие Wi-Fi
{
"topic": "10001_payload",
"message": {
"cameras": {
"main_camera": {
"resolution": "1920x1080",
"distortion_model": "HDX",
"gimbal": false,
"zoom": false,
"serial_number": "SN12345"
}
},
"sd_card": {
"model": "SanDisk Extreme PRO",
"capacity_gb": 47.89,
"used_gb": 41.58,
"free_gb": 6.31
},
"firmware": {
"name": "ArduCopter",
"version": "4.5.7"
},
"flight_controller": {
"model": "Pixhawk 4",
"sensors": ["GPS", "IMU", "Magnetometer", "Barometer"],
"battery": "5200"
},
"connectivity": {
"telemetry": "900MHz SiK Radio",
"wifi": true
}
}
}

19. drone_request_init

Регистрация
  • MQTT Topic: drone_request_init (без DRONE_ID)
  • QoS: 1

Инициация процесса регистрации нового дрона в системе.

organization_idstrrequired
ID организации-владельца
drone_idstrrequired
ID дрона
public_keystrrequired
Публичный ключ дрона
mac_addressstrrequired
MAC-адрес дрона
{
"topic": "drone_request_init",
"message": {
"organization_id": "org-001",
"drone_id": "10001",
"public_key": "MIIBIjANBgkqhki...",
"mac_address": "AA:BB:CC:DD:EE:FF"
}
}

20. drone_request_complete

Регистрация
  • MQTT Topic: drone_request_complete (без DRONE_ID)
  • QoS: 1

Подтверждение завершения аутентификации дрона. Публикуется после получения одобрения от сервера (drone_request_approve). Структура аналогична drone_request_init.

organization_idstrrequired
ID организации-владельца
drone_idstrrequired
ID дрона
public_keystrrequired
Публичный ключ дрона
mac_addressstrrequired
MAC-адрес дрона
{
"topic": "drone_request_complete",
"message": {
"organization_id": "org_001",
"drone_id": "10001",
"public_key": "ssh-rsa AAAA...",
"mac_address": "AA:BB:CC:DD:EE:FF"
}
}

21. follow_info_publisher

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

Информация о текущем состоянии трекинга объекта камерой.

track_idstrrequired
ID отслеживаемого объекта или none при отсутствии цели
class_namestrrequired
Класс объекта или none при отсутствии цели
statusstrrequired
Статус трекинга
trackingАктивное слежение за объектом
lostОбъект потерян
errorОшибка трекинга
stopСлежение остановлено
noneТрекинг не активен
error_codestr
Код ошибки (только при status=error)
zoom_statusstrrequired
Состояние автозума
enableАвтозум активен
disenableАвтозум выключен
zoom_meanfloatrequired
Текущее среднее значение зума (1.0–15.0)
{
"topic": "10001_follow_info_publisher",
"message": {
"track_id": "42",
"class_name": "car",
"status": "tracking",
"zoom_status": "enable",
"zoom_mean": 5.0
}
}

22. drone_strike_status

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

Текущий статус тарана объекта дроном.

track_idstrrequired
ID целевого объекта
class_namestrrequired
Класс объекта
statusstrrequired
Статус тарана
noneТаран не активен
strikeТаран выполняется
lostОбъект потерян, таран прерван
{
"topic": "10001_drone_strike_status",
"message": {
"track_id": "5",
"class_name": "car",
"status": "strike"
}
}

23. drone_follow_status

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

Текущий статус следования дрона за объектом.

track_idstrrequired
ID целевого объекта
class_namestrrequired
Класс объекта
statusstrrequired
Статус следования
noneСледование не активно
trackingДрон следует за объектом
lostОбъект потерян, следование прервано
{
"topic": "10001_drone_follow_status",
"message": {
"track_id": "3",
"class_name": "person",
"status": "tracking"
}
}

24. check_registration

Регистрация
  • MQTT Topic: check_registration (без DRONE_ID)
  • QoS: 1

Запрос на проверку регистрации дрона в системе.

messagestrrequired
ID дрона для проверки регистрации
{
"topic": "check_registration",
"message": "10001"
}

25. actual_objects_data

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

Список актуальных детектируемых объектов, сгруппированных по классам. Каждому классу соответствует массив ID объектов.

objectsobjectrequired
Объект, где ключ — класс объекта, значение — массив ID объектов этого класса
{
"topic": "10001_actual_objects_data",
"message": {
"objects": {
"car": [101, 102, 103],
"person": [201, 202]
}
}
}

26. create_orthophoto_request

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

Запрос дрона на создание ортофотоплана. Сервер должен ответить через create_orthophoto.

request_idstrrequired
Уникальный ID запроса
{
"topic": "10001_create_orthophoto_request",
"message": {
"request_id": "ortho-001"
}
}

27. transferring_info

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

Статус конвертации ML-модели из формата .pt в формат .engine (TensorRT) на дроне. При успешном завершении имя модели меняет расширение с .pt на .engine.

statusstrrequired
Статус конвертации
noneНет активного процесса конвертации
startedКонвертация начата (инициализация)
transferringКонвертация в процессе
completedКонвертация завершена успешно
stoppedКонвертация отменена
errorОшибка конвертации
model_namestrrequired
Имя модели. При status=completed расширение меняется с .pt на .engine. При остальных статусах — исходное имя файла. Значение none при status=none
messagestr
Текст ошибки (только при status=error)
progress_percentint
Процент выполнения конвертации (0–100)

Нет активного процесса:

{
"topic": "10001_transferring_info",
"message": {
"status": "none",
"model_name": "none",
"progress_percent": 0
}
}

Конвертация начата:

{
"topic": "10001_transferring_info",
"message": {
"status": "started",
"model_name": "yolov8s.pt",
"progress_percent": 0
}
}

Конвертация в процессе:

{
"topic": "10001_transferring_info",
"message": {
"status": "transferring",
"model_name": "yolov8s.pt",
"progress_percent": 50
}
}

Конвертация завершена успешно:

{
"topic": "10001_transferring_info",
"message": {
"status": "completed",
"model_name": "yolov8s.engine",
"progress_percent": 100
}
}

Конвертация отменена:

{
"topic": "10001_transferring_info",
"message": {
"status": "stopped",
"model_name": "yolov8s.pt",
"progress_percent": 0
}
}

Ошибка при конвертации:

{
"topic": "10001_transferring_info",
"message": {
"status": "error",
"model_name": "yolov8s.pt",
"message": "Model yolov8s.pt not found",
"progress_percent": 0
}
}