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

Коли автономний транспорт стикається з несподіваними ситуаціями на дорозі, класичні алгоритми планування можуть не встигнути зреагувати. Ми розробляємо AI-системи планування шляху на основі reinforcement learning, які приймають рішення за мілісекунди. Наша команда реалізує проєкт під ключ — від навчання моделі в симуляторі до впровадження з подальшою підтримкою, забезпечуючи надійність і безпеку вашого транспорту.
Часті запитання

Уявіть: автономний транспортний засіб рухається в щільному міському трафіку. Раптово з-за вантажівки вибігає пішохід. Класичні алгоритми планування траєкторії A* згенерують новий маршрут за 100 мс, але цього може не вистачити. Реактивне гальмування — вже пізно. Наші інженери вирішують цю проблему за допомогою Reinforcement Learning (RL) та ієрархічного планування. Ми будуємо системи, здатні приймати рішення за мілісекунди, враховуючи сотні змінних — від швидкості сусідніх автомобілів до стану дорожнього покриття. В області автономного водіння надійність планування траєкторії визначає безпеку. Ми використовуємо deep learning для водіння в задачах сприйняття та керування. У цій статті розберемо, як RL-агент навчається в симуляторі CARLA і чому додавання формального safety-шару (RSS, CBF) робить систему безпечною та надійною. Отримайте консультацію — оцінимо ваш проект і запропонуємо оптимальне рішення.

Які проблеми вирішує RL-планування?

Edge cases: пішоходи, які вибігають з-за перешкод, велосипедисти, тварини, розмітка в ремонті. Класичні планувальники вимагають ручного прописування кожного сценарію. Безпека на швидкостях до 60 км/год у місті: навіть пара секунд затримки може призвести до аварії. Наш RL-агент приймає рішення з частотою 50-100 Гц. У тестах на CARLA сценаріях кількість зіткнень знижується на 40% порівняно з чисто детермінованими планувальниками. Економія на аваріях досягає $200 000 на рік для великого парку.

Чому Reinforcement Learning кращий за класичні методи?

Класичні алгоритми (A*, RRT, MPC) вимагають ручного кодування сотень виняткових ситуацій. Reinforcement Learning автоматично знаходить оптимальну стратегію, навчаючись на тисячах симуляцій. В результаті система адаптується до непередбачених умов без додаткового програмування. Наприклад, на перехресті з непрацюючим світлофором RL-агент сам приймає рішення поступитися чи проїхати, оцінюючи поведінку інших учасників. RL вирішує задачу motion planning в реальному часі, адаптуючись до динамічного середовища.

Як ми це робимо: стек та архітектура

Сприйняття (Perception)

LiDAR (Velodyne, Ouster), стереокамери, радар та GPS/IMU. Злиття даних через Extended Kalman Filter або нейромережевий Deep Fusion. Точність локалізації — менше 10 см у міських умовах.

Локалізація

NDT matching, LOAM/LIO-SAM, зіставлення з HD-картою (OpenStreetMap + Lanelet2).

Планування

Глобальне: A* на HD-карті. Локальне: RL-агент + MPC для генерації гладкої траєкторії. Реактивне: RSS-шар безпеки.

Фреймворки та інструменти

  • Autoware (ROS2, open source) для інтеграції на реальному автомобілі.
  • CARLA симулятор з Python/C++ API для навчання RL.
  • PyTorch для нейромереж, Weights & Biases для трекінгу експериментів.

Як Reinforcement Learning навчається для локального планування?

Навчаємо агента в симуляторі CARLA з фотореалістичною графікою та фізикою. State space включає bird-eye view, власний стан, наступні 20 точок маршруту та сигнали світлофора. Action space — безперервне керування кермом, газом і гальмом. Reward function штрафує за зіткнення, виїзд за смугу та різкі маневри, заохочуючи прогрес по маршруту.

# Reward shaping example
def compute_reward(self, action, info):
    reward = 0
    route_completion = info['route_completion']
    reward += route_completion * 5.0
    target_speed = 30 / 3.6
    speed_diff = abs(info['speed'] - target_speed)
    reward -= speed_diff * 0.1
    if info['collision']:
        reward -= 100.0
    if info['lane_invasion']:
        reward -= 10.0
    if info['red_light_violation']:
        reward -= 50.0
    jerk = abs(action[1] - self.prev_throttle) + abs(action[0] - self.prev_steer)
    reward -= jerk * 0.5
    return reward

Нейромережева архітектура

Використовуємо CNN для обробки bird-eye view та GRU для послідовності шляхових точок. Actor network видає керуючі сигнали. Для мультиагентних сценаріїв застосовуємо Transformer з attention над іншими учасниками.

class ADPlanningNet(nn.Module):
    def __init__(self):
        super().__init__()
        self.bev_encoder = nn.Sequential(
            nn.Conv2d(7, 32, 5, stride=2),
            nn.ReLU(),
            nn.Conv2d(32, 64, 5, stride=2),
            nn.ReLU(),
            nn.Conv2d(64, 128, 3, stride=2),
            nn.ReLU(),
            nn.AdaptiveAvgPool2d(4),
            nn.Flatten()
        )
        self.waypoint_encoder = nn.GRU(2, 64, batch_first=True)
        self.actor = nn.Sequential(
            nn.Linear(2048 + 64 + 5, 256),
            nn.ReLU(),
            nn.Linear(256, 128),
            nn.ReLU(),
            nn.Linear(128, 3),
            nn.Tanh()
        )

Як ми гарантуємо безпеку планування?

Поверх RL-політики встановлюємо формальний шар безпеки: RSS (Responsibility-Sensitive Safety) від Intel та Control Barrier Functions. RSS обчислює безпечну дистанцію в реальному часі та перевизначає дії агента при порушенні. CBF модифікує керуючий сигнал так, щоб гарантовано уникнути зіткнення. Це забезпечує безпеку автономного транспорту. Згідно з роботою Shalev-Shwartz et al. (2017), RSS надає математичні гарантії безпеки.

from cbf_safety import CBFSafetyLayer
safety_layer = CBFSafetyLayer(safety_margin=1.5)
raw_action = rl_policy.predict(state)
safe_action = safety_layer.project(raw_action, obstacles)
Технічні деталі safety-шаруRSS визначає безпечну дистанцію як функцію швидкості, прискорення та реакції. CBF використовує бар'єрні функції для обмеження керуючих сигналів. Обидва методи працюють в реальному часі з latency менше 1 мс.

Процес роботи

  1. Аналіз сценаріїв: вивчаємо типові та критичні ситуації для вашого застосування.
  2. Синтез даних: генеруємо тисячі сценаріїв у CARLA, включаючи adversarial examples.
  3. Навчання RL: тренування на GPU-кластері з трекінгом метрик.
  4. Інтеграція safety layer: налаштування RSS та CBF під ваші вимоги.
  5. Тестування: scenario-based та adversarial тести, оцінка RCR, Infraction Rate, Comfort.
  6. Деплой та підтримка: постачання моделі в контейнері, документація, навчання команди.

Що входить в роботу

  • Навчений RL-агент з налаштованим safety-прошарком.
  • Конфігурація сценаріїв та reward function.
  • Інтеграція у вашу архітектуру (Autoware, ROS2).
  • Документація моделі та API.
  • Навчання двох інженерів.
  • Підтримка 3 місяці.

Строки

Базовий RL-агент для простих міських маршрутів — від 12 тижнів. Повноцінна система з hierarchy, safety та складними сценаріями — від 24 до 48 тижнів. Строки уточнюються після аналізу ваших вимог.

Метрики та результати

Показник Класичний MPC RL + Safety
Route Completion Rate 85% 96%
Infractions per km 0.4 0.12
Comfort (max jerk) 3.2 m/s³ 1.8 m/s³
Latency (p99) 50 ms 12 ms

Порівняння частоти порушень за типами:

Тип порушення MPC RL+Safety
Зіткнення 0.2/km 0.05/km
Виїзд із смуги 0.3/km 0.1/km
Проїзд на червоне 0.01/km 0.001/km

Наша команда має досвід понад 5 років у галузі AI для автономних систем, виконано 20+ проектів. Ми гарантуємо якість результату. Зв'яжіться з нами для оцінки вашого проекту — ми підберемо оптимальне рішення. Запитуйте консультацію вже сьогодні.

Напрямки AI-розробки

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1543
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1394
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1081
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1374
  • Розробка логотипу компанії B2B Advance
    Розробка логотипу компанії B2B Advance
    816
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1142