运动学模型基础:差速轮、阿克曼、全向轮

做轨迹跟踪,第一步要搞清楚你的机器人到底怎么动。

说白了,运动学模型就是描述「轮子转多少,车体怎么走」的数学关系。我见过不少新手,一上来就调PID参数,结果发现模型都选错了——差速轮的车用阿克曼的算法,那肯定跑偏。

今天咱们把三种主流模型掰开揉碎讲清楚。你想想看,搞懂了这些,后面调参才能有的放矢。

一、差速轮模型

差速轮,最常见,也最直观。两个驱动轮独立控制,靠转速差实现转向。

我记得刚入行时,第一个项目就是给扫地机器人做轨迹跟踪。用的就是差速轮。当时觉得简单,结果一跑起来就原地打转...嗯,后来才发现是轮距参数没标定准。

1.1 运动学方程

差速轮的核心公式就两个:

v = (v_r + v_l) / 2          // 线速度
ω = (v_r - v_l) / L          // 角速度

其中:

  • v_r、v_l:右轮和左轮的线速度
  • L:轮距(两轮中心距离)

反过来,给定目标速度 (v, ω),也能算出每个轮子该转多快:

v_r = v + (ω * L) / 2
v_l = v - (ω * L) / 2

关键点:差速轮无法原地横向移动。它只能前进、后退、转弯。转弯半径由 v/ω 决定。

1.2 实际项目中的坑

我曾经在一个AGV项目里吃过亏。轮距L用卡尺量了,但跑直线时总偏。后来发现——轮胎有磨损,实际滚动半径变了。

我的建议是:轮距和轮径一定要做在线标定。让机器人跑一段已知距离,反算实际参数。别信手册上的标称值。

调优技巧:差速轮做轨迹跟踪时,角速度控制环的带宽要比线速度环高2-3倍。这样转弯才跟得上。

二、阿克曼模型

阿克曼模型,就是汽车转向模型。前轮转向,后轮驱动。你开的车就是这原理。

做室外无人车时,我几乎都用阿克曼。它有个好处:高速稳定性好。差速轮跑快了容易甩尾,阿克曼不会。

2.1 运动学方程

阿克曼模型的核心是「转向几何」:

R = L / tan(δ)                // 转弯半径
ω = v / R                     // 角速度

其中:

  • L:轴距(前后轮中心距离)
  • δ:前轮转向角(平均值)
  • v:后轴中心速度

注意,左右前轮的转向角其实不一样。内侧轮转角更大。这就是「阿克曼几何」的精髓——保证所有轮子绕同一个圆心转。

常见错误:很多人直接用 δ = atan(L / R) 算转向角,但忽略了内外轮差。高速转弯时,这会导致轮胎侧滑严重。

2.2 实际项目中的坑

我记得做园区物流车时,发现轨迹跟踪误差总在弯道处突然变大。查了半天,原来是转向执行器有死区——小角度转向时,电机根本不响应。

我的解决办法:在控制器里加一个「死区补偿」。给转向指令加个偏置,让执行器越过死区。效果立竿见影。

调优技巧:阿克曼模型做轨迹跟踪时,建议用「预瞄控制」。提前看前方1-2个车身距离的路径点,转向响应会更平滑。

三、全向轮模型

全向轮,也叫麦克纳姆轮。它能原地平移、斜着走、任意方向移动。灵活性最高。

我最早接触全向轮是在一个仓储机器人项目里。仓库通道窄,需要机器人侧着身子进去。差速轮做不到,阿克曼更不行。全向轮是唯一解。

3.1 运动学方程

全向轮通常有4个轮子,呈矩形分布。每个轮子由独立电机驱动。运动学关系是:

ω_1 = (v_x - v_y - ω * (a + b)) / r
ω_2 = (v_x + v_y + ω * (a + b)) / r
ω_3 = (v_x + v_y - ω * (a + b)) / r
ω_4 = (v_x - v_y + ω * (a + b)) / r

其中:

  • v_x、v_y:车体在x、y方向的速度
  • ω:车体自转角速度
  • a、b:轮子到车体中心的距离
  • r:轮子半径

看着复杂,其实原理很简单:每个轮子的转速,是「平移分量」和「旋转分量」的叠加。

关键点:全向轮对地面要求高。稍微有点坑洼,轮子上的小滚子就会打滑。室内光滑地面最好用。

3.2 实际项目中的坑

我曾经在一个全向轮项目里翻过车。代码写好了,仿真跑得完美。一上真机,机器人原地转圈不走直线。

排查了两天,发现是轮子安装方向搞反了。全向轮的滚子有45°倾角,装反了运动学就全错了。嗯,从那以后我每次装机都要亲自确认轮子朝向。

调优技巧:全向轮做轨迹跟踪时,建议把 v_x 和 v_y 的控制分开调。先调好x方向,再调y方向,最后调旋转。这样问题定位快。

四、三种模型对比

特性 差速轮 阿克曼 全向轮
自由度 2(前进+旋转) 2(前进+转向) 3(x+y+旋转)
横向移动 ❌ 不能 ❌ 不能 ✅ 可以
高速稳定性 一般 好 差
地面要求 低 低 高
控制复杂度 低 中 高
典型应用 扫地机、AGV 无人车、机器人车 仓储机器人、竞赛

五、知识体系总览

下面这张图,把三种模型的核心逻辑串起来了。我建议你保存下来,调参时对照着看。

运动学模型知识体系 差速轮模型 阿克曼模型 全向轮模型 核心公式 v = (v_r+v_l)/2 ω = (v_r-v_l)/L 转弯半径: v/ω 核心公式 R = L / tan(δ) ω = v / R 阿克曼几何约束 核心公式 ω_i = f(v_x, v_y, ω) 4轮独立控制 平移+旋转叠加 调优要点 • 轮距/轮径在线标定 • 角速度环带宽要高 调优要点 • 死区补偿 • 预瞄控制 调优要点 • 分轴调试 • 地面平整度检查 选型原则:看应用场景,没有万能模型

选模型就像选工具。差速轮是锤子,阿克曼是扳手,全向轮是瑞士军刀。没有哪个最好,只有哪个最合适。

我个人习惯是:室内平地、需要灵活移动的,用全向轮。室外道路、高速行驶的,用阿克曼。成本敏感、结构简单的,用差速轮。

最后提醒一句:无论用哪种模型,运动学参数(轮距、轴距、轮径)一定要实测标定。我见过太多项目,算法调得再好,参数不对全白费。

好了,三种模型的基础就讲到这里。你先把这些搞透,后面讲轨迹跟踪控制算法时,咱们才能聊得深入。

可可精品资料库