2. 车辆运动学模型:几何关系与自行车模型

运动学模型,说白了就是不考虑力、不考虑质量、不考虑轮胎滑移,只从几何关系去描述车辆怎么动。你可能会问:这玩意儿靠谱吗?我在实际项目中用过很多次,答案是——在低速场景下,它比很多复杂的动力学模型还好使。

2.1 基于几何关系的运动学模型

我们先从最直观的角度想。一辆车在平面上运动,它的状态可以用三个量描述:位置 (x, y) 和朝向角 θ。如果车速是 v,前轮转角是 δ,那车辆下一时刻的位置怎么算?

嗯,其实就是简单的几何投影:

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

这里 L 是轴距。第三个式子最关键——它描述了车辆如何转弯。曲率半径 R = L / tan(δ),这个公式我在做自动泊车项目时天天用。

核心要点: 运动学模型假设车辆在每一时刻都绕一个瞬时转动中心(ICR)做圆周运动。这个假设在低速时非常准确。

2.2 自行车模型(Bicycle Model)推导

自行车模型,名字听着简单,但它是车辆运动学里最经典的简化。为什么叫自行车?因为把四轮车辆等效成了前后两个轮子——前轮负责转向,后轮负责驱动。

我刚开始做车辆控制时,总觉得这个简化太粗暴。后来发现,在大多数运动学场景下,左右轮的差异可以忽略不计。你想想看,低速转弯时,左右轮转角差也就一两度,对整体轨迹影响微乎其微。

推导过程其实不复杂。我们定义:

  • 状态量: [x, y, θ, δ] — 位置、朝向、前轮转角
  • 控制量: [v, ω_δ] — 车速、前轮转角速度
  • 轴距: L

完整的自行车模型状态方程:

x_dot = v * cos(θ)
y_dot = v * sin(θ)
θ_dot = v * tan(δ) / L
δ_dot = ω_δ

这里 δ_dot 是我个人习惯加上的——很多教材直接忽略前轮转角的动态,但实际控制中,前轮不可能瞬间转到目标角度。我在做路径跟踪时吃过这个亏,后来老老实实把 δ 作为状态量处理。

我的经验: 如果你用卡尔曼滤波做状态估计,建议把 δ 也放进状态向量。否则滤波结果会出现明显的滞后,尤其是在频繁转向的场景。

2.3 运动学模型的适用条件

运动学模型不是万能的。我列个表,你一看就明白:

场景 适用性 原因
低速泊车(< 5 km/h) ✅ 非常适用 轮胎滑移可忽略,几何关系主导
园区低速巡航(< 20 km/h) ✅ 适用 侧向加速度小,轮胎线性区工作
城市道路(30-60 km/h) ⚠️ 有条件适用 需考虑轮胎侧偏,建议用动力学模型
高速行驶(> 80 km/h) ❌ 不适用 轮胎滑移显著,运动学模型失效
冰雪/湿滑路面 ❌ 不适用 低附着系数下轮胎滑移严重

我曾经踩过的坑: 在一个园区物流项目中,我用运动学模型做轨迹预测,车速大概15 km/h。结果在转弯时预测轨迹和实际轨迹差了将近半米。后来发现是轮胎侧偏导致的——运动学模型完全没考虑这个。从那以后,只要车速超过10 km/h,我都会加一个侧偏角补偿。

2.4 运动学模型的局限性

说白了,运动学模型最大的问题就是太「理想」。它假设:

  1. 无滑移: 轮胎与地面纯滚动,没有侧向滑移
  2. 无侧偏: 轮胎速度方向与轮子朝向完全一致
  3. 刚体假设: 车辆是绝对刚体,不考虑悬架变形
  4. 低速假设: 离心力可忽略,不影响轮胎受力

这些假设在现实中几乎都不成立。但为什么我们还在用?因为简单、计算快、在低速场景下足够准。你想想看,做卡尔曼滤波时,如果模型太复杂,计算量上去了,实时性就下来了。工程上讲究的是「够用就好」。

我个人的建议是:

  • 车速 < 10 km/h:放心用运动学模型
  • 10-30 km/h:加侧偏角补偿后可用
  • > 30 km/h:老老实实上动力学模型

2.5 知识结构总览

下面这张图把本章的核心逻辑串起来了。你可以把它当作一个快速参考:

车辆运动学模型知识结构 运动学模型 几何关系模型 自行车模型 状态:[x, y, θ] 控制:[v, δ] 状态:[x, y, θ, δ] 控制:[v, ω_δ] 适用条件:低速、高附着、无滑移 核心区别:几何模型只描述位置变化,自行车模型额外考虑了前轮转角动态 两者在低速场景下精度接近,但自行车模型更适合控制器的状态反馈设计

这张图把本章的三个核心内容串在了一起。从左到右看:先有几何关系模型,然后演化出自行车模型,最后落到适用条件。我个人习惯在项目开始时先用这张图做「模型选型」——根据车速和场景,快速判断该用哪个模型。