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 等控制器实现横向与纵向跟踪。

这条链路可以用下面的信号流图表示。图中同时标出了影子模式的数据采集点:它并不替代主链路,而是以“旁路监听”的方式,从感知、决策、规划、控制各环节抽取信号,与人类驾驶行为进行对照。

自动驾驶主链路与影子模式旁路采集 传感器 摄像头 / 激光雷达 毫米波 / IMU / GNSS 感知 检测 / 跟踪 / 分割 环境模型输出 决策 场景理解 / 行为意图 跟车 / 变道 / 让行 规划 路径 + 速度轨迹 安全 / 舒适约束 控制 油门 / 刹车 转向执行 影子模式旁路采集层 同步记录感知输出、决策意图、规划轨迹、控制指令,并与人类驾驶行为对齐 人类驾驶行为 方向盘 / 踏板 / 视线 差异分析与数据回灌 场景挖掘 / 标注 / 训练 影子模式不介入车辆控制,只做“同场景下的系统输出与人类行为对照”

三、影子模式在自动驾驶开发中的定位

影子模式(Shadow Mode)是一种不接管车辆控制、只进行旁路计算与数据记录的运行模式。系统在真实车辆上运行完整的感知、决策、规划算法,但输出结果不发送给执行器,而是与人类驾驶员的实际操作进行对比。它的核心价值在于:用真实道路上的海量场景,验证算法“如果由它来开,会怎么开”,从而发现长尾问题。

从开发流程看,影子模式位于“数据采集”与“模型迭代”之间,是连接路测与训练的关键环节。典型工作流程如下:

  1. 车辆由人类驾驶员正常驾驶,自动驾驶系统在后台同步运行。
  2. 系统记录感知结果、决策意图、规划轨迹、控制指令,以及人类驾驶的转向、油门、刹车信号。
  3. 车端或云端进行时间对齐与差异计算,识别“系统与人类不一致”的片段。
  4. 对差异片段进行场景挖掘、自动标注和难例筛选。
  5. 将高价值数据回灌到训练集,驱动感知与规划模型迭代。

关键定位:影子模式不是自动驾驶的一个等级,也不是一个独立功能,而是一种研发验证手段。它让算法在“不承担安全责任”的前提下,获得真实世界的闭环反馈。

四、典型场景与常见误区

以城市路口右转为例:人类驾驶员可能选择缓慢蠕行、观察非机动车后再通过;而规划模块可能因为保守策略直接停车等待。影子模式会记录这一差异片段,标注为“右转博弈场景”,并回灌训练。类似场景还包括加塞处理、无保护左转、施工区绕行、鬼探头等。

常见误区一:把影子模式当成“自动驾驶功能”宣传。实际上它不控制车辆,驾驶员始终承担全部驾驶责任。

常见误区二:只记录传感器原始数据,忽略决策与规划中间结果。缺少中间信号,后续很难定位问题出在感知、决策还是规划。

常见误区三:不做时间同步。多传感器、人类操作、系统输出若不在统一时基下对齐,差异分析将失去意义。

在车端数据工程中,影子模式通常需要处理高带宽数据流。以下是一个简化的车端记录配置示例,用于说明需要同步落盘的关键信号:

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 分级回答了“系统能做什么”,感知—决策—规划—控制回答了“系统怎么做”,而影子模式回答了“系统做得对不对、哪里还不够好”。三者共同构成自动驾驶研发的基础认知框架,也是后续车端数据采集、回传与闭环迭代的起点。