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。控制关注跟踪误差、响应延迟和执行器限制。
二、模块之间的数据流与坐标系关系
联调时最容易出问题的不是算法本身,而是模块之间的“接口”。感知在车辆坐标系输出障碍物,定位把车辆坐标系转换到世界坐标系,地图提供世界坐标系下的车道信息,预测在世界坐标系下输出未来轨迹,规划再把这些统一到同一时空基准下。若坐标系、时间戳或单位不一致,就会出现“车明明在车道内,规划却认为压线”的典型问题。
三、典型场景:一次变道请求如何穿过全链路
假设车辆在城市快速路行驶,规划模块决定向右变道。感知先检测到右后方有一辆快速接近的车辆,输出其位置和速度;定位给出自车精确位姿;地图提供右侧车道是否存在、是否允许变道;预测判断右后方车辆未来 3 秒可能直行或加速;规划综合这些信息,决定“等待”还是“执行变道”;控制则把规划出的横向轨迹转化为方向盘转角。若预测把后车速度低估 2 m/s,规划可能做出过于激进的变道决策,控制再精准也无法避免风险。
四、常见术语速查表
| 术语 | 所属模块 | 含义 | 联调关注点 |
|---|---|---|---|
| Obstacle | 感知 | 检测到的障碍物,含位置、速度、类别 | ID 稳定性、时间戳、坐标系 |
| HD Map | 地图 | 高精地图,含车道、路口、限速等 | 版本一致性、坐标对齐 |
| Routing | 规划 | 从起点到终点的全局路径 | 起终点有效性、地图匹配 |
| Trajectory | 规划/预测 | 带时间戳的位姿序列 | 时间步长、坐标系、速度单位 |
| MPC | 控制 | 模型预测控制,滚动优化控制量 | 预测时域、控制周期、延迟 |
| TF | 定位/感知 | 坐标变换关系 | 外参标定、时间同步 |
五、联调中的典型误区与复盘
# 联调排查常用检查项
1. 各模块输出时间戳是否单调递增、是否对齐
2. 障碍物/轨迹坐标系是否统一到世界坐标系
3. 速度单位是 m/s 还是 km/h
4. 规划轨迹时间步长是否与控制周期匹配
5. 地图版本与定位地图是否一致
6. 控制延迟是否在规划预测时域内被补偿
理解这些基本概念与术语,是后续 Apollo 预测规划控制联调的基础。只有先让各模块“说同一种语言”,才能进一步讨论算法优化、参数整定和场景验证。