第二章 底盘运动学基础:两轮差速模型、四轮转向模型、麦克纳姆轮模型、运动学方程推导

各位同学,欢迎来到底盘运动学的核心章节。说实话,运动学是AGV控制的“地基”。地基没打好,后面做再花哨的传感器融合都是白搭。我个人习惯,每接手一个新项目,第一件事就是先把运动学模型在纸上推一遍。这能帮你避免很多后期调试的坑。

今天咱们要啃三块硬骨头:两轮差速、四轮转向、麦克纳姆轮。我会把每个模型的运动学方程推导过程掰开揉碎了讲,再配上我实际项目中的经验。准备好了吗?我们开始。

核心观点:运动学模型解决的是“给车轮什么速度,车体怎么动”的问题。它是底盘控制的理论基础,也是后续做里程计推算、轨迹跟踪的前提。

2.1 两轮差速模型:最经典的入门模型

两轮差速模型,说白了就是靠左右两个驱动轮的速度差来实现转向。你想想看,坦克、扫地机器人、早期的AGV,基本都是这个原理。结构简单,成本低,是我个人最喜欢用来做原型验证的方案。

先看基本结构:两个驱动轮同轴安装,各自有独立电机驱动。前后各有一个或两个万向支撑轮,只负责支撑,不提供驱动力。

2.1.1 运动学方程推导

我们定义几个关键参数:

  • v:车体中心线速度 (m/s)
  • ω:车体角速度 (rad/s)
  • vL:左轮线速度 (m/s)
  • vR:右轮线速度 (m/s)
  • d:左右轮间距 (m)
  • r:车轮半径 (m)

推导过程其实不复杂。车体中心速度等于左右轮速度的平均值:

v = (v_R + v_L) / 2

角速度呢?想象一下,如果左轮不动、右轮转,车体会绕着左轮中心旋转。角速度等于速度差除以轮距:

ω = (v_R - v_L) / d

把这两个方程联立,就能反推出给定目标速度和角速度时,左右轮各自该跑多快:

v_R = v + (ω * d) / 2
v_L = v - (ω * d) / 2

嗯,这里要注意:公式里的正负号取决于你定义的转向方向。我习惯定义逆时针为正角速度,这样右轮速度会大于左轮。

我的经验:实际项目中,轮距d的测量误差对转向精度影响很大。我曾经在一个项目中,因为轮距量错了5毫米,导致AGV在走圆形轨迹时始终偏了10厘米。后来用激光测距仪重新标定才解决。建议你们用高精度工具测量,别用卷尺凑合。

2.1.2 里程计推算

有了运动学方程,我们就能做里程计了。说白了就是根据轮子编码器的读数,推算车体位置的变化。

假设在Δt时间内,左右轮编码器测得的位移分别为ΔsL和ΔsR

Δs = (Δs_R + Δs_L) / 2
Δθ = (Δs_R - Δs_L) / d

然后更新全局坐标系下的位置:

x' = x + Δs * cos(θ + Δθ/2)
y' = y + Δs * sin(θ + Δθ/2)
θ' = θ + Δθ

这个公式里用了中值角度,精度比直接用θ要高一些。我在做仓储AGV时,用这个方法配合IMU做融合,定位精度能做到±2cm。

避坑指南:我曾经遇到过轮子打滑导致里程计严重漂移的情况。两轮差速模型假设轮子与地面是纯滚动,没有滑动。但实际中,急加速、急刹车、地面湿滑都会破坏这个假设。建议在代码里加入打滑检测逻辑,一旦检测到打滑,就降低里程计的置信度。

2.2 四轮转向模型:灵活性与稳定性的平衡

四轮转向,顾名思义,四个轮子都能转向。这种结构常见于重载AGV和特种车辆。它的优势在于转弯半径小、机动性好,但控制复杂度也上去了。

四轮转向有两种常见模式:

  • 同向模式:前后轮转向角相同,车体横向平移(蟹行)
  • 反向模式:前后轮转向角相反,转弯半径大幅减小

2.2.1 阿克曼转向几何

先讲一个关键概念——阿克曼转向。你可能在汽车上见过:转弯时内侧轮的转向角比外侧轮大。这是为了让所有轮子都绕着同一个瞬时中心旋转,避免轮胎侧滑。

阿克曼转向的几何关系:

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

其中:

  • δo:外侧轮转向角
  • δi:内侧轮转向角
  • L:轴距
  • d:轮距

实际项目中,我很少用纯机械的阿克曼机构,因为加工精度要求太高。更常见的做法是用软件来实现阿克曼补偿——每个轮子独立控制转向角,通过算法让它们满足阿克曼关系。

2.2.2 运动学方程

对于四轮转向车辆,运动学模型稍微复杂一些。我们考虑前后轮都有转向角的情况:

v = 后轮中心速度
β = 质心侧偏角
δ_f = 前轮转向角
δ_r = 后轮转向角

车体的运动方程:

ẋ = v * cos(θ + β)
ẏ = v * sin(θ + β)
θ̇ = v * (tan(δ_f) - tan(δ_r)) / L

质心侧偏角β的计算:

β = arctan( (L_f * tan(δ_r) + L_r * tan(δ_f)) / L )

其中Lf和Lr分别是质心到前后轴的距离。

我的建议:如果你刚开始做四轮转向,先从反向模式入手。这种模式下,车体的运动特性更接近两轮差速,控制逻辑相对简单。等跑通了,再尝试同向模式做蟹行运动。

2.3 麦克纳姆轮模型:全向移动的利器

麦克纳姆轮,这玩意儿我第一次见到是在2015年的一个展会上。当时觉得太神奇了——一个方方正正的底盘,居然能原地旋转、横向平移、斜着走。后来才知道,秘密就在轮子上的那些小辊子上。

每个麦克纳姆轮周围有一圈与轮轴成45°角的小辊子。当轮子转动时,辊子会与地面产生斜向的摩擦力,合成后就能实现全向运动。

2.3.1 运动学方程推导

标准的四轮麦克纳姆轮底盘,轮子编号和安装方向如下:

  • 左前轮(FL):辊子方向与轮轴成+45°
  • 右前轮(FR):辊子方向与轮轴成-45°
  • 左后轮(RL):辊子方向与轮轴成-45°
  • 右后轮(RR):辊子方向与轮轴成+45°

推导过程我直接给结论。设车体目标速度为[vx, vy, ω],四个轮子的转速为:

ω_FL = (1/r) * (v_x - v_y - ω * (L + d))
ω_FR = (1/r) * (v_x + v_y + ω * (L + d))
ω_RL = (1/r) * (v_x + v_y - ω * (L + d))
ω_RR = (1/r) * (v_x - v_y + ω * (L + d))

其中:

  • r:车轮半径
  • L:轮子到车体中心的纵向距离
  • d:轮子到车体中心的横向距离

反过来,如果已知四个轮子的转速,也能反推车体速度:

v_x = (r/4) * (ω_FL + ω_FR + ω_RL + ω_RR)
v_y = (r/4) * (-ω_FL + ω_FR + ω_RL - ω_RR)
ω  = (r/4) * (-ω_FL + ω_FR - ω_RL + ω_RR) / (L + d)

关键点:麦克纳姆轮的运动学方程是线性的!这意味着你可以用矩阵形式来表示,方便在代码里实现。我习惯把方程写成 y = A * x 的形式,然后用矩阵运算库来求解。

2.3.2 实际应用中的坑

麦克纳姆轮虽然灵活,但坑也不少。我踩过的几个:

  • 地面要求高:辊子与地面的接触面积小,对地面平整度很敏感。我在一个工厂项目里,地面有细微的凹凸,结果麦克纳姆轮走起来一颠一颠的,定位精度直接崩了。
  • 磨损问题:辊子一直在旋转摩擦,磨损很快。建议选用聚氨酯材质的辊子,寿命会长一些。
  • 打滑严重:麦克纳姆轮的抓地力不如普通轮子。急加速时打滑是家常便饭。我一般在控制代码里加一个加速度限制,让车体平滑启动和停止。

我曾经踩过的坑:有一次做麦克纳姆轮底盘的里程计,发现y方向(横向)的定位误差特别大。查了两天才发现,是辊子的安装角度有偏差——标称45°,实际只有43°。这个2°的误差,在高速运动时会被放大。后来我加了一个标定流程,用激光雷达做参考,在线修正辊子角度参数。

2.4 三种模型的对比与选型建议

说了这么多,到底该选哪种模型?我整理了一个表格,方便你对比:

特性 两轮差速 四轮转向 麦克纳姆轮
运动自由度 2 (前进/后退 + 旋转) 2 (前进/后退 + 旋转) 3 (全向)
结构复杂度
控制难度
地面适应性
承载能力
典型应用 仓储AGV、扫地机 重载AGV、叉车 精密装配、狭小空间

我个人建议:如果是做通用型AGV,两轮差速是最稳妥的选择。如果对机动性有特殊要求,再考虑麦克纳姆轮。四轮转向更适合重载场景。

2.5 本章知识体系总览

最后,我用一张SVG图把本章的核心逻辑串起来。你可以把它当作知识地图,随时回来查阅。

底盘运动学模型知识体系 运动学模型 两轮差速模型 v = (v_R + v_L)/2 ω = (v_R - v_L)/d 里程计推算 四轮转向模型 阿克曼转向几何 同向/反向模式 质心侧偏角计算 麦克纳姆轮模型 全向运动 (vx, vy, ω) 辊子45°安装 线性方程组求解 实际应用:里程计推算 + 轨迹跟踪 ⚠ 共同挑战:轮子打滑、地面适应性、参数标定

这张图把三种模型的核心公式和应用场景都串起来了。你可以在学习时把它当作导航图,随时定位自己当前在学什么。

好了,这一章的内容就到这里。运动学模型是底盘控制的基石,建议你花时间把每个公式亲手推导一遍。下一章我们会进入更刺激的部分——传感器融合,到时候这些运动学知识会派上大用场。