第2章 车辆运动学模型:自行车模型推导

各位同学,欢迎来到路径跟踪控制的第二关。

今天我们要聊的,是自动驾驶控制里最经典、也最实用的模型——自行车模型。说白了,就是把一辆四轮车,简化成一辆自行车来分析。你可能会问:这靠谱吗?

嗯,我刚开始做控制的时候也有这个疑问。后来在实际项目中跑了几万公里的数据,发现这个模型在大部分场景下,精度完全够用。今天我就把它的推导过程、适用场景,以及我踩过的坑,一次性讲清楚。

2.1 为什么是自行车模型?

真实车辆有四个轮子,转向系统也很复杂。但如果我们只关心车辆在平面上的运动,其实可以做一个大胆的简化:

  • 前轮:合并成一个虚拟轮,负责转向
  • 后轮:合并成一个虚拟轮,负责驱动
  • 车身:简化为一根刚性杆,连接前后轮

你看,这不就是一辆自行车吗?

核心思想:自行车模型假设车辆在运动过程中,左右轮的转角一致,且不考虑轮胎的侧偏特性。它只描述车辆的几何运动关系,不涉及动力学力。

我个人习惯在项目初期先用自行车模型做快速验证。为什么?因为它参数少、计算快,调参也方便。等基本逻辑跑通了,再上更复杂的动力学模型。

2.2 模型假设与适用范围

任何模型都有假设条件。自行车模型也不例外。这里我列出几条关键假设,你最好记在心里:

假设条件 说明 实际影响
车辆在平坦路面行驶 忽略垂向运动和俯仰 坡道场景误差增大
轮胎无侧偏 车轮速度方向与轮朝向一致 高速转弯时误差明显
车辆为刚性体 不考虑悬架变形 颠簸路面不适用
低速行驶(通常 < 10 m/s) 离心力可忽略 高速场景需用动力学模型

⚠️ 我曾经踩过的坑:有一次在高速匝道上做路径跟踪,车速到了15m/s,结果自行车模型给出的控制量完全不对,车辆直接冲出了车道线。后来才发现,高速下轮胎侧偏角已经不可忽略了。所以记住:自行车模型适合低速、小曲率场景。

2.3 前轮转向与后轮驱动模型

在自动驾驶领域,我们通常把车辆分为两种驱动方式:

  • 前轮转向 + 前轮驱动(FF):常见于家用轿车
  • 前轮转向 + 后轮驱动(FR):常见于性能车和卡车

但不管哪种,在自行车模型里,我们都统一处理为:前轮控制转向角 δ,后轮提供驱动力。

为什么这么处理?因为路径跟踪控制的核心是横向控制,也就是控制车辆的方向。驱动方式对横向动力学的影响,在低速时可以忽略。

2.4 运动学方程推导

好,现在我们来推导核心公式。你想想看,一辆自行车在平面上运动,它的状态可以用三个量描述:

  • x:车辆后轴中心在全局坐标系下的 x 坐标
  • y:车辆后轴中心在全局坐标系下的 y 坐标
  • θ:车辆的航向角(车头朝向与 x 轴正方向的夹角)

控制输入有两个:

  • v:后轮速度(纵向速度)
  • δ:前轮转向角

那么,运动学方程就是:

dx/dt = v * cos(θ)
dy/dt = v * sin(θ)
dθ/dt = v * tan(δ) / L

其中 L 是车辆的轴距(前后轮之间的距离)。

这个方程组看起来简单,但信息量很大。我来解释一下:

  • 前两个方程:车辆在 x 和 y 方向上的速度分量,就是速度 v 在对应方向上的投影。
  • 第三个方程:航向角的变化率(也就是横摆角速度),等于速度乘以转向角的正切,再除以轴距。

为什么会这样?你可以想象一下:前轮转向后,车辆会绕一个圆心做圆周运动。这个圆的半径 R = L / tan(δ)。而角速度 ω = v / R = v * tan(δ) / L。嗯,就是这么来的。

💡 个人经验:在实际代码中,我通常用离散化的形式来更新车辆状态。比如用欧拉法:

x_new = x + v * cos(θ) * dt
y_new = y + v * sin(θ) * dt
θ_new = θ + v * tan(δ) / L * dt

dt 是控制周期,一般取 0.01~0.1 秒。注意 dt 不能太大,否则离散误差会累积。

2.5 知识体系结构图

为了让你更直观地理解本章的知识脉络,我画了一张图:

自行车模型知识体系 真实车辆 → 自行车模型 模型假设 平坦路面 | 无侧偏 | 刚性体 | 低速行驶 运动学方程 dx/dt = v·cos(θ) dy/dt = v·sin(θ) dθ/dt = v·tan(δ) / L 适用范围 低速泊车 | 园区物流 | 城市工况(<36km/h) | 路径跟踪控制

2.6 实际应用中的注意事项

方程推导完了,但实际用起来还有几个坑。我一个个说:

  1. 转向角限制:真实车辆的前轮转角是有限制的,一般最大在 ±30° 左右。代码里一定要做限幅处理。
  2. 速度不能为零:当 v = 0 时,第三个方程会出现奇异。所以停车状态下不要用这个模型。
  3. 轴距 L 的测量:不同车型轴距不同。我建议你实际测量一下,不要只看参数表。有一次我用标称值,结果控制精度差了 5%。
  4. 离散化误差:如果控制周期 dt 太大,模型会失真。一般建议 dt ≤ 0.05s。

总结一下:自行车模型是路径跟踪控制的基石。它简单、高效,适合低速场景。但你要清楚它的假设条件,知道什么时候该用,什么时候该换。

下一章我们会在这个模型的基础上,设计具体的控制器。到时候你会发现,今天的推导有多重要。

可可精品资料库