一、课程导论:纵向控制的重要性、速度规划与控制的区别、课程整体架构与学习路径
1.1 为什么纵向控制这么重要?
说实话,我刚入行那会儿,也跟很多人一样,觉得自动驾驶嘛,最酷的是转向、是变道、是避障。纵向控制?不就是踩油门和刹车吗?
直到有一次,我在高速测试中遇到了一个场景——前车急刹,我的车虽然检测到了,但减速曲线太陡,后排的测试工程师差点从座位上飞出去。那一刻我才真正意识到:纵向控制做不好,车根本没法用。
纵向控制,说白了就是管理车辆的前后运动。它决定了三件事:
- 安全——能不能在正确的位置停下来
- 舒适——乘客会不会晕车、会不会被吓到
- 效率——能不能跟上车流,不成为路障
我见过太多项目,感知做得再好、规划再完美,最后因为纵向控制太粗糙,整个体验直接崩盘。嗯,这里要注意:纵向控制是自动驾驶的“最后一公里”,它直接决定了用户对这台车的信任感。
核心观点:纵向控制不是简单的PID调参,它涉及车辆动力学、执行器延迟、路面附着系数变化等多个维度的耦合。我个人习惯把纵向控制称为“自动驾驶的底盘功夫”——看似基础,实则最难练。
1.2 速度规划 vs 速度控制:它们到底有什么区别?
这个问题,我每次面试新人都会问。很多人答不上来,或者混为一谈。
我举个例子你就明白了:
速度规划,就像你开车前看导航,知道前面5公里限速120,然后有个弯道要降到80,出弯后再加速。这是“想好怎么走”。
速度控制,是你实际踩油门、踩刹车,让车真的按照那个规划的速度去跑。这是“怎么做到”。
你看,一个是脑子,一个是手脚。
| 维度 | 速度规划 | 速度控制 |
|---|---|---|
| 输入 | 路径、障碍物、交通规则 | 目标速度、当前速度、加速度 |
| 输出 | 速度曲线(时间-速度表) | 油门/刹车指令 |
| 时间尺度 | 秒级到分钟级 | 毫秒级 |
| 核心难点 | 多约束优化、场景理解 | 执行器延迟、非线性补偿 |
| 常用方法 | S-T图、凸优化、A* | PID、MPC、前馈+反馈 |
我曾经在一个项目中,规划层给了一条非常完美的速度曲线,但控制层死活跟不住。查了三天,发现是执行器有200ms的延迟没补偿。你看,规划和控制必须配合好,缺一不可。
我的经验:做纵向控制,一定要先理解规划层给你的目标是什么。如果规划层给的加速度变化率(jerk)太大,控制层再怎么调也救不回来。反过来,控制层如果执行精度不够,规划层再完美的曲线也是白搭。
1.3 课程整体架构:我们怎么学?
这门课一共30章,我把它分成了四个阶段。你想想看,学纵向控制就像学开车,得一步步来。
下面这张图,是我亲手画的课程知识体系,你看一眼就能明白全貌:
1.4 学习路径:我建议你这样走
这门课不是让你从头到尾硬啃的。我设计的时候,特意留了一些“跳转点”。
如果你已经有控制基础(比如做过PID、了解状态空间),可以直接从第7章开始。但如果你是个新手,我建议你老老实实从第1章开始。
为什么?因为纵向控制有个特点:基础不牢,地动山摇。我见过太多人,上来就调MPC,结果连车辆模型都建错了,调出来的参数根本不能用。
避坑指南:我曾经带过一个实习生,他跳过基础篇直接做MPC,花了两周时间调参,结果实车测试时车辆在低速下剧烈抖动。最后发现是轮胎模型参数给错了——他用的轮胎刚度是空载数据,而测试车是满载状态。所以,基础篇的车辆动力学,请务必认真学。
具体的学习路径,我建议这样:
- 基础篇(第1-6章):打好车辆动力学和执行器模型的基础。每章后面的仿真练习一定要做,别只看代码。
- 规划篇(第7-14章):重点理解S-T图和凸优化。这里我会给很多实际道路场景的案例。
- 控制篇(第15-24章):这是核心中的核心。PID、前馈、MPC,每种方法我都会讲透,包括它们的优缺点和适用场景。
- 实战篇(第25-30章):我会带你走一遍完整的开发流程——从仿真到实车,从参数标定到故障诊断。
每章结尾都有练习题,有些是代码题,有些是思考题。我建议你认真做,因为很多坑,只有自己踩过才知道。
一个小建议:准备一个笔记本,记录每章学到的“坑”和“心得”。我到现在还保留着刚入行时的笔记,上面写满了各种参数调废了的经历。这些比任何教科书都珍贵。
1.5 这门课能带给你什么?
说白了,学完这门课,你就能独立完成一个纵向速度规划与控制系统——从需求分析、算法设计、代码实现,到实车调试和性能评估。
这不是那种“纸上谈兵”的课程。每一章都有可运行的代码,每一段代码都经过实车验证。我把我过去五年踩过的坑、总结的经验,都揉进了这门课里。
你想想看,当你能亲手调出一辆车的纵向控制,让它平稳起步、精准跟车、舒适制动,那种成就感,比看任何论文都来得实在。
好了,话不多说。我们开始吧。