从“移动”的字面意思上来看,自动驾驶汽车、无人机、水下机器人等各种位置可变的机器人都可以算作是“移动机器人”,这里我们先划分一下界限,以下“移动机器人”概念主要指地面上的移动机器人。

一、移动机器人的运动模态

移动机器人是机器人“大军”中非常重要的一种类型,在我们的生活和生产中已经普遍存在,此时你脑海里想到了哪些机器人呢?再仔细想想这些机器人是如何“移动”的呢?

你可能会想到昨天还在家里用扫地机器人干活,或者上次去餐厅刚享受过送餐机器人的服务,这些机器人的移动方式一般都是差速运动。

相信你一定也看到过类似扫地机器人被台阶卡住的尴尬场面,为了增强越障能力,我们也可以将轮子换成履带,机器人就会更加适合室外非铺装路面上的移动,想想坦克的履带底盘,那不是遇神杀神,遇佛杀佛么。

说到上路,那汽车绝对是最为常见的运动物体,未来的自动驾驶汽车,虽然 “大脑”变聪明了,但身体的移动结构依然没有太大变化。如果你有了解过汽车底盘或者玩过车模,那有可能听说过这种结构有一个洋气的名字——阿克曼。

遥想当年驾照科二考试,侧方停车是很多同学的噩梦,恨不能像螃蟹一样,横着直接就进车位了!别着急,现在已经有自动停车机器人可以实现全向运动了,还真能横着进车位,很多工厂里的智能移动机器人,也使用了类似的运动机构。

到这里,你可能对差速、履带、阿克曼、全向这几种移动机器人的运动模态还有点懵,接下来我们就细细看来。

二、差速运动模态

什么叫差速?大白话就是通过两侧运动机构(轮子、履带)的速度差,驱动机器人前进或转弯。每侧一个轮子的叫做是两轮差速,每侧两个轮子的叫做是四轮差速,每侧三个轮子的叫做。。。

2.1 差速运动学原理

我们把一台四轮差速运动的机器人简化成下图的模型,其中四个车轮由四个单独的电机驱动,显(gao)而(shen)易(mo)见(ce),只需要控制四个车轮的速度,就可以达到控制机器人的前进、后退、以及转向的运动效果了。

我们给机器人一个参考坐标系,红色箭头为X正方向,蓝色箭头为Y轴正方向,Z轴沿着原点垂直屏幕向外,坐标原点为机器人的质心,坐标系满足安培右手定则。当四个车轮的速度(大小+方向)一样时,机器人就可以实现前进和后退。当四个车轮的速度不一样时,机器人将会产生转向运动。

一旦机器人产生转向运动,那么意味着有一个转向中心即下图中的点ICR。以左前轮为例,轮子与地面接触点A的相对运动速度方向如图所示,合速度方向与线段A-ICR相互垂直,而轮胎只能沿着纵向分速度方向转动,做速度分解可知,还存在沿轮子轴向(电机轴向)的横向分速度。

由于四个轮胎的横向分速度大小不同,因此机器人会产生旋转分运动,而纵向分速度产生纵向分运动,合成运动则表现为机器人绕ICR做圆周运动。

在机器人转弯时,两侧的轮胎角速度一样,内侧的轮胎转弯半径小,所以线速度更小,外侧的轮胎转弯半径大,所以外侧线速度更大。即右侧速度大时,将会向左转,同理可知,左侧速度大时,将会向右转。

而且从上图可以看出同侧的轮胎Vx(纵向分速度)一样,上(下)端的轮胎Vy(横向分速度)一样。如果想要绕自身自转的话,只需要左(右)侧的两个车轮速度一样大,且方向相同、右(左)侧的两个车轮速度与另一侧一样,但方向与另一侧相反即可。

2.2差速运动效果

这里我们使用手上的LIMO机器人作为演示,打开limo_base功能包中的limo_base.launch启动文件,motion_mode变量表示运动模态,其中diff对应差速模式,ackermann对应阿克曼模式,mcnamu对应全向运动模式。这里我们先将motion_mode设置为diff。

修改之后对代码进行编译,然后运行以下命令,我们就可以启用键盘来控制LIMO机器人在差速运动模式下运动。

$ roslaunch limo_base limo_base.launch
$ roslaunch limo_bringup limo_teletop_keyboard.launch

 差速模态下机器人运动效果是这样的:

 

三、履带差速运动模态

履带差速模式与四轮差速模式十分相似,均为滑动转向。

3.1 履带差速运动学原理

履带差速模式下单侧履带可等效视为“无穷多个小轮子”,且这单侧的“无穷多个小轮子”的“转速”是一致的。所以,履带差速模式的转向方式和四轮差速模式的转向方式是一致的,也是滑动转向。

具体来讲,履带差速运动和四轮差速运动均是通过控制两侧履带(或轮子)的相对速度实现,但二者也有区别:履带对地面产生的剪切和压力分布,是不同于轮子的。此区别体现在车轮速度控制上时影响不大。车轮速度不一致时,我们参照可以以下简化后的模型。

ICR为运动旋转中心,CENTER为机器人几何学中心,COM为机器人质心。转弯时,内侧履带的速度小于外侧履带的速度,如果想要绕自身自转的话,只需要左(右)侧履带速度一样大,且方向相同、右(左)侧的履带速度与另一侧一样,但方向与另一侧相反即可。

3.2 履带差速运动效果

接下来给LIMO换上履带,limo_base.launch启动文件中的motion_mode参数依然是diff,运行以下命令。

$ roslaunch limo_base limo_base.launch
$ roslaunch limo_bringup limo_teletop_keyboard.launch

履带的特点就是通过性好,我们专门在室外复杂场景中挑战一下:

 

四、阿克曼运动模态

阿克曼转向结构是现代汽车的转向方式,可以解决汽车在转向时,由于左、右转向轮的转向半径不同所造成的左、右转向轮转角不同的问题

4.1 阿克曼运动学原理

先看一下阿克曼运动模态简化之后的模型图。与差速运动相同,如果我们给四个车轮相同的的速度(大小+方向),即可实现机器人的前进和后退。不同之处在于转弯,需要根据前端两个车轮的偏转方向,利用阿克曼转向几何来计算转弯半径。

如下图所示,点CENTER为机器人几何中心,点BASE为后杆的中点。此时,机器人将绕ICR做圆周运动,此转弯半径也为最小转弯半径。由图可知,前段两个车轮的偏角并不一致,两个车轮偏角的差值(θAB)为阿克曼角。如果机器人在阿克曼运动模式下还是采用四轮驱动的方式,在转弯时,内侧车轮的速度小于外侧车轮。

阿克曼进一步简化,就是平时我们骑得自行车模型,上图橘黄色部分是机器人等效的自行车模型。

相比于差速运动模态,阿克曼运动模态有转弯半径的限制,移动机器人不能实现自旋,即转弯半径不能为0。

4.2 阿克曼运动效果

给LIMO机器人换上普通轮胎,然后将下图中的红色插销拔起来并旋转一定角度,使其固定,这样机器人硬件就变换为阿克曼运动模态了。

将limo_base.launch中的motion_mode修改为ackermann,然后对代码进行编译,运行以下命令。

$ roslaunch limo_base limo_base.launch
$ roslaunch limo_bringup limo_teletop_keyboard.launch

 接下来就可以通过键盘控制机器人运动啦,如果你已经是老司机,不如来一个侧方停车吧。

五、全向运动模态

这里的全向运动是指机器人可以在平面上向任意方向运行,可以实现全向运动的机构有很多种,下边主要介绍基于麦克纳姆轮的四轮驱动方式。

5.1 全向运动学原理

麦克纳姆轮是一种特殊的车轮,由轮毂和辊子组成:轮毂是整个轮子的主体支架,辊子则是安装在轮毂上的被动运动的鼓状物(小轮),两者组成一个完整的大轮。市面上轮毂轴线与辊子转轴夹角大致可分30度、45度、60度三种。为满足全向运动的几何关系,轮毂边缘采用了折弯工艺,为辊子的转轴提供安装孔。

假定车轮逆时针转动,对麦克纳姆轮进行受力分析,上图中坐标系红色表示x轴,绿色表示y轴,蓝色表示z轴,辊子坐标系用虚线表示,轮毂坐标系用实线表示;黄色箭头表示麦轮和辊子的受力分析;蓝色箭头表示速度方向。

麦轮外围的辊子是与地面接触的,当麦轮绕轮毂轴转动时,辊子会与地面产生摩擦力Ff,其作用力方向为轮毂坐标系Y轴正方向。对Ff沿着辊子坐标系做正交分解,F1沿辊子Y轴负方向,大小为√2/2Ff,F沿辊子X轴正方向,大小为√2/2Ff。F1为辊子的滚动摩擦力,对辊子造成磨损,并不能改变轮胎的运动方向,F会迫使辊子沿X轴正方向运动,故F为静摩擦,促使辊子相对地面运动。

不同的车轮排列方式也需采用不同的控制方式,将麦轮的全向运动简化成上图这个模型,蓝色箭头表示车轮运动方向,橘黄色箭头表示麦轮的受力分析情况。将各力合并,我们将发现移动机器人只有一个向前的力,故此时机器人将向前运动。

结合之前四轮差速运动模式,对各个轮胎的摩擦力进行合并,就可使机器人往任意方向去运动。下面列举一些不同方向运动时轮胎的状态。

5.2 全向运动模式实现

给LIMO机器人换上麦克纳姆轮,将limo_base.launch中的motion_mode修改为mcnamu,然后对代码进行编译,运行以下命令。

$ roslaunch limo_base limo_base.launch
$ roslaunch limo_bringup limo_teletop_keyboard.launch

 在键盘控制节点中输入大写命令就可以实现全向运动啦,机器人瞬间打通任督二脉,就是“任我行”:

 

六、总结

移动机器人的运动模态有很多,每一种都有其优缺点,在实际场景中我们可以根据场景特点和需求,选用最合适的运动模态。最后我们给出本文涉及四种运动模态的对比,作为大家未来使用的一个参考。

模态

差速

履带

阿克曼

麦克纳姆

优点

 

 

运动性能好,控制简单

通过性好,适用多种场地

类似真实汽车

机动性好,可全向运动

缺点

转向有滑移

磨损大

滑动转向阻力大,磨损很大

转弯半径有限制,磨损较小

场地要求高,辊子间不连续,有震动,磨损较大