Представьте: автономное транспортное средство движется по плотному городскому трафику. Внезапно из-за грузовика выбегает пешеход. Классические алгоритмы планирования траектории 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 функция штрафует за столкновения, выезд за полосу и резкие манёвры, поощряя прогресс по маршруту.
# 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 мс.Процесс работы
- Анализ сценариев: изучаем типичные и критические ситуации для вашего применения.
- Синтез данных: генерируем тысячи сценариев в CARLA, включая adversarial examples.
- Обучение RL: тренировка на GPU-кластере с трекингом метрик.
- Интеграция safety layer: настройка RSS и CBF под ваши требования.
- Тестирование: scenario-based и adversarial тесты, оценка RCR, Infraction Rate, Comfort.
- Деплой и поддержка: поставка модели в контейнере, документация, обучение команды.
Что входит в работу
- Обученный RL-агент с настроенной safety-прослойкой.
- Конфигурация сценариев и reward function.
- Интеграция в вашу архитектуру (Autoware, ROS2).
- Документация модели и API.
- Обучение двух инженеров.
- Поддержка 3 месяца.
Сроки
Базовый RL-агент для простых городских маршрутов — от 12 недель. Полноценная система с hierarchy, safety и сложными сценариями — от 24 до 48 недель. Сроки уточняются после анализа ваших требований. Стоимость разработки базового агента — от $50 000.
Метрики и результаты
| Показатель | Классический 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+ проектов. Мы гарантируем качество результата. Свяжитесь с нами для оценки вашего проекта — мы подберём оптимальное решение. Запросите консультацию уже сегодня.







