第二节 运动学基础:坐标系与运动模型

各位同学,欢迎来到运动学基础这一节。说实话,这部分内容看起来有点枯燥,但它是整个AMR控制的基石。我当年刚入行时,就因为坐标系搞反了,让一台AGV在仓库里画了个大大的“8”字,差点撞到货架。从那以后,我再也不敢小看这些基础概念了。

2.1 坐标系定义

做机器人控制,首先得搞清楚“我在哪”和“我要去哪”。这就离不开坐标系。

世界坐标系

世界坐标系,你可以理解为“上帝视角”。它是一个固定不动的参考系,通常用大写字母 W 表示。比如在工厂里,我们把地图的东北角定为原点,X轴指向东,Y轴指向北。这样,任何一个货架、充电桩的位置,都能用 (x_w, y_w) 唯一确定。

我个人习惯把世界坐标系的原点设在机器人启动的初始位置,或者地图的某个角落。这样调试时,坐标值看起来比较顺眼。

机器人坐标系

机器人坐标系是“跟着机器人走的”。它固定在机器人本体上,通常用 R 表示。原点在机器人的几何中心,X轴指向机器人正前方,Y轴指向左侧。

为什么要搞两套坐标系?你想想看,激光雷达扫描到的障碍物,是以机器人自身为参考的。但你要规划路径,又得把障碍物位置换算到世界坐标系里。这两套坐标系之间的转换,就是运动学要干的事。

核心要点: 世界坐标系是“绝对”的,机器人坐标系是“相对”的。两者通过旋转和平移矩阵相互转换。

2.2 位姿表示 (x, y, θ)

机器人在平面上的状态,用三个量就能描述:(x, y, θ)

  • x, y:机器人在世界坐标系中的位置坐标。
  • θ:机器人的朝向角,通常指机器人X轴与世界坐标系X轴之间的夹角。逆时针为正。

举个例子:(2.0, 3.5, 1.57) 表示机器人在世界坐标 (2.0, 3.5) 处,朝向角为 1.57 弧度(约 90 度,即正对着 Y 轴方向)。

小技巧: 我建议在代码里统一使用弧度制,避免角度和弧度混用带来的bug。我曾经见过一个同事,在PID控制器里把角度当弧度传进去,结果机器人原地转圈,怎么都调不好。

2.3 差速轮运动学模型

差速轮是AMR里最常见的底盘形式。两个驱动轮独立控制,通过转速差实现转向。

正运动学:从轮速到位姿变化

已知左右轮转速 v_lv_r,求机器人线速度 v 和角速度 ω

v = (v_r + v_l) / 2
ω = (v_r - v_l) / d

其中 d 是左右轮的轮距。你看,线速度是平均值,角速度是差值除以轮距。这个公式很简单,但我在项目里发现,很多人会忽略轮距的测量误差。轮距差个1毫米,机器人转一圈就会偏好几度。

逆运动学:从目标速度到轮速

反过来,已知目标 vω,求左右轮转速。

v_r = v + (ω * d) / 2
v_l = v - (ω * d) / 2
避坑指南: 我曾经在调试一台差速底盘时,发现机器人走直线总是偏。查了半天,原来是左右轮的实际直径不一样,导致同样的转速下,实际线速度不同。所以,建议每次换轮子后,都重新标定一下轮径参数。

2.4 全向轮运动学模型

全向轮(麦克纳姆轮或全向轮)可以实现任意方向的平移和旋转,灵活性更高。但代价是控制更复杂。

正运动学

以四轮全向底盘为例,每个轮子转速 ω_i 与机器人速度 (v_x, v_y, ω) 的关系如下:

ω1 = (1/R) * (v_x - v_y - (L_x + L_y) * ω)
ω2 = (1/R) * (v_x + v_y + (L_x + L_y) * ω)
ω3 = (1/R) * (v_x + v_y - (L_x + L_y) * ω)
ω4 = (1/R) * (v_x - v_y + (L_x + L_y) * ω)

其中 R 是轮子半径,L_xL_y 是轮子到机器人中心的距离。

说实话,这个公式看着有点吓人。但说白了,就是每个轮子分担一部分运动。你让机器人往右平移,四个轮子会配合着转出不同的速度和方向。

逆运动学

逆运动学就是解上面的方程组,把四个轮速合成机器人的速度。实际应用中,我们通常用矩阵形式表示:

[v_x]   [ 1  1  1  1 ] [ω1]
[v_y] = [ -1  1  1 -1 ] [ω2] * (R/4)
[ω ]   [ -1  1 -1  1 ] [ω3]
                        [ω4]
关键区别: 差速轮只能前进后退和转弯,不能侧移。全向轮可以横着走、斜着走,甚至原地旋转的同时平移。但全向轮对地面平整度要求高,而且轮子磨损快。

知识体系总览

下面这张图,把这一节的核心逻辑串起来了。你可以看到,从坐标系到位姿,再到两种底盘的运动学模型,最终都指向同一个目标:让机器人知道怎么动。

运动学基础知识体系 世界坐标系 机器人坐标系 位姿 (x, y, θ) 差速轮运动学 v = (v_r+v_l)/2 全向轮运动学 4轮独立控制 目标:实现精确的机器人运动控制

嗯,这一节的内容就到这里。坐标系是基础,位姿是状态,运动学模型是方法。三者缺一不可。下次你调试机器人时,如果发现它不走直线,不妨先从坐标系和运动学参数查起——我敢打赌,八成问题出在这里。


专注资料整理