2. 智能驾驶系统基础
智能驾驶系统不是单一算法,而是一条从传感器原始信号到车辆执行器的长链路。路测问题复现与定位的第一步,就是建立“模块地图”:知道每个模块负责什么、输入输出是什么、数据以什么频率和坐标系流动、失效时会在哪里留下痕迹。只有把这条链路拆清楚,才能判断一个异常是感知误检、预测偏差、规划抖动、控制延迟,还是定位漂移或地图错误。
一、核心模块与职责边界
典型智能驾驶系统可划分为六个核心模块。它们并非严格串行,而是存在大量反馈与旁路:
- 感知:将摄像头、激光雷达、毫米波雷达、超声波等原始数据转换为目标级信息,包括障碍物位置、速度、朝向、类别、车道线、可行驶区域和交通标志。
- 定位:融合 GNSS、IMU、轮速、激光/视觉匹配,输出车辆在全局坐标系中的位姿(位置、姿态、速度),并给出置信度。
- 地图:提供先验静态信息,如车道拓扑、限速、路口连接关系、坡度曲率,分为导航地图、ADAS 地图和高精地图。
- 预测:基于感知目标和地图,推断其他交通参与者未来数秒的轨迹分布,输出多模态轨迹及概率。
- 规划:结合定位、地图、预测和导航目标,生成从当前状态到目标点的安全、舒适、合规轨迹,通常分为路由、行为、运动三层。
- 控制:将规划轨迹转化为油门、刹车、转向指令,通过纵向和横向控制器跟踪期望轨迹。
二、数据流与时间同步
各模块以不同频率运行:摄像头约 30Hz,激光雷达 10~20Hz,毫米波雷达 20~50Hz,定位 50~100Hz,规划 10~20Hz,控制 50~100Hz。数据流中必须解决三个问题:时间同步、坐标系统一和消息队列延迟。
时间同步通常采用 PTP 或 gPTP 硬件时间戳,将各传感器数据对齐到同一时间基准。若时间戳偏差超过 20ms,高速场景下目标位置误差可达米级。坐标系统一要求所有模块明确使用车辆坐标系、传感器坐标系还是全局坐标系,并在接口处完成变换。消息队列延迟则常见于 DDS 或 ROS 2 通信中,队列积压会导致规划使用过期感知结果。
# 典型时间同步检查日志
[perception] frame_id=1024, stamp=1712345678.123, latency=12ms
[localization] frame_id=1024, stamp=1712345678.118, latency=8ms
[planning] input_stamp=1712345678.100, output_stamp=1712345678.150
# 若 planning 输入时间戳比 perception 输出早 23ms,说明队列存在积压
三、典型场景:路口右转中的链路失效
以城市路口右转为例。感知检测到右侧非机动车道有骑行者,预测模块判断其将直行通过路口,规划模块据此选择减速让行。若预测误判骑行者会停车,规划可能选择加速通过,控制执行后形成危险冲突。复现时需按链路逐层回放:先确认感知目标是否存在、位置是否准确;再检查预测轨迹是否合理;最后核对规划是否使用了正确的预测结果。
四、模块失效模式与排查清单
| 模块 | 核心输出 | 常见失效模式 | 排查入口 |
|---|---|---|---|
| 感知 | 目标列表、车道线、可行驶区域 | 漏检、误检、ID跳变、距离偏差 | 原始点云/图像回放、目标置信度曲线 |
| 定位 | 全局位姿、速度、置信度 | 漂移、跳变、失锁、多径 | GNSS 质量、IMU 零偏、匹配残差 |
| 地图 | 车道拓扑、限速、路口关系 | 先验过期、车道数错误、限速缺失 | 地图版本、匹配车道 ID、限速字段 |
| 预测 | 多模态轨迹及概率 | 意图误判、轨迹发散、交互失败 | 预测轨迹可视化、概率分布 |
| 规划 | 轨迹、速度曲线、行为决策 | 抖动、急刹、路径不可行、决策僵死 | 规划输入输出对比、代价函数日志 |
| 控制 | 油门、刹车、转向指令 | 跟踪超调、延迟、执行器饱和 | 指令与实车响应曲线、延迟测量 |
五、误区与复盘要点
常见误区有三。第一,把问题归因于单一模块:实际路测中,感知漏检可能由时间同步错误引起,规划抖动可能源于定位跳变。第二,忽视数据频率与延迟:规划使用 100ms 前的感知结果,在高速下意味着数米位置误差。第三,只看最终输出,不看中间置信度:感知置信度低、定位协方差大、预测概率分散,都是潜在风险信号。
建立模块地图和数据流认知,是后续问题复现与定位的基础。只有明确每个模块的职责、接口和失效特征,才能在路测数据中快速缩小范围,找到真正的根因。