1. 轮子与运动:从轮子转速到机器人速度的映射关系

大家好,我是你们的老朋友。今天咱们聊聊机器人运动控制里最基础、也最绕不开的一个话题——轮子转速怎么变成机器人速度的。

说白了,机器人不会自己思考怎么走。它只知道电机转了多少圈。我们要做的,就是把这「圈圈转数」翻译成「往前走多快、往哪拐弯」。这个翻译过程,就是运动学映射。

我个人习惯把这个问题拆成两步:先搞清楚轮子怎么装,再搞清楚轮子转起来机器人怎么动。今天重点讲两种最常见的装法——差速驱动和阿克曼转向。

1.1 差速驱动模型:两个轮子搞定一切

差速驱动,你想想看,就是左右各一个独立驱动的轮子,再加一个或两个万向轮撑着。结构简单到令人发指,但功能一点都不含糊。

我记得刚入行时做第一个扫地机器人原型,用的就是差速驱动。当时觉得这玩意儿太简单了,结果一跑起来就画龙……嗯,后来才知道是轮子转速没校准好。

1.1.1 正向运动学:从轮子转速到机器人速度

假设左右轮转速分别为 ωL 和 ωR(单位 rad/s),轮子半径为 r。那么左右轮的线速度就是:

v_L = ω_L * r
v_R = ω_R * r

机器人的整体线速度 v 和角速度 ω,由左右轮速度的平均值和差值决定:

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

其中 d 是左右轮之间的距离,也就是轮距。

核心公式(记住这个就够了):

[ v ]   [ 1/2   1/2 ] [ v_R ]
[ ω ] = [ 1/d  -1/d ] [ v_L ]

这个矩阵就是差速驱动的正向运动学雅可比矩阵

1.1.2 逆向运动学:从目标速度到轮子转速

反过来,如果我们想让机器人以速度 v 和角速度 ω 运动,左右轮该转多快?

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

然后除以轮子半径 r,就得到目标转速了。

实战小技巧:我在项目中遇到过一个问题——电机响应有延迟。如果你直接给电机发目标转速,机器人会抖得像帕金森。我的做法是加一个速度斜坡,让转速平滑变化。说白了就是「别急,慢慢来」。

1.1.3 转弯半径分析

差速驱动怎么转弯?靠左右轮速度差。如果 vL = vR,直线走。如果 vL = -vR,原地转圈。其他情况,走圆弧。

转弯半径 R 的计算公式:

R = (d * (v_R + v_L)) / (2 * (v_R - v_L))

当 vR = vL 时,R 无穷大(直线)。当 vR = -vL 时,R = 0(原地旋转)。

⚠️ 避坑指南:我曾经在AGV项目里吃过亏——差速驱动在高速转弯时,内侧轮容易打滑。原因是负载转移导致轮胎抓地力不够。解决办法是限制最大角速度,或者加一个打滑检测算法。

1.2 阿克曼转向模型:汽车是怎么转弯的

差速驱动虽然简单,但有个致命问题——轮子侧滑严重,尤其高速时。汽车为什么不用差速驱动?因为汽车有方向盘啊!

阿克曼转向,说白了就是让前轮转向角度不同,保证所有轮子绕同一个圆心转动。这样轮胎就不会「搓地」了。

1.2.1 几何关系

假设轴距为 L,轮距为 d,前轮转向角为 δ(内侧轮 δin,外侧轮 δout)。阿克曼条件要求:

cot(δ_out) - cot(δ_in) = d / L

这个公式保证了所有轮子的转向中心交于一点。

实际应用中,我们通常用单车模型来简化:把两个前轮等效为一个虚拟轮,转向角为 δ。那么:

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

1.2.2 从方向盘转角到轮子转速

阿克曼转向的输入有两个:油门(控制速度)和方向盘(控制转向角)。

正向运动学:给定后轮驱动速度 v 和前轮转向角 δ,机器人的运动状态为:

v_x = v * cos(θ)   // 前进方向速度
v_y = v * sin(θ)   // 侧向速度(理论上为0)
ω   = v * tan(δ) / L

其中 θ 是机器人朝向角。

注意:阿克曼转向的侧向速度 vy 理论上为0,因为轮子不侧滑。但实际中,由于轮胎侧偏特性,高速转弯时会有侧向力,产生「不足转向」或「过度转向」。嗯,这个后面讲动力学时会细说。

1.2.3 差速驱动 vs 阿克曼转向

特性 差速驱动 阿克曼转向
结构复杂度 低(两个电机) 高(转向机构+驱动)
转弯方式 靠轮速差 靠转向角
原地旋转 ✅ 支持 ❌ 不支持
高速稳定性 差(易侧滑) 好(轮子不搓地)
控制复杂度 中(需考虑转向延迟)
典型应用 扫地机、AGV、服务机器人 汽车、卡丁车、竞速机器人

1.3 知识体系总览

下面这张图,是我自己画的一个知识框架。你看一眼,就能明白这章讲了什么。

轮子与运动:知识体系 轮子转速 → 机器人速度 差速驱动模型 阿克曼转向模型 正向运动学 逆向运动学 转弯半径分析 几何关系 单车模型 转向角→转速 选择哪种模型?看应用场景! 低速、灵活 → 差速驱动 | 高速、稳定 → 阿克曼转向

1.4 实战中的选择建议

你可能会问:那我到底该用哪种?

我个人习惯这样判断:

  • 如果机器人主要在室内、低速(< 2m/s)、需要频繁原地转向——差速驱动,没毛病。比如扫地机器人、仓储AGV。
  • 如果机器人要在室外、高速(> 3m/s)、需要稳定直线行驶——阿克曼转向更靠谱。比如无人车、竞速机器人。
  • 如果两者都要兼顾——嗯,那就上全向轮或者麦克纳姆轮。不过那是下一章的内容了。

我的一个小习惯:做原型验证时,先用差速驱动。因为控制简单,调试方便。等方案定型了,再根据实际需求换成阿克曼或其他结构。别一上来就搞复杂的,容易把自己绕进去。

好了,这一章就到这里。轮子转速到机器人速度的映射,说白了就是「轮子怎么转,机器人怎么动」的数学翻译。差速驱动靠速度差,阿克曼转向靠转向角。记住这两个核心思想,后面讲轨迹跟踪时你会觉得轻松很多。


专注资料整理