Примеры программ
Официальные демонстрационные примеры собраны в репозитории pioneer-team/pioneer-sdk2-example (GitFlic). Примеры рассчитаны на учебное использование: от чтения телеметрии и работы с камерой до простых полётных миссий, ArUco-навигации и управления по жестам.
Разборы примеров
Для каждой группы примеров на сайте есть отдельная страница разбора: как устроен код, какие методы SDK применяются и на что обратить внимание при запуске.
| Разбор | Примеры | Содержание |
|---|---|---|
| Полётные миссии | mission_examples/ | Полёт по точкам с событием POINT_REACHED, окружность с видео, ручная скорость |
| Телеметрия | get_telemetry/ | 17 скриптов: аккумулятор, позиция, скорость, навигация, датчики |
| Камера | camera_examples/ | Кадры, RTSP через ImageViewer, сервокамера, калибровка |
| ArUco | aruco_examples/ | Детекция меток, координаты через solvePnP, полёт с удержанием метки |
| RC-каналы | rc_channels_examples/ | Каналы управления SDK2, параметры автопилота, WASD-управление |
| Сопровождение человека | human_tracking/ | YOLO Pose из Pioneer-RKNN, разворот к человеку, управление жестами |
| WASD_flight.py | WASD_flight.py | Интерактивное управление с клавиатуры через SSH с видеопотоком |
| События автопилота | subscribe_event.py, unsubscribe_event.py | Подписка колбэков на события автопилота и отписка |
Структура репозитория
.
├── aruco_examples # поиск ArUco-меток, координаты метки, полет с удержанием метки
├── camera_examples # кадры, RTSP-трансляция через ImageViewer, сервокамера, калибровка
├── get_telemetry # аккумулятор, положение, скорость, навигация, датчики
├── human_tracking # сопровождение человека и распознавание жестов (Pioneer-RKNN)
├── mission_examples # взлет, полет в точки, движение по окружности, ручная скорость
├── rc_channels_examples # настройка автопилота, ручные каналы, конвертация из SDK1
├── subscribe_event.py # подписка на события автопилота
├── unsubscribe_event.py # отписка от событий
├── WASD_flight.py # управление дроном и сервокамерой с клавиатуры + видеопоток
└── README.mdГруппы примеров
Краткая сводка (подробности — в разборах выше):
| Группа | Содержание |
|---|---|
camera_examples | Получение кадров, RTSP-трансляция через ImageViewer, поворот сервокамеры и калибровка камеры. |
get_telemetry | Чтение состояния аккумулятора, положения, скорости, навигации и данных датчиков. |
mission_examples | Взлёт, полёт в локальные точки, движение по окружности и ручное задание скорости. |
aruco_examples | Поиск ArUco-меток, расчёт координат метки и полёт с удержанием метки. |
rc_channels_examples | Настройка автопилота, отправка каналов ручного управления, конвертация значений из формата SDK1. |
human_tracking | Сопровождение человека и распознавание жестов через Pioneer-RKNN. |
WASD_flight.py | Интерактивное управление дроном и сервокамерой с клавиатуры с видеопотоком. |
subscribe_event.py / unsubscribe_event.py | Подписка и отписка от событий автопилота. |
Требования
- Python 3.12.
- Установленная и настроенная библиотека
pioneer_sdk2. opencv-pythonиnumpy— для примеров камеры и ArUco.pioneer_rknn— для примераhuman_tracking.
Примеры с ImageViewer предполагают конфигурацию камеры с драйвером gstreamer. На конфигурациях с rtsp класс ImageViewer может быть недоступен.
Запуск
Перейдите в нужную директорию и запустите выбранный файл:
python3 camera_stream.pyДля полётных примеров проверьте зону полёта, заряд аккумулятора, систему навигации и возможность аварийной посадки. Большинство полётных скриптов завершают соединение с дроном в finally, но физическая безопасность зависит от корректной подготовки площадки. Примеры с камерой и ImageViewer запускаются на борту Мини 2.
Видеопоток ImageViewer
ImageViewer публикует обработанный кадр по имени потока:
viewer = ImageViewer()
viewer.imshow(name="video", frame=frame, fps=30)Поток video доступен по адресу:
rtsp://10.42.0.1:8554/video/Порты mediamtx на борту: 8554 — RTSP, 8889 — WebRTC (браузер: http://10.42.0.1:8889/video/), 8888 — HLS, 8890 — SRT, 9997 — REST API. В комментариях официальных примеров встречается rtsp://…:8889 — это опечатка: порт 8889 отдаёт WebRTC, а не RTSP.
Для других примеров имя потока указано в README соответствующей директории.
Типовые задачи (из официальной документации)
- Управление через клавиатуру с видео и управлением грузом (адаптация примера Pioneer-SDK).
- Смена цвета светодиодов в зависимости от высоты (определение высоты по дальномеру).
- Полёт по окружности с видео.
- Калибровка камеры для ArUco-маркеров, обнаружение маркера и его координат.
- Следование за ArUco-маркером.
- Вывод изображения с камеры без обработки (класс VideoStream из Pioneer-SDK 1).