Обзор примеров
Скрипты репозитория pioneer-sdk2-example, сгруппированные по назначению.
Нажмите на скрипт, чтобы открыть подробное описание. Запускайте файлы из соответствующей
директории: python3 <файл>.py.
Телеметрия
Циклическое чтение отдельных групп телеметрии через методы класса Pioneer.
get_telemetry/
17 скриптов
get_accel.pyБесконечно читает ускорение через get_accel() и печатает три компоненты вектора ускорения.get_altitude.pyПечатает высоту дрона через get_altitude() раз в секунду.get_battery_status.pyПечатает напряжение и температуру аккумулятора раз в секунду.get_dist_sensor.pyПечатает расстояние с оптического дальномера в метрах.get_global_position_gps.pyПечатает широту, долготу и высоту по данным GPS.get_global_velocity.pyПечатает северную, восточную и вертикальную скорости.get_local_position.pyПечатает локальные координаты x, y, z в метрах.get_local_velocity_lps.pyПечатает локальную скорость vx, vy, vz в м/с.get_local_yaw_lps.pyПечатает угол рыскания (курс) в градусах.get_mag.pyПечатает показания магнитометра по осям X, Y, Z.get_motors_rpm.pyПечатает обороты четырёх двигателей.get_nav_status_gps.pyПечатает состояние GPS-навигации (NavStatus).get_nav_status_lps.pyПечатает состояние локальной системы навигации (NavStatus).get_nav_system.pyОднократно печатает активную систему навигации.get_optical_data.pyПечатает данные оптического потока и дальность.get_orientation.pyПечатает углы крена, тангажа и рыскания.get_satellites_count.pyПечатает число спутников GPS и ГЛОНАСС.
Камера
Получение кадров, RTSP-трансляция через ImageViewer, поворот сервокамеры и калибровка.
camera_examples/
5 скриптов
get_frames_from_camera.pyБесконечно получает кадры с камеры и публикует их в поток video до Ctrl+C.camera_stream.pyПубликует поток video ограниченное время (30 с), затем корректно закрывает его.camera_calibration.pyСнимает шахматную доску через камеру дрона и сохраняет коэффициенты калибровки в data.yml.set_camera_angle.pyНаклоняет сервокамеру на +25°, ждёт 3 секунды и наклоняет на −25°.take_photo_angles.pyДелает три снимка при углах −25°, 0° и 25°, сохраняя их в jpg-файлы.
Полётные миссии
Взлёт, полёт по локальным точкам, движение по окружности и ручная скорость.
mission_examples/
4 скриптов
go_to_local_point.pyВзлетает и последовательно посещает три локальные точки, ожидая события POINT_REACHED.circle_flight.pyЛетит по восьми точкам окружности радиусом 0.7 м на высоте 1 м, публикуя видео.mission_with_frames.pyОблетает квадрат по четырём точкам, публикуя видео с камеры в поток pioneer_camera.set_manual_speed.pyПосле взлёта летит вперёд по Y, затем вправо по X командами set_manual_speed().
ArUco-навигация
Калибровка камеры, поиск ArUco-меток, расчёт координат и полёт с удержанием метки.
aruco_examples/
4 скриптов
camera_calibration.pyВариант калибровки камеры, сохраняющий data.yml для примеров ArUco.detect_aruco.pyНаходит ArUco-метки словаря DICT_ARUCO_ORIGINAL и публикует поток aruco.detect_aruco_coordinates.pyРассчитывает положение метки относительно камеры через solvePnP и печатает координаты.aruco_flight.pyПосле ручного взлёта удерживает метку в кадре, корректируя расстояние и высоту.
RC-каналы
Настройка автопилота, отправка каналов ручного управления и конвертация значений SDK1.
rc_channels_examples/
2 скриптов
send_rc_channels.pyНастраивает автопилот и постоянно отправляет нейтральные значения RC-каналов SDK2.wasd_rc_channels.pyВзлетает штатно, а ручное движение выполняет через RC-каналы SDK2 с клавиатуры.
Сопровождение человека
Сопровождение человека и распознавание жестов через Pioneer-RKNN (YOLO Pose).
human_tracking/
2 скриптов
human_tracking_simple.pyВзлетает, ищет самого крупного человека в кадре, разворачивается к нему и зависает при потере цели.human_tracking_rknn.pyРаспознаёт позу человека, рисует скелет, выполняет команды жестами, делает фото и садится по жесту.
События и ручное управление
Отдельные скрипты в корне репозитория: события автопилота и управление с клавиатуры.
./
3 скриптов
subscribe_event.pyПодписывается на события завершения взлёта и посадки и меняет цвет светодиодов.unsubscribe_event.pyПодписывается на событие взлёта, а после взлёта отписывается от него.WASD_flight.pyИнтерактивно управляет дроном и сервокамерой с клавиатуры, публикуя видеопоток.
ImageViewer публикует обработанный кадр по имени потока.
Поток доступен по адресу rtsp://10.42.0.1:8889/<имя_потока>/.