本文最后更新于2020年8月6日,已超过 1 个月没更新!

麦克纳姆轮是一种可以灵活方便地实现全方位移动的轮子。正式由于这种特性因此在许多需要机器人具备全向移动能力的情况下(特殊工种机器人、竞赛机器人等等),这种轮子便成为了必需。

1. 原理

理论太枯燥,先上视频!


🌳 麦克纳姆轮原理讲解 🌳

麦克纳姆轮由轮毂和辊子两大部分组成。轮毂是整个轮子的主体支架,辊子则是安装在轮毂上的鼓状物,轮毂轴与辊子转轴呈 45° 角。
典型的Mecanum设计是四轮配置,例如URANUS全向移动机器人,其轮轴在车轮的顶部与车架的对角线平行。以这种方式,每个车轮将产生大致平行于相应框架对角线的推力。 通过改变每个车轮的旋转速度和方向,来自每个车轮的力矢量的总和将产生车辆的线性运动和旋转,从而允许其在最小空间的情况下进行机动。

2. 运动解算

我们一般常用的麦轮装法如下图所示:
注意:下图为四个轮子与地面接触部分形状,也即从底端观察麦轮底盘的视图。

2.1 地盘运动的分解

机器人地盘的运动可以分解为三个独立分量:X轴平动,Y轴平动和yaw轴转动。如下图所示:

2.2 麦轮轴心速度的计算

轮子轴心运动速度为:

分别计算X、Y轴的分量:




同理,可计算出其他三个轮子的轴心速度:

2.3 辊子速度的计算

由轮子轴心速度可以分解出沿辊子方向的速度和垂直于辊子的速度。
其中由于垂直于辊子方向的速度会转化为辊子自身的转动,因此可以无视。
由此可得:


其中u是沿辊子方向的单位矢量。

2.4 麦轮转速的计算

轮子转速的计算:


由下图所示的a和b定义,可得:


综上,可以解算出四个轮子的转速为:

以上便是麦轮地盘的逆运动学模型解算。
同理,根据逆运动学模型中的三个方程逆向运算可解得,正运动学模型方程组为:

注:下图为麦轮底盘前进、平移、自转时,各轮的转动情况。

3. 简单的逆运动学计算方法

我们将逆运动学模型写成矩阵形式可得:


可以看出当前运动所需要的四个轮子的转速可以通过麦轮底盘在X平移、Y平移和自转的四个轮子速度通过简单的加法得到。这其中的原因便是因为全向移动地盘是一个纯线性的系统。

3.1 X轴平移

3.2 Y轴平移

3.3 自转

4. 代码

//正运动学模型
robot_vx = ( wheel_rpm[0] * (-0.25) + wheel_rpm[1] * (+0.25) + wheel_rpm[2] * (-0.25) + wheel_rpm[3] * (+0.25) ) * (1.0);
robot_vy = ( wheel_rpm[0] * (+0.25) + wheel_rpm[1] * (+0.25) + wheel_rpm[2] * (+0.25) + wheel_rpm[3] * (+0.25) ) * (1.0);
robot_vw = ( wheel_rpm[0] * (+0.25) + wheel_rpm[1] * (-0.25) + wheel_rpm[2] * (-0.25) + wheel_rpm[3] * (+0.25) ) / K ;
//逆运动学模型
wheel_rpm[0] = (robot_vy - robot_vx + robot_vw * K) * (1.0);
wheel_rpm[1] = (robot_vy + robot_vx - robot_vw * K) * (1.0);
wheel_rpm[2] = (robot_vy - robot_vx - robot_vw * K) * (1.0);
wheel_rpm[3] = (robot_vy + robot_vx + robot_vw * K) * (1.0);

Try and fail, but don't fail to try.