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 运动学模型的局限性
说白了,运动学模型最大的问题就是太「理想」。它假设:
- 无滑移: 轮胎与地面纯滚动,没有侧向滑移
- 无侧偏: 轮胎速度方向与轮子朝向完全一致
- 刚体假设: 车辆是绝对刚体,不考虑悬架变形
- 低速假设: 离心力可忽略,不影响轮胎受力
这些假设在现实中几乎都不成立。但为什么我们还在用?因为简单、计算快、在低速场景下足够准。你想想看,做卡尔曼滤波时,如果模型太复杂,计算量上去了,实时性就下来了。工程上讲究的是「够用就好」。
我个人的建议是:
- 车速 < 10 km/h:放心用运动学模型
- 10-30 km/h:加侧偏角补偿后可用
- > 30 km/h:老老实实上动力学模型
2.5 知识结构总览
下面这张图把本章的核心逻辑串起来了。你可以把它当作一个快速参考:
这张图把本章的三个核心内容串在了一起。从左到右看:先有几何关系模型,然后演化出自行车模型,最后落到适用条件。我个人习惯在项目开始时先用这张图做「模型选型」——根据车速和场景,快速判断该用哪个模型。