2. 自动驾驶基础
在进入强化学习与约束控制之前,必须先建立对自动驾驶系统本身的整体认知。自动驾驶并不是“把方向盘交给神经网络”这么简单,它是一套由分级标准、分层架构、感知—决策—规划—控制闭环以及大量安全约束共同构成的复杂工程系统。理解这些基础,才能明白后续强化学习究竟在优化什么、约束控制又在限制什么。
一、自动驾驶分级:从L0到L5
目前国际通用的分级标准来自SAE J3016,核心区分维度是动态驾驶任务(DDT)由谁执行、谁负责监控、谁承担接管。L0—L2属于“人主导”,系统只是辅助;L3是分水岭,系统在特定条件下可完成全部DDT,但人仍需在请求时接管;L4—L5则进入“系统主导”,L4限定运行设计域(ODD),L5则无场景限制。
| 等级 | DDT执行 | 监控主体 | 接管责任 | 典型能力 |
|---|---|---|---|---|
| L0 | 驾驶员 | 驾驶员 | 驾驶员 | 仅报警提示 |
| L1 | 人机共驾 | 驾驶员 | 驾驶员 | 纵向或横向其一 |
| L2 | 系统 | 驾驶员 | 驾驶员 | 同时控制纵横,需手握方向盘 |
| L3 | 系统 | 系统/人 | 系统请求后人接管 | 特定ODD内自动驾驶 |
| L4 | 系统 | 系统 | 系统 | 限定区域无人驾驶 |
| L5 | 系统 | 系统 | 系统 | 全场景无人驾驶 |
分级的关键不是“功能多少”,而是责任边界。L2与L3看似只差一级,但接管责任从人转移到系统,安全设计、冗余要求和验证方法会发生质变。
二、系统架构:感知—决策—规划—控制闭环
典型自动驾驶系统采用分层架构:感知层负责“我在哪、周围有什么”,决策层负责“我该做什么”,规划层负责“怎么走”,控制层负责“如何精确执行”。四层之间通过数据流串联,并共享高精地图、定位与V2X信息。
数据流方向清晰:传感器原始数据经感知层融合为障碍物列表与自车状态,决策层据此选择驾驶行为,规划层生成满足动力学与安全约束的轨迹,控制层输出执行器指令。同时,安全监控层贯穿全链路,一旦发现风险超限,立即触发降级或接管。
三、典型应用场景与ODD
不同应用场景对应不同的ODD,也决定了安全挑战的侧重点:
- 高速巡航:结构化道路、车速高、场景相对简单,但容错时间极短,对感知距离和控制精度要求高。
- 城市道路:人车混行、红绿灯、加塞频繁,博弈与交互决策是核心难点。
- 园区/港口:低速、封闭、规则明确,适合L4率先落地,但需处理临时障碍与装卸作业。
- 泊车场景:低速、空间受限,对路径规划和超声波/环视感知要求高。
四、安全挑战与常见误区
自动驾驶安全挑战可归纳为四类:感知不确定性(遮挡、逆光、雨雾)、决策博弈性(他车意图不可控)、规划约束性(动力学极限与舒适性冲突)、控制实时性(延迟与执行误差)。这些挑战正是强化学习与约束控制要共同面对的问题。
常见误区一:把L2宣传成“自动驾驶”,导致驾驶员过度信任、脱手脱眼。误区二:只关注平均性能,忽视长尾场景与极端工况。误区三:认为强化学习可以端到端替代所有模块,忽略安全约束与可解释性。工程上更合理的做法是:学习负责策略优化,约束控制负责安全兜底。
# 典型安全约束参数示例(简化)
TTC_min = 1.5 # 最小碰撞时间(s)
d_safe_min = 3.0 # 最小安全距离(m)
a_max = 3.0 # 最大纵向加速度(m/s^2)
jerk_max = 5.0 # 最大加加速度(m/s^3)
steer_max = 0.5 # 最大前轮转角(rad)
latency_max = 100 # 控制链路最大延迟(ms)