Розробка AI-системи планування траєкторії автономного транспорту Path Planning

Проектуємо та впроваджуємо системи штучного інтелекту: від прототипу до production-ready рішення. Наша команда поєднує експертизу в машинному навчанні, дата-інжинірингу та MLOps, щоб AI працював не в лабораторії, а в реальному бізнесі.
Показано 1 з 1Усі 1566 послуг
Розробка AI-системи планування траєкторії автономного транспорту Path Planning
Складний
від 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-система планування шляху для автономних транспортних засобів

Планування шляху в автономних ТЗ — тривирівневе завдання: глобальне (маршрут A→B), локальне (об'їзд перешкод), реактивне (аварійне гальмування за 100 мс). RL вирішує середній та реактивний рівні, де класичні алгоритми (A*, RRT, MPC) потребують ручного кодування сотень edge cases.

Стек автономного водіння

Сприйняття: LiDAR (Velodyne, OUSTER, Livox) + Camera (RGB, stereo) + Radar + GPS/IMU. Злиття через Kalman Filter або Deep Fusion.

Локалізація: NDT matching, LOAM/LIO-SAM, HD Map matching. Точність: <10 см у містах.

Планування:

  • Глобальне: A* / Dijkstra на HD Map (OpenStreetMap + Lanelet2)
  • Локальне/реактивне: RL, MPC, lattice planner

Управління: Pure Pursuit, Stanley, MPC → сигнали керування/газу/гальм.

Фреймворки: Autoware (ROS2-based, open source), Apollo (Baidu), CARLA (симулятор).

RL для локального планування

CARLA симулятор: Python/C++ API, фотореалістичний рендеринг, фізика транспорту, пішоходи, інші учасники. Ідеально для навчання RL агентів.

State space:

# Bird-eye view (BEV) representation
state = {
    'bev_map': np.zeros((256, 256, 7)),  # occupancy, lanes, route, vehicles...
    'ego_state': np.array([vx, vy, heading, steer, throttle]),
    'route_waypoints': waypoints[:20],   # наступні 20 точок маршруту
    'traffic_light': light_state         # red/green/yellow
}

Action space (неперервний):

action_space = spaces.Box(
    low=np.array([-1.0, 0.0, 0.0]),    # steer, throttle, brake
    high=np.array([1.0, 1.0, 1.0]),
    dtype=np.float32
)
# або дискретний: {turn_left, go_straight, turn_right, stop}

Reward shaping для безпечного водіння:

def compute_reward(self, action, info):
    reward = 0

    # прогрес по маршруту
    route_completion = info['route_completion']
    reward += route_completion * 5.0

    # швидкість (не занадто повільно, не занадто швидко)
    target_speed = 30 / 3.6  # 30 км/год у м/с
    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)
    jerk = abs(action[1] - self.prev_throttle) + abs(action[0] - self.prev_steer)
    reward -= jerk * 0.5

    return reward

Архітектура нейронної мережі

CNN + LSTM для BEV входу:

class ADPlanningNet(nn.Module):
    def __init__(self):
        super().__init__()
        # BEV encoder
        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()
        )  # → 2048

        # waypoints encoder
        self.waypoint_encoder = nn.GRU(2, 64, batch_first=True)

        # actor
        self.actor = nn.Sequential(
            nn.Linear(2048 + 64 + 5, 256), nn.ReLU(),
            nn.Linear(256, 128), nn.ReLU(),
            nn.Linear(128, 3), nn.Tanh()
        )

Transformer для мультиагентних сценаріїв: Увага до інших учасників (пішоходи, автомобілі). Масштабується на змінну кількість об'єктів.

Ієрархічне планування

Level 3: Mission Planner (A* на HD Map)
  → послідовність точок маршруту

Level 2: Behavioral (RL агент)
  → вибір тактики: обгін/слідування/уступка пріоритету

Level 1: Motion Planner (MPC / lattice)
  → траєкторія за 3–5 сек

Level 0: PID Controller
  → команди приводам @ 100 Hz

RL на Level 2 приймає високорівневі рішення (обганяти/не обганяти) за ~10 Hz. MPC на Level 1 забезпечує гладке слідування траєкторією.

Обмеження безпеки

Для автономних ТЗ safety layer над RL обов'язковий:

RSS (Responsibility-Sensitive Safety): Формальна модель безпеки Intel. Обчислює безпечну відстань у реальному часі. Перевизначає дію RL при порушенні умов RSS.

Control Barrier Functions (CBF): Математично гарантоване уникнення зіткнень через модифікацію дій RL агента.

from cbf_safety import CBFSafetyLayer

safety_layer = CBFSafetyLayer(safety_margin=1.5)  # 1.5m буфер

raw_action = rl_policy.predict(state)
safe_action = safety_layer.project(raw_action, obstacles)
# safe_action ≈ raw_action, але гарантовано безпечна

Тестування

Сценарне тестування: CARLA scenarios library — corner cases: раптово побіжав пішохід, автомобіль-привид, слизька дорога.

Adversarial тестування: RL adversarial agent умисно створює складні ситуації для перевірки політики.

Метрики:

  • Route completion rate (RCR) — % успішно завершених маршрутів
  • Infraction rate — порушення на 1 км
  • Comfort: acceleration/jerk метрики

Терміни: 24–48 тижнів

Базовий RL агент у CARLA на прямих міських маршрутах — 12 тижнів. Повна система з ієрархією, safety layer, складними сценаріями — 24–32 тижні. Реальне обладнання (дорожні випробування) — поза межами типового проекту розробки ПО.