2. 自动驾驶基础
理解影子模式之前,必须先建立自动驾驶系统的基本坐标系:车辆到底“自动”到什么程度,系统内部由哪些模块协作,以及影子模式处在这条研发链路中的什么位置。本节围绕 SAE 分级、感知—决策—规划—控制主链路,以及影子模式在自动驾驶开发中的定位展开,为后续车端数据工程打下概念基础。
一、SAE 分级:从人工驾驶到完全自动化
SAE J3016 将驾驶自动化划分为 L0 到 L5 六个等级,核心区别不在于“有没有辅助功能”,而在于动态驾驶任务(DDT)由谁承担、谁负责监控、谁负责兜底。L0 至 L2 属于驾驶辅助阶段,驾驶员始终是驾驶主体;L3 是有条件自动驾驶,系统在限定设计运行域(ODD)内完成 DDT,但驾驶员需在系统请求时接管;L4 在特定 ODD 内无需人类接管,L5 则覆盖全部场景。
| 等级 | 名称 | DDT 执行 | 监控与接管 | 典型能力 |
|---|---|---|---|---|
| L0 | 无自动化 | 驾驶员 | 驾驶员 | 仅预警、报警 |
| L1 | 驾驶辅助 | 驾驶员 + 系统 | 驾驶员 | 纵向或横向单一控制 |
| L2 | 部分自动化 | 系统 | 驾驶员 | 同时控制横向与纵向 |
| L3 | 有条件自动化 | 系统 | 系统请求时驾驶员接管 | 限定 ODD 内完成 DDT |
| L4 | 高度自动化 | 系统 | 系统 | ODD 内无需人类接管 |
| L5 | 完全自动化 | 系统 | 系统 | 全场景、全工况 |
需要特别注意的是,L2 与 L3 之间存在“责任跃迁”。L2 阶段驾驶员必须持续监控,系统只是辅助;L3 阶段系统在 ODD 内成为驾驶主体,但一旦发出接管请求,驾驶员必须在有限时间内响应。这一差异直接决定了影子模式在不同等级下的数据采集重点:L2 更关注驾驶员行为与系统输出的差异,L3/L4 更关注系统决策边界与 ODD 退出条件。
二、感知—决策—规划—控制:自动驾驶主链路
无论等级高低,自动驾驶系统的基本工作流都可以抽象为四个核心模块,它们构成一条从环境输入到车辆动作的闭环链路。
- 感知(Perception):通过摄像头、激光雷达、毫米波雷达、IMU、GNSS 等传感器获取原始数据,完成目标检测、跟踪、车道线识别、可行驶区域分割、障碍物测距与测速,输出结构化环境模型。
- 决策(Decision):基于感知结果、高精地图、导航信息和交通规则,判断当前场景语义,决定行为意图,例如跟车、变道、超车、让行、停车。
- 规划(Planning):将决策意图转化为时空轨迹,包括路径规划与速度规划,输出满足安全性、舒适性、动力学约束的行驶轨迹。
- 控制(Control):将规划轨迹转化为油门、刹车、转向等执行器指令,通过 PID、MPC 等控制器实现横向与纵向跟踪。
这条链路可以用下面的信号流图表示。图中同时标出了影子模式的数据采集点:它并不替代主链路,而是以“旁路监听”的方式,从感知、决策、规划、控制各环节抽取信号,与人类驾驶行为进行对照。
三、影子模式在自动驾驶开发中的定位
影子模式(Shadow Mode)是一种不接管车辆控制、只进行旁路计算与数据记录的运行模式。系统在真实车辆上运行完整的感知、决策、规划算法,但输出结果不发送给执行器,而是与人类驾驶员的实际操作进行对比。它的核心价值在于:用真实道路上的海量场景,验证算法“如果由它来开,会怎么开”,从而发现长尾问题。
从开发流程看,影子模式位于“数据采集”与“模型迭代”之间,是连接路测与训练的关键环节。典型工作流程如下:
- 车辆由人类驾驶员正常驾驶,自动驾驶系统在后台同步运行。
- 系统记录感知结果、决策意图、规划轨迹、控制指令,以及人类驾驶的转向、油门、刹车信号。
- 车端或云端进行时间对齐与差异计算,识别“系统与人类不一致”的片段。
- 对差异片段进行场景挖掘、自动标注和难例筛选。
- 将高价值数据回灌到训练集,驱动感知与规划模型迭代。
关键定位:影子模式不是自动驾驶的一个等级,也不是一个独立功能,而是一种研发验证手段。它让算法在“不承担安全责任”的前提下,获得真实世界的闭环反馈。
四、典型场景与常见误区
以城市路口右转为例:人类驾驶员可能选择缓慢蠕行、观察非机动车后再通过;而规划模块可能因为保守策略直接停车等待。影子模式会记录这一差异片段,标注为“右转博弈场景”,并回灌训练。类似场景还包括加塞处理、无保护左转、施工区绕行、鬼探头等。
常见误区一:把影子模式当成“自动驾驶功能”宣传。实际上它不控制车辆,驾驶员始终承担全部驾驶责任。
常见误区二:只记录传感器原始数据,忽略决策与规划中间结果。缺少中间信号,后续很难定位问题出在感知、决策还是规划。
常见误区三:不做时间同步。多传感器、人类操作、系统输出若不在统一时基下对齐,差异分析将失去意义。
在车端数据工程中,影子模式通常需要处理高带宽数据流。以下是一个简化的车端记录配置示例,用于说明需要同步落盘的关键信号:
shadow_mode:
enabled: true
sync_domain: "gps_pps" # 统一时基
record:
perception: ["objects", "lanes", "freespace"]
decision: ["intent", "scene_tag"]
planning: ["trajectory", "speed_profile"]
control: ["steer_cmd", "accel_cmd", "brake_cmd"]
human: ["steer_angle", "throttle", "brake_pedal"]
trigger:
diff_threshold: 0.35 # 轨迹差异阈值
min_duration_ms: 800
upload:
priority: "high_value_clips"
format: "mcap"
总结来看,SAE 分级回答了“系统能做什么”,感知—决策—规划—控制回答了“系统怎么做”,而影子模式回答了“系统做得对不对、哪里还不够好”。三者共同构成自动驾驶研发的基础认知框架,也是后续车端数据采集、回传与闭环迭代的起点。