车辆运动学模型详解:从自行车到四轮驱动

各位同学好,我是你们的老朋友。今天我们来聊聊无人车路径跟踪里最基础、也最绕不开的一块——车辆运动学模型。

说实话,我刚开始做无人驾驶那会儿,觉得运动学模型不就是个几何关系嘛,有啥好研究的?直到第一次实车测试,车子在低速转弯时直接偏离了预期轨迹,我才意识到——嗯,这里面的门道,比想象中深得多。

一、自行车模型:化繁为简的智慧

先问大家一个问题:一辆四轮汽车,在低速行驶时(比如泊车、校园接驳),它的运动本质是什么?

说白了,就是一个刚体在平面上的旋转+平移。四轮车的转向其实很复杂,但如果我们只关心车辆的整体运动趋势,完全可以把四个轮子「合并」成两个——这就是自行车模型的由来。

核心假设:

  • 车辆低速行驶(通常 < 5 m/s),忽略轮胎侧偏
  • 车辆结构为前轮转向、后轮驱动
  • 左右轮转角相同(阿克曼几何的理想化)

我个人习惯把自行车模型看作「一个带方向的前轮 + 一个固定的后轮」。前轮负责转向,后轮负责提供驱动力。你看,是不是一下子就清晰了?

1.1 状态量与控制量

在自行车模型中,我们通常用三个量来描述车辆状态:

  • x, y:后轴中心点的位置坐标
  • θ:车辆的航向角(车头指向)

控制量有两个:

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

这里有个细节——为什么状态量选后轴中心,而不是质心? 我在项目中遇到过这个问题。后轴中心在低速时几乎不发生侧向滑动,用它作为参考点,模型更稳定。质心嘛,更适合高速动力学模型。

1.2 运动学方程推导

好,我们来推一下核心公式。别怕,其实就是初中几何。

想象一下:后轮沿着车身方向前进,前轮则偏了一个角度 δ。那么后轴中心的速度方向就是车身方向,而前轮的速度方向是偏转后的方向。

根据刚体运动学,后轴中心的速度可以分解为:

dx/dt = v * cos(θ)
dy/dt = v * sin(θ)

航向角的变化率呢?这就要用到瞬时转向半径的概念了。前轮转角 δ 决定了车辆的转弯半径 R:

R = L / tan(δ)

其中 L 是轴距。角速度 ω = v / R,所以:

dθ/dt = v * tan(δ) / L

完整的状态方程就是:

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

你看,就三个方程,简洁得让人舒服。我曾经用这个模型做自动泊车,效果出奇地好——当然,前提是速度够慢。

我的小技巧:在实际代码中,我习惯用离散化形式,比如欧拉法:

x_next = x + v * cos(θ) * dt
y_next = y + v * sin(θ) * dt
θ_next = θ + v * tan(δ) / L * dt

dt 一般取 0.01~0.05 秒,够用了。

二、阿克曼转向几何:让轮子各司其职

刚才的自行车模型假设左右前轮转角相同,但实际车辆不是这样的。你想想看,转弯时内侧轮和外侧轮走的圆弧半径不一样,如果转角相同,轮胎就会「打架」——产生滑移、磨损、甚至转向不足。

阿克曼转向几何就是来解决这个问题的。它的核心思想是:让所有车轮的转向中心交于一点

具体来说,内轮转角 δ_i 和外轮转角 δ_o 满足:

cot(δ_o) - cot(δ_i) = B / L

其中 B 是轮距,L 是轴距。当 δ 较小时,可以近似为:

δ_i ≈ δ - B/(2L) * δ²
δ_o ≈ δ + B/(2L) * δ²

嗯,这里要注意:阿克曼几何只在低速时成立。高速时轮胎侧偏会改变转向中心,那就需要更复杂的模型了。

我曾经踩过的坑:有一次做路径跟踪仿真,用了自行车模型,但实车用的是阿克曼转向。结果在急转弯时,实际轨迹和仿真差了将近 30 厘米。后来我才发现——自行车模型忽略了内外轮转角差,而阿克曼几何在转弯半径小于 5 米时,这个差值非常明显。

建议:如果做低速精确控制(比如自动泊车),一定要用阿克曼几何修正。

三、前轮驱动 vs 四轮驱动:谁更香?

这个问题,我在项目里被问过无数次。直接说结论:

对比项 前轮驱动 (FWD) 四轮驱动 (4WD/AWD)
运动学模型 自行车模型即可 需要分配前后轮驱动力
转向特性 转向不足(推头) 中性或转向过度
控制复杂度 低,2个控制量 高,4个轮速+转向
适用场景 城市低速、泊车 越野、高速、湿滑路面
能耗 高(约多10-15%)

我个人习惯:做路径跟踪控制时,优先用前轮驱动模型。为什么?因为简单、稳定、够用。四轮驱动虽然抓地力强,但控制分配是个大麻烦——前后轮驱动力怎么分?左右轮要不要差速?搞不好反而让控制算法「想太多」。

当然,如果你做的是越野无人车或者高速竞速,四轮驱动是必须的。我记得有一次在砂石路上测试,前驱车稍微给大点油门就打滑,换成四驱后稳如老狗。但代价是——控制器的参数调了我整整两周。

四、三种模型对比总结

好了,我们来捋一捋这三种模型的核心区别:

  • 自行车模型:最简单,适合低速、小转角场景。忽略轮距和内外轮差。
  • 阿克曼几何:在自行车模型基础上,修正了内外轮转角。适合精确低速控制。
  • 四轮驱动模型:最复杂,考虑四个轮子的独立驱动/制动。适合高速、低附着路面。

你可能会问:那我到底该用哪个?我的建议是——从简单开始,逐步加复杂度。先用自行车模型跑通仿真,如果精度不够,再加阿克曼修正。四轮驱动嘛,除非你明确需要,否则别轻易碰。

一句话总结:低速用自行车,精确用阿克曼,越野用四驱。别贪多,够用就行。

五、知识体系结构图

下面我用一张 SVG 图来展示本章的核心逻辑,方便你整体把握:

车辆运动学模型知识体系 车辆运动学模型 自行车模型 阿克曼转向几何 四轮驱动模型 关键特性 • 后轴中心为参考点 • 忽略轮距与内外轮差 • 适合低速(<5m/s) 关键特性 • 内外轮转角不同 • 转向中心交于一点 • 适合精确低速控制 关键特性 • 四个轮子独立驱动 • 需分配前后驱动力 • 适合越野/高速场景 应用建议 低速用自行车 → 精确用阿克曼 → 越野用四驱

这张图把三种模型的关系和适用场景串起来了。你保存下来,以后选模型时拿出来看一眼,心里就有数了。


好了,这一章的内容就到这里。运动学模型是路径跟踪控制的「地基」,地基不牢,后面盖什么楼都晃。下一章我们会进入更刺激的部分——如何用这些模型设计控制器。到时候见!

专注资料整理