Примеры программ

Официальные демонстрационные примеры собраны в репозитории pioneer-team/pioneer-sdk2-example (GitFlic). Примеры рассчитаны на учебное использование: от чтения телеметрии и работы с камерой до простых полётных миссий, ArUco-навигации и управления по жестам.

Структура репозитория

.
├── 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:8889/video/

Для других примеров имя потока указано в README соответствующей директории.

Типовые задачи (из официальной документации)

  • Управление через клавиатуру с видео и управлением грузом (адаптация примера Pioneer-SDK).
  • Смена цвета светодиодов в зависимости от высоты (определение высоты по дальномеру).
  • Полёт по окружности с видео.
  • Калибровка камеры для ArUco-маркеров, обнаружение маркера и его координат.
  • Следование за ArUco-маркером.
  • Вывод изображения с камеры без обработки (класс VideoStream из Pioneer-SDK 1).