Разработка AI-системы управления роем дронов Swarm AI

Проектируем и внедряем системы искусственного интеллекта: от прототипа до production-ready решения. Наша команда объединяет экспертизу в машинном обучении, дата-инжиниринге и MLOps, чтобы AI работал не в лаборатории, а в реальном бизнесе.
Показано 1 из 1Все 1566 услуг
Разработка AI-системы управления роем дронов Swarm AI
Сложный
от 2 недель до 3 месяцев
Часто задаваемые вопросы

Направления AI-разработки

Этапы разработки AI-решения

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1284
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1196
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    901
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1119
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    586
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    853

AI-система управления роем дронов

Рой дронов — децентрализованная система из N БПЛА, координирующихся без центрального сервера. Каждый дрон принимает решения на основе локальных наблюдений + коммуникации с соседями. MARL (Multi-Agent RL) + Flocking algorithms + Consensus protocols.

Децентрализованная координация

Почему не централизованное управление: При N=10 централизованный планировщик работает. При N=100 — вычислительно неподъёмно. При N=1000 — невозможно. Децентрализованный рой масштабируется линейно.

Reynolds Flocking (1987) — базовые правила:

  1. Separation: избегать столкновений с соседями
  2. Alignment: выравнивать скорость с соседями
  3. Cohesion: оставаться близко к центру масс рой

RL учится поверх этих правил для задача-специфичного поведения.

MARL для роя

Observation на каждый дрон:

obs_per_drone = {
    'own_state': [x, y, z, vx, vy, vz, battery],  # 7 значений
    'neighbors': [[rel_pos, rel_vel] for n in K_nearest_neighbors],  # K×6
    'goal': [dx, dy, dz],       # направление к цели
    'obstacles': lidar_scan      # 16-ray LiDAR
}

Centralized Training Decentralized Execution (CTDE):

  • Обучение: critic видит глобальное состояние всего роя
  • Исполнение: каждый дрон использует только локальное наблюдение

QMIX (Multi-Agent Value Decomposition):

# QMIX: Q_tot = f(Q_1,...,Q_n, state)
# монотоническое смешивание индивидуальных Q-функций
# гарантирует: argmax Q_tot = [argmax Q_i for each i]

class QMIXNet(nn.Module):
    def __init__(self, n_agents, state_dim):
        super().__init__()
        # mixing network
        self.hyper_w1 = nn.Linear(state_dim, n_agents * 32)
        self.hyper_w2 = nn.Linear(state_dim, 32)
        self.hyper_b1 = nn.Linear(state_dim, 32)
        self.hyper_b2 = nn.Linear(state_dim, 1)

    def forward(self, q_agents, state):
        # weights из гиперсети (всегда ≥ 0 для монотонности)
        w1 = F.elu(self.hyper_w1(state)).view(-1, q_agents.size(1), 32)
        w2 = F.elu(self.hyper_w2(state)).unsqueeze(-1)
        # ... смешивание
        return q_total

Задачи роя

Покрытие территории (Coverage): N дронов должны равномерно покрыть область S за минимальное время. Reward пропорционален покрытой уникальной площади.

Поиск и обнаружение: Рой ищет цели (люди в завалах, лесные пожары). Информация о находках распространяется через mesh сеть дронов.

Транспортировка: Несколько дронов несут груз совместно. Задача: синхронизировать тягу без явного центрального координатора.

Защита от угроз (Counter-UAV): Часть роя — защитники, отслеживающие и перехватывающие adversarial дроны.

Коммуникация в рое

ограниченный bandwidth: Каждый дрон знает только о K ближайших соседях (K=5–8 типично). Gossip protocol: информация распространяется волнами.

Latency tolerance: Алгоритм должен работать при packet loss 20–30% и latency 50–200 мс.

Communication-aware RL:

# действие включает решение о коммуникации
action_space = spaces.Dict({
    'motion': spaces.Box(-1, 1, (3,)),   # velocity
    'message': spaces.Box(-1, 1, (8,)),  # broadcast вектор соседям
})

# observation включает входящие сообщения
obs = concat([own_state, neighbor_messages, sensor_readings])

Gazebo + PX4 для swarm симуляции

# запуск 10 экземпляров PX4 + один Gazebo
./Tools/simulation/gazebo-classic/sitl_multiple_run.sh -n 10 -m iris

# каждый дрон на отдельном MAVLink порту: 14540+i
# управление через python: pymavlink или MAVSDK
import asyncio
from mavsdk import System

async def control_swarm(n_drones):
    drones = [System() for _ in range(n_drones)]
    await asyncio.gather(*[
        drone.connect(f"udp://:1454{i}") for i, drone in enumerate(drones)
    ])

    # параллельный takeoff
    await asyncio.gather(*[drone.action.takeoff() for drone in drones])

Избегание столкновений

Velocity Obstacle (VO) / Reciprocal VO (ORCA): Классический алгоритм, гарантирует collision-free при известных скоростях всех дронов. Используется как safety layer поверх RL.

from rl_swarm.safety import ORCASafetyLayer

safety = ORCASafetyLayer(max_speed=5.0, safety_radius=1.5)

raw_velocity = rl_policy.predict(obs)
safe_velocity = safety.compute_safe_velocity(
    raw_velocity, drone_position, neighbor_positions, neighbor_velocities
)

Метрики оценки роя

  • Coverage rate: % целевой площади покрытой за T минут
  • Formation error: среднеквадратичное отклонение от целевого формирования
  • Collision rate: столкновений на 100 полётных часов
  • Communication load: среднее число сообщений/сек на дрон
  • Resilience: % задач выполненных при отказе 20% дронов

Сроки: 20–36 недель

Базовый рой 5–10 дронов в Gazebo для покрытия — 12 недель. Полноценная MARL система с QMIX, communication, safety layer, sim-to-real на 20+ реальных дронах — 28–36 недель.