Роевые полёты

Групповой полёт — это несколько коптеров, выполняющих согласованную миссию. Пионер Мини 2 для этого подходит: каждый борт — отдельный Linux-компьютер с SDK, а система позиционирования «Геоскан Локус» и UWB позволяют работать в помещении без ГНСС.

Что нужно для роя

СлойЗадача
НавигацияЕдиная система позиционирования для всех бортов (Локус/УЗ, ИК, UWB или ГНСС) — коптеры должны «видеть» одну систему координат
АдресацияУникальные адреса и SSID/каналы для каждого коптера, чтобы команды не смешивались
СинхронизацияОбщее время и общий старт: рассинхронизация часов ломает одновременные манёвры
КоординацияВнешний управляющий скрипт или распределённая логика на борту
БезопасностьРазнесённые зоны, лимиты высоты/скорости, аварийные посадки

Планирование сети

  • Каждый коптер по умолчанию раздаёт свою сеть PMINI2-…. Для роя удобнее перевести борта в режим клиента и подключить к одному роутеру — тогда у каждого будет предсказуемый IP (см. Сеть и PioNet).
  • Разнесите каналы Wi-Fi: работа нескольких точек доступа в одном канале снижает стабильность связи.
  • Задайте уникальные SSID и пароли при работе через штатные точки доступа.

Схемы управления

СхемаОписаниеПлюсы
ЦентрализованнаяОдин управляющий компьютер подключается к каждому борту по SDK и рассылает командыПростота логики, общий обзор
РаспределённаяНа каждом борту своя программа; старт синхронизируется событием или таймеромНет единой точки отказа, меньше трафика

В обоих случаях полезно единое представление координат: миссии задаются в локальной системе навигации, а старт выравнивается по общему сигналу.

Набросок централизованного управления

from pioneer_sdk2 import Pioneer

# адреса бортов в общей сети
ADDRESSES = ["10.42.0.11", "10.42.0.12", "10.42.0.13"]

drones = [Pioneer(tcp=f"{addr}:20556") for addr in ADDRESSES]

try:
    for d in drones:
        d.arm(); d.takeoff()
    # ... согласованный манёвр ...
finally:
    for d in drones:
        d.land(); d.close_connection()

Порт SDK по TCP — 20556 (аудит системы). Точный адрес каждого борта зависит от сети; в режиме точки доступа это 10.42.0.1, в общей сети — выданный роутером IP.

Безопасность роя

  • Разносите стартовые точки и траектории, задавайте безопасные высоты эшелонами.
  • Ограничивайте скорость и время миссии, предусматривайте автопосадку при потере связи.
  • Проводите первые групповые полёты без нагрузки и на малой высоте.
  • Заранее определите порядок действий при нештатной ситуации у одного борта.