轨迹规划概述
大家好,我是你们这堂课的主讲人。今天咱们聊聊轨迹规划。说实话,在自动驾驶这个庞大的系统里,轨迹规划的位置很特殊——它直接决定了车怎么走、走得稳不稳。
我刚开始做自动驾驶那会儿,总觉得感知和定位才是核心技术。后来踩了不少坑才明白:感知再好,规划不行,车照样开得像新手司机。嗯,咱们今天就把这个基础打牢。
轨迹规划在自动驾驶中的角色
先问大家一个问题:自动驾驶系统里,谁在负责「怎么走」?
感知模块告诉你「前面有车」,定位模块告诉你「你在哪」,决策模块告诉你「该超车还是跟车」。但具体到方向盘打多少度、油门踩多深——这就是轨迹规划的活了。
说白了,轨迹规划就是自动驾驶的「手脚」。它把高层的决策意图,翻译成一条具体的、可执行的路径和时间序列。
核心角色总结:
- 承上启下:连接决策层与控制层
- 安全兜底:确保生成的轨迹不碰撞、不越界
- 舒适保障:决定乘客的乘坐体验
- 效率优化:在安全前提下尽量快
我在项目里遇到过一种情况:决策层说「向左变道」,但轨迹规划生成的路径曲率太大,导致车辆在变道过程中严重侧倾。乘客吓得够呛,投诉电话直接打到产品经理那去了。你看,这就是轨迹规划没做好的后果。
轨迹与路径的区别
这个问题,我每次面试新人都会问。很多人答不上来,或者答得模棱两可。
路径,就是一条几何曲线。它只关心「从A点到B点经过哪些位置」,不关心时间。你可以把它想象成地图上画的一条线。
轨迹,则是在路径的基础上加上了时间维度。它告诉你「什么时刻应该到达什么位置」,还包含了速度、加速度等信息。
| 维度 | 路径 | 轨迹 |
|---|---|---|
| 变量 | 位置 (x, y) | 位置 + 时间 (x, y, t) |
| 关注点 | 几何形状 | 运动状态 |
| 示例 | 导航路线 | 具体怎么开过去 |
| 约束 | 障碍物、道路边界 | 动力学、执行器限制 |
举个例子你就明白了。导航告诉你「前方500米右转」,这是路径。但轨迹会告诉你:前200米保持30km/h,然后减速到20km/h,在路口以0.3m/s²的舒适减速度完成转弯。你想想看,如果只给路径不给轨迹,车怎么控制?
我的经验:在实际工程中,路径规划和轨迹规划往往是分开做的。先粗规划一条路径,再在路径上做速度规划。这样问题分解后,每个子问题都更容易处理。
轨迹可跟踪性的工程意义
好,重点来了。什么叫「可跟踪性」?
你规划出一条轨迹,看起来很完美。但控制器能不能让车真的沿着它走?这就是可跟踪性问题。
我曾经犯过一个典型的错误:规划了一条曲率变化极快的轨迹,理论计算完全没问题。结果实车测试时,方向盘疯狂抖动,车辆根本跟不上。后来分析发现,那条轨迹的曲率变化率超过了转向电机的响应能力。
避坑指南:规划轨迹时,一定要考虑底层控制器的能力边界。我曾经因为忽略了这一点,导致项目延期两周。具体来说,要注意以下几点:
- 最大曲率不能超过转向机构的物理极限
- 曲率变化率要平滑,避免阶跃
- 速度与曲率要匹配——弯道太快,神仙也救不了
可跟踪性的工程意义,说白了就一句话:规划出来的轨迹,必须是控制器能追上的。否则就是纸上谈兵。
这里我给大家画一张图,把轨迹规划的核心逻辑串起来:
从这张图你能看到,轨迹规划不是孤立存在的。它接收上游信息,受多种约束限制,最终输出一条可跟踪的轨迹。每个环节都环环相扣,缺一不可。
我记得有一次在高速场景测试,规划出的轨迹理论曲率只有0.05,但实际跟踪误差却很大。排查了半天,发现是速度规划没做好——在弯道入口处速度降得太急,导致车辆出现瞬态响应滞后。从那以后,我特别强调速度和曲率的联合优化。
可跟踪性的三个关键指标:
- 曲率连续性:至少保证C2连续(曲率变化率连续)
- 速度-曲率匹配:弯道速度不能超过向心加速度限制
- 执行器响应裕度:规划的控制量要留有余量,别卡在极限上
最后说一句实在的。轨迹可跟踪性这个事,理论再漂亮,最终还是要落到实车上。我建议你们在做仿真验证时,一定要加入控制器在环的测试。光看规划结果漂亮没用,得看车能不能跟得上。
好了,这一节的内容就到这。记住:轨迹规划不是画一条好看的线,而是画一条车能走的线。这个区别,决定了你的系统是demo还是产品。
一个小技巧:评估轨迹可跟踪性时,可以计算轨迹的「曲率变化率」和「加加速度(jerk)」。这两个值越小,跟踪难度越低。我一般把曲率变化率控制在0.1 rad/m²以内,jerk控制在2 m/s³以内。