pioneer-sdk2-examples
Описание
Репозиторий содержит демонстрационные примеры для программирования квадрокоптеров Pioneer через pioneer_sdk2. Примеры рассчитаны на учебное использование: от чтения телеметрии и работы с камерой до простых полетных миссий, ArUco-навигации и управления по жестам.
Структура репозитория
.
├── aruco_examples
├── camera_examples
├── get_telemetry
├── human_tracking
├── mission_examples
├── rc_channels_examples
├── 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 запускаются на борту Mini 2.
Видеопоток ImageViewer
ImageViewer публикует обработанный кадр по имени потока:
viewer = ImageViewer()
viewer.imshow(name="video", frame=frame, fps=30)
Поток video доступен по адресу:
rtsp://10.42.0.1:8889/video/
Для других примеров имя потока указано в README соответствующей директории.