Перейти к содержимому

Урок 35 из 43 · Модуль 4. Подвесы, обход препятствий, точная посадка и группы

Mission Planner для технического персонала · Урок 35 из 43 · Модуль 4. Эксплуатация и диагностика

Управление камерой и подвесом, системы обхода препятствий, точная посадка по маркеру и режимы следования.

Ни один бортовой датчик не видит тонкие провода, сетку и стекло. Обход препятствий снижает риск, но не позволяет летать вслепую.

Содержание

1. Цели урока

После этого урока вы будете понимать:

  • как настроить подвес и вывести видео в интерфейс
  • как работает обход препятствий и каковы его пределы
  • как устроена система точной посадки
  • режимы Follow Me и особенности групповых полётов
↑ К оглавлению

2. Подвесы и камеры

Управление подвесом

Параметр Назначение
MNT1_TYPE Тип: 1 — Servo, 2 — 3DR Solo, 4 — SToRM32 MAVLink, 6 — SToRM32 Serial, 7 — Gremsy, 8 — DroneCAN
MNT1_DEFLT_MODE Режим по умолчанию: 0 — Retract, 2 — MAVLink targeting, 3 — RC targeting, 4 — GPS point
MNT1_RC_RATE Скорость управления с пульта, град/с
MNT1_PITCH_MIN/MAX Пределы наклона
MNT1_YAW_MIN/MAX Пределы поворота
MNT1_ROLL_MIN/MAX Пределы крена

Команда DO_MOUNT_CONTROL в миссии наводит подвес в заданные углы, DO_SET_ROI — на заданную точку на земле.

ROI для облёта объекта: Команда DO_SET_ROI заставляет и нос аппарата, и подвес удерживать указанную точку в кадре. В сочетании с круговым маршрутом это даёт классический облёт объекта. Для отмены поставьте DO_SET_ROI с нулевыми координатами.

Видеопоток в Mission Planner

Программа умеет отображать видео поверх HUD:

  • HUD → правый щелчок → Video → Set GStreamer Source для RTSP или UDP-потока;
  • поддерживаются также устройства захвата и HTTP-потоки.

Типовая строка GStreamer для RTSP-камеры:

rtspsrc location=rtsp://192.168.1.10:8554/stream latency=100
! rtph264depay ! h264parse ! avdec_h264
! videoconvert ! video/x-raw,format=BGRx ! appsink name=outsink
Bash
↑ К оглавлению

3. Обход препятствий

ArduPilot поддерживает датчики кругового обзора и умеет обходить препятствия в режимах LOITER, AUTO и GUIDED.

Параметр Назначение
PRX1_TYPE Тип датчика: 2 — MAVLink, 4 — RangeFinder, 7 — LightWare SF40C, 10 — SITL
AVOID_ENABLE Битовая маска: 1 — UseFence, 2 — UseProximitySensor, 4 — UseBeaconFence
AVOID_MARGIN Дистанция удержания от препятствия, м
AVOID_BEHAVE 0 — Slide (обход), 1 — Stop (остановка)
OA_TYPE Планировщик обхода: 1 — BendyRuler, 2 — Dijkstra, 3 — оба
OA_LOOKAHEAD Дальность просмотра для BendyRuler, м
Обход препятствий — вспомогательная функция: Ни один бортовой датчик не видит тонкие провода, сетку, стеклянные поверхности и ветки. Обход препятствий снижает вероятность столкновения, но не позволяет летать «вслепую». Планируйте маршрут так, чтобы препятствий на нём не было.
↑ К оглавлению

4. Точная посадка

Система Precision Landing использует камеру с маркером (IR-Lock, AprilTag, ArUco) для посадки с точностью 10–30 см.

PLND_ENABLED = 1
PLND_TYPE = 1          (IR-Lock) или 4 (MAVLink от компаньона)
PLND_EST_TYPE = 0      (RawSensor) или 1 (KalmanFilter)
PLND_LAND_OFS_X/Y      смещение точки касания относительно маркера
RNGFND1_TYPE           обязателен дальномер
Text

Применение: автоматические станции зарядки, посадка на подвижную платформу, работа с ограниченной площадкой.

↑ К оглавлению

5. Follow Me и групповые полёты

Follow Me

Аппарат следует за наземной станцией (её GPS-координатами) или за другим аппаратом.

FOLL_ENABLE = 1
FOLL_SYSID = 255       (следовать за GCS) или SYSID лидера
FOLL_DIST_MAX = 100
FOLL_OFS_X/Y/Z         смещение относительно цели
FOLL_OFS_TYPE          0 — NED, 1 — относительно курса цели
FOLL_YAW_BEHAVE        0 — не менять, 1 — на цель, 2 — как у цели
Text

Групповые полёты

Mission Planner поддерживает управление несколькими аппаратами через окно Swarm (Ctrl+F → Swarm). Каждый аппарат должен иметь уникальный SYSID_THISMAV.

Настоящий рой — это не Mission Planner: Окно Swarm подходит для демонстраций и простых сценариев следования. Серьёзные групповые операции строятся на компаньон-компьютерах с локальной координацией, поскольку центральная наземная станция становится узким местом и единой точкой отказа.
↑ К оглавлению

6. Плагины Mission Planner

Программа поддерживает плагины на C# и скрипты на IronPython.

Скрипты кладутся в папку Scripts рядом с исполняемым файлом и запускаются из вкладки DATA → Scripts. Доступ к внутренним объектам программы даёт возможность автоматизировать что угодно.

# Пример: ожидание достижения высоты и выполнение действия
print 'Ожидание высоты 20 м'
while cs.alt < 20:
Script.Sleep(500)
print 'Высота достигнута, переключаюсь в LOITER'
Script.ChangeMode('LOITER')
Script.SendRC(7, 1900, True)
Text
↑ К оглавлению

7. Практика

Задания выполняются в симуляторе SITL и не требуют реального аппарата. Выполните их до перехода к следующему уроку.

Задание 35.1. Lua-скрипт

Выполняется в симуляторе SITL, реальный аппарат не требуется.

  • Напишите скрипт, который при снижении напряжения ниже заданного порога отправляет предупреждение в GCS и мигает светодиодом.
  • Проверьте его в SITL.
  • Оцените влияние на PM.Load.

Задание 35.2. Управление из Python

Выполняется в симуляторе SITL, реальный аппарат не требуется.

  • Напишите скрипт на pymavlink, который выполняет: армирование, взлёт на 20 м, полёт по квадрату 50 × 50 м, возврат и посадку.
  • Добавьте контроль: при потере heartbeat более 3 секунд — отправка команды RTL.
  • Проверьте в SITL, включая сценарий обрыва связи.
↑ К оглавлению

8. Проверьте себя

Сформулируйте ответ своими словами, прежде чем сверяться со справочником ответов (последняя статья курса).

  1. Какие задачи разумно решать Lua-скриптом, а какие — компаньон-компьютером?
  2. Почему при управлении из GUIDED обязательно настраивать FS_GCS_ENABLE?
  3. Что делает команда DO_SET_ROI и как её отменить?
  4. Каковы принципиальные ограничения бортовых систем обхода препятствий?
  5. Почему централизованное управление роем через наземную станцию плохо масштабируется?
↑ К оглавлению

9. Чек-лист самопроверки

Урок освоен, если каждый пункт выполнен на практике:

  • Подвес управляется с пульта и командами миссии
  • Понимаю ограничения систем обхода препятствий
  • Знаю, что точная посадка требует дальномера
Результат: все пункты выполнены — переходите к следующему уроку.
↑ К оглавлению

10. Что дальше

  • Предыдущий урок: 34. Lua-скрипты и компаньон-компьютер
  • Следующий урок: 36. Диагностика: подключение и армирование
  • Полный перечень тем — в статье «Содержание курса».
↑ К оглавлению
  • Четверг, 30 июля 2026