第一章:课程导论——车辆运动学模型简介、路径生成与轨迹规划的区别、课程目标与学习路径
各位同学,欢迎来到《车辆运动学约束下的路径生成》课程。
我是这门课的主讲。在自动驾驶领域摸爬滚打这些年,我踩过不少坑,也积累了一些经验。今天开始,我会把这些东西一点一点掰开揉碎了讲给你们听。
先说说这门课到底要干什么。
1.1 车辆运动学模型——说白了就是车怎么动
你想想看,一辆车在路上跑,它不能像人一样原地转圈,也不能像无人机那样横着飞。它有自己的脾气——前轮转向、后轮驱动,转弯半径有限。
这就是运动学约束。
我刚开始做路径规划时,犯过一个低级错误:规划出来的路径,车根本走不了。为什么?因为没考虑最小转弯半径。嗯,那次测试车直接怼上了路沿石,还好速度慢,不然后果...
所以,运动学模型就是描述车辆运动规律的数学工具。最经典的是自行车模型(Bicycle Model),它把四轮车简化成两轮,前轮控制转向,后轮负责驱动。
核心公式(自行车模型):
x_dot = v * cos(θ)
y_dot = v * sin(θ)
θ_dot = v * tan(δ) / L
其中:
(x, y) —— 车辆后轴中心位置
θ —— 航向角
v —— 车速
δ —— 前轮转角
L —— 轴距
这个模型简单,但够用。我在实际项目中,90%的场景都用它。除非你要做高速漂移或者特种车辆控制,那才需要更复杂的模型。
1.2 路径生成 vs 轨迹规划——别搞混了
这两个概念,我见过太多人混为一谈了。
路径生成(Path Generation): 只关心空间上的几何曲线。从A点到B点,怎么走?不考虑时间,不考虑速度。
轨迹规划(Trajectory Planning): 在路径的基础上,加上时间维度。什么时候加速?什么时候减速?什么时候转弯?
举个例子:
| 对比项 | 路径生成 | 轨迹规划 |
|---|---|---|
| 输出 | 一系列点 (x, y) | 一系列点 (x, y, t, v, a) |
| 约束 | 几何约束(转弯半径、曲率) | 几何约束 + 动力学约束(加速度、 jerk) |
| 典型算法 | Dubins曲线、Reeds-Shepp曲线 | 多项式规划、优化方法 |
我个人习惯:先做路径生成,再做轨迹规划。分两步走,逻辑清晰,调试也方便。我曾经在一个项目中,试图一步到位,结果代码写了一周,bug修了半个月...后来老老实实拆成两步,两天搞定。
避坑指南: 路径生成不考虑时间,但一定要考虑曲率连续性。否则轨迹规划阶段会很难受——加速度跳变,乘客会晕车。
1.3 课程目标——学完你能干什么
这门课不是纯理论课,也不是纯工程课。我的目标是:
- 理解核心模型: 自行车模型、阿克曼转向模型,以及它们的适用场景
- 掌握经典算法: Dubins曲线、Reeds-Shepp曲线、多项式曲线、B样条曲线
- 学会工程实现: 从数学公式到C++/Python代码,能跑通、能调参
- 具备避坑能力: 哪些参数容易出问题?哪些场景算法会失效?
说白了,学完这门课,你拿到一个路径规划任务,能快速选对算法、写出代码、调通效果。
1.4 学习路径——我建议你这样学
这门课共30章,我建议按这个节奏来:
- 前5章: 打好数学基础。运动学模型、坐标系变换、曲线理论。这部分枯燥,但必须啃下来。
- 第6-15章: 经典路径生成算法。每章一个算法,从原理到代码。
- 第16-25章: 进阶内容。带约束的路径优化、多目标权衡、实时性优化。
- 第26-30章: 实战项目。用真实场景数据,跑通完整流程。
注意: 不要跳着看。运动学模型没搞懂,后面学Dubins曲线会一脸懵。我见过太多人上来就啃论文,结果越看越糊涂。
每章我都会留一个小练习。别偷懒,动手写代码才是最快的进步方式。
好了,第一章就到这里。下一章我们开始正式讲自行车模型,我会带着你们一步步推导公式,然后写代码验证。
有什么问题,欢迎随时交流。
公众号:蓝海资料掘金营,微信deep3321