🗂️

Обзор примеров

Скрипты репозитория pioneer-sdk2-example, сгруппированные по назначению. Нажмите на скрипт, чтобы открыть подробное описание. Запускайте файлы из соответствующей директории: python3 <файл>.py.

37 примеров7 групп
📊

Телеметрия

Циклическое чтение отдельных групп телеметрии через методы класса 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/<имя_потока>/.