Розробка AI-системи для транспорту та безпілотних систем
Автономний транспорт - одне з найбільш капіталомістких та технічно складних застосувань AI. Стек технологій охоплює комп'ютерний зір, планування траєкторії, прийняття рішень у режимі реального часу та системи безпеки. Промислові безпілотники (кар'єрні самоскиди, портові AGV, склади) вже у серійній експлуатації.
Стек автономного водіння
Perception (сприйняття)
Сенсорний масив: LiDAR, камери, radar, ultrasonic. Кожен сенсор має свої переваги та слабкості:
| Сенсор | Плюсы | Минусы |
|---|---|---|
| LiDAR (Velodyne HDL-64E) | Точная 3D карта, работает ночью | Дождь/снег, стоимость |
| Камера | Распознавание знаков/разметки, дёшево | Нет 3D, чувствительна к освещению |
| Radar (77 GHz) | Скорость объектов, работает в метель | Низкое разрешение |
| Ultrasonic | Ближняя зона, парковка | Только <5 метров |
Fusion Architecture:
import numpy as np
import torch
from torch import nn
class SensorFusionNetwork(nn.Module):
"""
Ранняя/поздняя fusion: LiDAR point cloud + camera image → 3D detection
Реализация: PointPillars (быстрее PointNet для LiDAR) + ResNet для камеры
"""
def __init__(self, n_classes=10):
super().__init__()
# LiDAR branch: PointPillars → BEV feature map
self.pillar_vfe = PillarVFE(in_channels=9, out_channels=64)
self.lidar_backbone = nn.Sequential(
nn.Conv2d(64, 128, 3, stride=2, padding=1),
nn.BatchNorm2d(128), nn.ReLU(),
nn.Conv2d(128, 256, 3, stride=2, padding=1),
nn.BatchNorm2d(256), nn.ReLU(),
)
# Camera branch: ResNet50 backbone → projection to BEV
self.camera_backbone = torchvision.models.resnet50(pretrained=True)
self.cam_to_bev = CamToBEVProjection(intrinsics=None)
# Fusion
self.fusion_conv = nn.Conv2d(512, 256, 1)
# Detection head
self.det_head = AnchorFreeDetectionHead(n_classes=n_classes)
def forward(self, lidar_pillars, camera_imgs, lidar_indices):
# LiDAR
lidar_features = self.pillar_vfe(lidar_pillars)
bev_lidar = self.scatter_to_bev(lidar_features, lidar_indices)
lidar_out = self.lidar_backbone(bev_lidar)
# Camera → BEV
cam_features = self.camera_backbone.layer3(camera_imgs)
bev_cam = self.cam_to_bev(cam_features)
# Concat & fuse
fused = torch.cat([lidar_out, bev_cam], dim=1)
fused = self.fusion_conv(fused)
return self.det_head(fused)
Semantic Segmentation:
BEV (Bird's Eye View) Сегментація: кожен воксель/піксель - клас (дорога, пішохід, машина, розмітка). Для міського середовища: SegFormer-B5, для автостради - легші архітектури з 99+ fps.
Prediction (пророцтво поведінки)
Детектувати об'єкт – половина завдання. Найважливіше передбачити: куди він рухається наступні 3-5 секунд.
Social Force Model + LSTM:
Пішоходи взаємодіють соціально: уникають зіткнень, йдуть за групами. Social LSTM захоплює ці взаємодії через пулювання прихованих станів сусідніх агентів.
Transformer-based trajectory prediction:
Wayformer, MotionTransformer: attention по всім агентам і map-елементам → multi-modal імовірнісний прогноз траєкторій (6 гіпотез × їх ймовірності).
Planning & Control
Path Planning:
- Глобальний: A* або Dijkstra по HD-карті (Here HD Live Map, TomTom AutoStream) - Локальний: Lattice Planner або MPC з obstacle avoidance в горизонті 5-10 сек. - Frenet Frame: планування в системі координат уздовж/поперек дороги
MPC Controller:
class VehicleMPC:
"""
Model Predictive Control для управления транспортным средством.
State: [x, y, yaw, v], Control: [steering, acceleration]
"""
def __init__(self, dt=0.1, horizon=20):
self.dt = dt
self.N = horizon
def bicycle_model(self, state, control, L=2.7):
"""Кинематическая велосипедная модель ТС"""
x, y, yaw, v = state
delta, a = control # угол поворота руля, ускорение
x_new = x + v * np.cos(yaw) * self.dt
y_new = y + v * np.sin(yaw) * self.dt
yaw_new = yaw + v / L * np.tan(delta) * self.dt
v_new = v + a * self.dt
return np.array([x_new, y_new, yaw_new, np.clip(v_new, 0, 30)])
Промислові застосування
Кар'єрні самоскиди (Autonomous Haul System): - Komatsu FrontRunner, Caterpillar MineStar: у серійній експлуатації з 2013 року - Основний сенсор: GPS RTK + LiDAR + radar - Продуктивність: +15% vs. пілотовані (немає втоми, оптимальні швидкості)
Портові AGV (Automated Guided Vehicles): - Термінали Rotterdam, Hamburg: 100% AGV для переміщення контейнерів - Навігація: QR-коди на підлозі + LiDAR - Throughput: +20–25% щільності укладання при тій же площі
Склади (AMR - Autonomous Mobile Robots): - Geek+, 6 River Systems, Fetch Robotics - ROS 2 (Robot Operating System) як middleware - Динамічне планування маршрутів: SLAM (Simultaneous Localization and Mapping)
Safety & Certification
Functional Safety (ISO 26262 / SOTIF ISO 21448): - ASIL D: найвищий рівень для критичних систем управління - Redundancy: дублювання ECU, аварійне гальмо - Formal verification: критичні алгоритми верифікуються формальними методами
Термін розробки: 12-24 місяці для повного стеку автономного транспортного засобу; промислові AGV/роботи-6-12 місяців.







