一、速度约束基础

1.1 速度约束的定义

速度约束,说白了就是给自动驾驶车辆划定一个速度的「天花板」和「地板」。它不是一个单一数值,而是一组动态变化的边界条件。

我习惯把它理解成三部分:

  • 上限约束:车辆不能超过的最高速度。比如高速上的120km/h限速。
  • 下限约束:某些场景下的最低速度要求。比如高速上不能低于60km/h。
  • 动态约束:根据路况、曲率、障碍物实时调整的速度边界。

用数学语言表达就是:

v_min(t) ≤ v(t) ≤ v_max(t)

其中:
v(t) —— 当前时刻的车辆速度
v_min(t) —— 当前时刻的最小允许速度
v_max(t) —— 当前时刻的最大允许速度

嗯,这里要注意,v_min和v_max都是时间的函数。它们会随着环境变化而实时更新。

1.2 物理意义

速度约束不是凭空拍脑袋定的。它背后有扎实的物理逻辑。

先说上限为什么存在。

你想想看,一辆车在弯道上跑,速度太快会怎么样?离心力超过轮胎抓地力,直接推头或者甩尾。这个临界速度就是物理上限。

公式长这样:

v_max_curve = √(μ · g · R)

其中:
μ —— 路面附着系数
g —— 重力加速度
R —— 弯道曲率半径

我在项目中遇到过一件事。有一次测试车在匝道上,地图给的限速是40km/h,但实际路面湿滑,μ值只有0.3。按公式算下来,安全速度只有25km/h左右。幸亏系统提前识别了路面状态,把速度压下来了。要是完全依赖地图限速,后果不堪设想。

再说下限为什么存在。

高速上开太慢反而是危险的。后车以120km/h的速度接近你,你只有60km/h,相对速度差太大,追尾风险剧增。所以很多国家规定高速最低速度不低于60km/h。

还有一个容易被忽略的点——传感器的工作下限。我记得有一次,激光雷达在低于5km/h时点云质量明显下降,导致障碍物检测出现漏检。从那以后,我在做速度规划时都会给传感器留一个「安全余量」。

核心物理量总结:

约束类型 物理依据 典型场景
弯道速度上限 向心力 ≤ 摩擦力 匝道、急弯
制动距离上限 制动距离 ≤ 可视距离 跟车、路口
最低速度下限 相对速度差安全 高速主路
传感器工作下限 传感器性能边界 低速泊车、拥堵

1.3 在自动驾驶中的重要性

速度约束不是可有可无的「软约束」。它是安全的第一道防线。

第一,安全兜底。

没有速度约束,规划层可能给出一个理论上可行但实际危险的速度。比如前方有静止障碍物,理论制动距离50米,但系统只留了40米。速度约束会强制把速度降到安全范围内。

第二,舒适性保障。

我做过一个实验:同样的弯道,用60km/h过和用45km/h过,乘客的体感完全不一样。60km/h时乘客会明显侧倾,45km/h时几乎无感。速度约束里加入舒适性因子,能大幅提升乘坐体验。

第三,系统冗余。

你想想看,感知模块可能漏检一个障碍物,定位模块可能漂移几米。但速度约束是独立于这些模块的「硬边界」。即使其他模块都出问题,速度约束还在那里兜底。

我的个人经验:

在做速度约束设计时,我建议把约束分为三个层级:

  1. 硬约束:物理极限,不可突破。比如轮胎抓地力极限。
  2. 软约束:舒适性边界,可以适当放宽。比如加速度变化率。
  3. 法规约束:交通规则,必须遵守。比如限速标志。

三层约束取交集,就是最终的速度可行域。

1.4 知识体系框架

下面这张图是我自己梳理的速度约束知识体系,你可以参考一下:

速度约束知识体系 物理约束 法规约束 舒适性约束 · 轮胎抓地力极限 · 制动距离限制 · 电机/发动机功率 · 道路限速标志 · 交通信号规则 · 区域限速要求 · 加速度变化率 · 侧向加速度限制 · 冲击度限制 速度可行域(v_min, v_max) 路径规划 → 速度规划 → 控制执行

这张图展示了我做速度约束设计时的完整思路。从三个来源出发,提取具体参数,融合成速度可行域,最后交给下游模块使用。

避坑指南:

我曾经犯过一个错误——把速度约束设计得太「死」。所有场景都用同一个公式,结果在特殊路况下频繁触发限速,导致车辆表现得很「怂」。后来我改成自适应约束,根据实时环境动态调整参数,效果好了很多。

所以我的建议是:速度约束一定要有自适应能力。不能一套参数打天下。

1.5 小结

速度约束是自动驾驶系统里最基础也最关键的模块之一。它不只是一个数值范围,而是物理、法规、舒适性三方面因素的综合体现。

我个人习惯在设计初期就把速度约束的框架搭好,后面再逐步细化。这样能避免很多后期返工的问题。

记住一句话:速度约束不是限制,而是保护。它保护的是车辆、乘客,还有路上的每一个人。


可可精品资料库