3. 自动驾驶基础

在进入 Apollo 预测规划控制联调之前,必须先建立一套统一的“语言体系”。自动驾驶系统并不是一个单一算法,而是由多个模块协同工作的复杂工程系统。感知负责“看见世界”,定位负责“知道我在哪”,地图负责“提供先验知识”,预测负责“猜别人要干什么”,规划负责“决定我怎么走”,控制负责“让车真的按计划走”。联调的本质,就是让这些模块在时间、坐标系、数据格式和语义上对齐。

核心链路可以概括为:传感器 → 感知 → 定位/地图 → 预测 → 规划 → 控制 → 车辆执行。任何一个环节的延迟、坐标系错误或语义不一致,都会在最终轨迹上被放大。

一、核心模块与基本术语

感知(Perception):从摄像头、激光雷达、毫米波雷达等传感器数据中检测和识别障碍物、车道线、交通标志、可行驶区域等。感知输出通常包括障碍物的位置、速度、朝向、类别和置信度。常见术语有:检测框(Bounding Box)、语义分割(Semantic Segmentation)、点云(Point Cloud)、目标跟踪(Tracking)。

定位(Localization):确定车辆在全局坐标系中的位置和姿态。常用组合导航、RTK、激光雷达点云匹配、视觉里程计等。定位输出通常是 x, y, z, roll, pitch, yaw 以及速度、加速度。定位精度直接影响规划轨迹是否贴合车道。

地图(Map):高精地图提供车道中心线、车道边界、路口拓扑、限速、停止线等先验信息。Apollo 中常见 HD Map、Routing Map、Local Map。地图不是“背景图”,而是规划决策的重要约束来源。

预测(Prediction):根据感知和地图信息,预测其他交通参与者未来几秒的可能轨迹。输出通常是多条带概率的轨迹,例如“左转概率 0.7,直行概率 0.2,右转概率 0.1”。预测质量决定规划是否保守或激进。

规划(Planning):在满足安全、舒适、交规和任务目标的前提下,生成一条可执行的轨迹。通常分为路由规划(Routing)、行为规划(Behavior Planning)、运动规划(Motion Planning)。输出包括路径点、速度曲线、加速度和转向指令。

控制(Control):把规划轨迹转化为油门、刹车、转向等车辆控制量。常见算法有 PID、MPC、LQR。控制关注跟踪误差、响应延迟和执行器限制。

二、模块之间的数据流与坐标系关系

联调时最容易出问题的不是算法本身,而是模块之间的“接口”。感知在车辆坐标系输出障碍物,定位把车辆坐标系转换到世界坐标系,地图提供世界坐标系下的车道信息,预测在世界坐标系下输出未来轨迹,规划再把这些统一到同一时空基准下。若坐标系、时间戳或单位不一致,就会出现“车明明在车道内,规划却认为压线”的典型问题。

自动驾驶核心模块数据流与坐标系关系 传感器 Camera / LiDAR / Radar 感知 障碍物 / 车道线 定位 x, y, yaw, v 地图 HD Map / Routing 预测 多模态未来轨迹 规划 路径 + 速度曲线 控制 油门 / 刹车 / 转向 车辆执行 底盘 / 线控 统一时空基准 时间戳对齐 坐标系转换 单位统一 语义一致 延迟补偿 坐标原点定义 频率匹配 联调关键:模块间接口的时空一致性,比单个算法精度更影响最终表现

三、典型场景:一次变道请求如何穿过全链路

假设车辆在城市快速路行驶,规划模块决定向右变道。感知先检测到右后方有一辆快速接近的车辆,输出其位置和速度;定位给出自车精确位姿;地图提供右侧车道是否存在、是否允许变道;预测判断右后方车辆未来 3 秒可能直行或加速;规划综合这些信息,决定“等待”还是“执行变道”;控制则把规划出的横向轨迹转化为方向盘转角。若预测把后车速度低估 2 m/s,规划可能做出过于激进的变道决策,控制再精准也无法避免风险。

四、常见术语速查表

术语 所属模块 含义 联调关注点
Obstacle 感知 检测到的障碍物,含位置、速度、类别 ID 稳定性、时间戳、坐标系
HD Map 地图 高精地图,含车道、路口、限速等 版本一致性、坐标对齐
Routing 规划 从起点到终点的全局路径 起终点有效性、地图匹配
Trajectory 规划/预测 带时间戳的位姿序列 时间步长、坐标系、速度单位
MPC 控制 模型预测控制,滚动优化控制量 预测时域、控制周期、延迟
TF 定位/感知 坐标变换关系 外参标定、时间同步

五、联调中的典型误区与复盘

误区一:只看单模块指标。感知 mAP 很高,不代表规划安全;规划轨迹很平滑,不代表控制能跟上。联调要看端到端表现。
误区二:忽略时间戳。感知 100 ms 前的障碍物位置,若未做延迟补偿,规划会基于“过去”做决策,高速场景下误差可达数米。
误区三:坐标系混用。车辆坐标系、世界坐标系、地图坐标系、传感器坐标系必须明确转换链。一次 yaw 符号错误,就可能导致车辆反向打方向。
复盘建议:联调时先固定一个场景,打印各模块输入输出,重点检查时间戳、坐标系、单位和频率。把“接口对齐”当成第一优先级,再谈算法调参。
# 联调排查常用检查项
1. 各模块输出时间戳是否单调递增、是否对齐
2. 障碍物/轨迹坐标系是否统一到世界坐标系
3. 速度单位是 m/s 还是 km/h
4. 规划轨迹时间步长是否与控制周期匹配
5. 地图版本与定位地图是否一致
6. 控制延迟是否在规划预测时域内被补偿

理解这些基本概念与术语,是后续 Apollo 预测规划控制联调的基础。只有先让各模块“说同一种语言”,才能进一步讨论算法优化、参数整定和场景验证。