一、速度规划概述:它在自动驾驶里到底干什么?
大家好,我是你们这趟速度规划之旅的向导。说实话,每次带新人入门,我总会被问到同一个问题:「路径规划我懂,速度规划不就是让车走慢点走快点吗?」
嗯,这么说对,也不全对。今天咱们就把这事彻底聊透。
1.1 速度规划在自动驾驶中的角色
先打个比方。你想想看,自动驾驶系统就像一个司机团队:
- 感知负责「看」—— 前面有没有车、路有多宽。
- 预测负责「猜」—— 那辆车下一秒会往哪走。
- 路径规划负责「选路」—— 走哪条车道、怎么拐弯。
- 速度规划负责「决定怎么踩油门和刹车」—— 什么时候加速、什么时候减速、减到多慢。
我个人的理解是:路径规划给了车一条「路」,速度规划给了这条路「节奏」。没有节奏,再好的路线也是白搭。
核心观点:速度规划是连接「决策层」和「执行层」的桥梁。它把高层的驾驶意图(比如「让行」、「超车」、「靠边停车」)翻译成具体的、可执行的油门/刹车指令。
我在项目中遇到过最典型的例子:路径规划给出了一条完美的避障轨迹,但速度规划没处理好,车在障碍物前急刹,后排乘客差点撞到前排座椅。你看,路径没问题,体验全砸在速度上了。
1.2 速度规划 vs 路径规划:到底有什么区别?
很多初学者容易把这两者混为一谈。我习惯用一个表格来帮团队新人快速建立认知:
| 对比维度 | 路径规划 | 速度规划 |
|---|---|---|
| 输出是什么 | 一系列离散路径点 (x, y, heading) | 每个路径点上的速度/加速度/时间 (s, v, a, t) |
| 核心约束 | 道路边界、障碍物位置、车辆运动学 | 限速、舒适度、跟车距离、红绿灯时间 |
| 优化目标 | 路径最短、最平滑、避障安全 | 时间最短、能耗最低、体感最舒适 |
| 典型算法 | A*、Dijkstra、Lattice Planner | ST图、QP优化、PID、MPC |
| 通俗理解 | 「走哪条路」 | 「这条路怎么走」 |
说白了,路径规划告诉你「前方50米右转」,速度规划告诉你「现在开始减速,用3秒完成变道,右转时速度控制在15km/h以内」。两者缺一不可。
一个小技巧:我在做系统架构时,习惯把速度规划放在路径规划之后、控制模块之前。这样路径规划只负责「空间上的可行性」,速度规划负责「时间上的可行性」,职责清晰,调试起来也方便。
1.3 速度规划的核心目标:安全、舒适、效率
这三个词听起来很空,对吧?但每一个背后都有血泪教训。我一个个说。
安全 —— 这是底线,没得商量
速度规划里的「安全」,不是简单地「别撞车」。它要保证:
- 跟车距离安全:前车急刹时,你的车能刹住。
- 路口通行安全:绿灯倒计时3秒,是冲过去还是停下来?速度规划必须给出合理决策。
- 限速合规:弯道、匝道、施工区,速度必须降下来。
我曾经踩过一个坑:某次测试中,感知模块把路边的垃圾桶误识别为行人,速度规划直接触发紧急制动。虽然没出事,但后面的车差点追尾。后来我加了一条规则——速度规划必须对「置信度低」的障碍物做降级处理,不能一棍子打死。
避坑指南:安全不是「越慢越好」。在高速上开30km/h,反而是安全隐患。速度规划要找到「当前场景下最安全的速度区间」,而不是一味求慢。
舒适 —— 用户买单的理由
说实话,安全是及格线,舒适才是加分项。我见过太多技术很强的团队,车开得稳如老狗,但乘客晕车晕到吐。为什么?
问题出在加速度和加加速度(jerk)上。速度规划不仅要控制速度,还要控制速度的变化率:
- 加速度 (a):一般控制在 ±2.0 m/s² 以内,急加速/急刹车会让人不适。
- 加加速度 (jerk):控制在 ±0.5 m/s³ 以内,否则会有「顿挫感」。
我个人的经验是:舒适度优化的核心不是「慢」,而是「平滑」。一个平滑的速度曲线,比一个「快但忽快忽慢」的曲线,体感好得多。
效率 —— 商业化的命门
如果一辆自动驾驶车开得比老年代步车还慢,谁会买单?效率就是「在安全和舒适的前提下,尽快到达目的地」。
效率的衡量指标通常包括:
- 通行时间:从A到B花了多久。
- 平均速度:整体车速是否接近道路限速。
- 停车次数:等红灯、让行、避障导致的停车越少越好。
这里有个经典的 trade-off:安全和效率天生矛盾。跟车距离越大越安全,但通行效率越低;加速越平缓越舒适,但通过路口的时间越长。速度规划的本质,就是在三者之间找到最优解。
1.4 一张图看懂速度规划全景
下面这张图是我自己总结的,每次给新人培训都会拿出来讲。它展示了速度规划在整个自动驾驶系统中的位置,以及它内部的核心模块。
从这张图你能看到:速度规划不是孤立存在的。它接收感知、预测、路径规划和决策模块的信息,经过内部的一系列处理(ST图构建、优化、约束检查),最终输出一条包含时间、位置、速度、加速度的轨迹,交给控制模块去执行。
而安全、舒适、效率这三个目标,贯穿了整个流程的始终。任何一个环节的决策,都要在这三者之间做权衡。
1.5 小结:速度规划到底在解决什么问题?
聊了这么多,我想你应该明白了。速度规划不是简单的「加减速」,它解决的是:
- 在什么时间点,以什么速度,以多大的加速度,通过路径上的哪个点。
- 同时保证不撞车、不晕车、不迟到。
我个人觉得,速度规划是自动驾驶系统里最「人性化」的模块。它不像感知那样冷冰冰地识别物体,也不像控制那样机械地执行指令。它需要理解场景、预判风险、照顾乘客感受——说白了,它得有点「情商」。
接下来的课程,我会带你一步步拆解速度规划的每一个环节。从ST图怎么画,到优化问题怎么建,再到实车调试的坑怎么填。准备好了吗?咱们开始动手。