移动机器人是机器人“大军”中非常重要的一种类型,在我们的生活和生产中也普遍存在。

此时你脑海里想到了哪些机器人呢?再仔细想想这些机器人是如何“移动”的呢?

是像家里扫地机器人一样的两轮驱动,还是像马路上小汽车一样的前轮转向运动?

不同的运动方式适合不同的移动场景,接下来,我们以差速运动、阿克曼运动和全向运动这三种最为常见的运行方式为例,深入讲解每种运动背后的基本原理。

一、差速运动控制

1.1差速运动原理

最近,你可能经常在家里让扫地机器人干活,或者刚去餐厅享受过送餐机器人的服务,这些机器人的移动方式一般都是差速运动。我们就先来学习这种运行方式的基本原理。

什么叫差速?简单来说,就是通过两侧运动机构的速度差,来驱动机器人前进或转弯

平衡车就是典型的差速驱动。

大家想象一下平衡车的运动方式,如果两个轮子的速度相同,一起往前转,平衡车整体就向前走,一起往后转,平衡车整体就向后走。如果左边轮子的速度比右边快,平衡车就会向右转,反之则是向左转。这就是差速运动最基本的运动方式。

图1 平衡车

图2 两轮差速运动分析

图2所示,从这张图中,大家也可以看到,差速运动的重点是两侧轮子的速度差,像我们家里用的扫地机器人,大家有兴趣可以翻起来看一下,一般左右两侧都有一个驱动轮,一共是两个轮子,可以叫做两轮差速

大家可能还看到过稍微大一些的车子,比如美团、京东的自动物流机器人,很多都是有四个驱动轮的,原理和两轮差速类似,但是负载和越障能力都更强,这就类似汽车中的两驱和四驱的差别,四驱的动力性能会更加强劲。

图3 LIMO机器人和四轮机器人模型

我们举例使用的LIMO机器人,在差速模式下,就是一款四轮差速小车。我们以LIMO的四轮差速为例,给大家讲解它背后的基本原理。

一台四轮差速运动的机器人可以简化如图3所示右边的模型,其中四个车轮由四个单独的电机驱动。

我们给机器人一个参考坐标系,红色箭头为X轴正方向,蓝色箭头为Y轴正方向,Z轴沿着原点垂直屏幕向外,坐标原点为机器人的质心,坐标系满足安培右手定则。

当四个车轮速度的大小和方向一样时,机器人就可以实现前进和后退。

当四个车轮的速度不一样时,机器人将会产生转向运动。

图4 四轮驱动运动分析

当机器人转向时,就意味着有一个转向中心点ICR。

以左前轮为例,轮子与地面接触点A的相对运动速度方向如图所示,合速度方向与这条线A-ICR相互垂直,但轮胎只能沿着纵向分速度方向转动,做一个速度分解就可以知道,还存在沿轮子轴向的横向分速度。同理,四个轮子都做完速度分解后,会发现四个轮胎的横向分速度不同,因此机器人会产生旋转分运动,而纵向分速度产生纵向分运动,合成之后的运动就是机器人绕ICR点的圆周运动了。

我们都知道轮子是前后转的,这个纵向分速度是轮胎与地面的滚动摩擦产生的,而横向分速度是由轮胎与地面的滑动摩擦产生的,转向主要靠横向速度,也就是说转向是靠滑动摩擦产生的。一转弯,机器人的轮胎就要和地面摩擦,摩擦摩擦,这也是差速运动废轮胎的原因。

以上就是四轮差速机器人运动学的基本原理,具体运动学的数学推导大家可以参考《四轮驱动(SSMR)移动机器人运动模型及应用分析》混沌无形的这篇文章,或者网上搜索相关的内容。

我们再来简单总结一下四轮驱动这种运动方式的特点。

四轮差速运动方式下,四个轮子独立驱动,负载性能、越障性能相对突出,但是转向的时候轮子和地面的摩擦较大,而且要同时控制四个轮子,实现精确控制并不容易。总体来讲,在真实的应用场景中,四轮驱动机器人多用于野外的非结构化场景

1.2四轮差速运动控制

我们使用LIMO体验一下四轮驱动机器人的运动方式。

首先把硬件调整到四轮差速模态,然后在手机APP上将LIMO调整为差速模式,如图8-5所示,接下来就可以按照这两条指令来运行机器人了。

图5 APP设置为差速模式

接下来启动机器人底盘,然后启动键盘控制节点。

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

启动成功后,我们通过键盘控制LIMO前后运动,仔细观察机器人两侧四个轮子的运动速度,在直线运动的情况下,两侧四个轮子的速度基本是一致的。

再来控制机器人左转或者右转,继续观察机器人的四个轮子,不同的转向角度,机器人四个轮子的速度也会有明显的区别,但是不管怎么转动,还是可以明显感觉到轮胎与地面的摩擦,如果是在一个比较光滑的地面上,可能还会听到清晰的摩擦声。

图6 LIMO机器人差速模式

以上就是四轮差速运动最基本的原理和运动效果。虽然四轮差速运动的越障能力比较强,但如果遇到比较高的门槛,可能也是束手无策。这个时候我们往往就会想到可以勇往直前的坦克。

1.3差速运动控制——履带

为了增强越障能力,我们可以将轮子换成类似坦克使用的履带,这样会更加适合室外非铺装路面的移动。

图7 履带机器人

LIMO机器人也支持履带运动,我们只需要在四轮差速运动模态的基础上,安装履带配件,就可以变身成为一个小坦克了。从操控上来看,这种运动方式貌似和四轮差速类似,那这背后的原理是否也类似呢?

图8 LIMO机器人履带运动

大家可以先想想一下,按照四轮差速机器人的原理,如果我们在机器人两侧继续增加轮子,动力明显就会更加强劲,四轮差速变成六轮差速、八轮差速、十轮差速,轮子数量越多,体积越小,两侧运动机构与地面的接触面就越大,假设可以无限多的话,是不是就可以和地面连续接触了,这个时候不就变成履带了么?

没错,从基本的运动原理分析,履带可等效视为“无穷多个小轮子”,而且这些“小轮子”的“转速”还是一致的。或者我们可以把履带看成同步带,实现了“左侧或右侧轮子的转速一致”。

所以,履带式机器人的转向方式和刚才介绍的四轮驱动机器人是一致的,也是滑动转向,转向时通过控制两侧履带的相对速度实现的。

当然,两者也有一点区别,轮子与地面的接触可简化视为点接触,履带与地面的接触面积更大且跨度更长,可以理解为,履带对机器人的支撑面更大,对地面的压强较小。

图9 履带式机器人运动分析

总体来讲,履带式差速运动的机器人,越障能力比较强,还可以爬坡,运动平稳也不易打滑,但是转向的时候阻力更大,能量和摩擦的消耗也就更多一些,一般多用于室外越野场景,尤其是在军事和消防领域,需要应对各种各样的未知场景,这种运动方式就再适合不过了。

接下来给LIMO安装履带配件,手机APP上依然设置为差速运动模态,然后启动机器人底盘,再启动键盘控制节点。

图10 APP设置为差速模式

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

先控制机器人前进左右运行,直线运动时两侧的履带速度基本一致,转弯的时候,明显可以感觉到速度会有差异。

履带的特点就是通过性好,我们把机器人放到室外复杂场景中挑战一下,可以看到机器人的运动还是很平稳的。

图11 LIMO机器人差速模式-履带

差速运动是机器人最为常用的一种运动方式,又可以细分为两轮差速、四轮差速、履带差速等多种运动形式,原理上有一些差别,但本质都是通过速度差实现机器人的控制。

说到这里,大家可能会有疑问了,路上每天见到的汽车,看上去怎么和这里讲到的差速运动不太一样呢?

二、阿克曼运动控制

说到上路,汽车绝对是最为常见的运动物体,如果你有了解过汽车底盘或者玩过仿真车模,那有可能听说过一个洋气的名字——阿克曼。

之前讲到差速运动在转弯的时候摩擦大,如果汽车也使用类似的结构,我们可能三天两头就得去换轮胎了。如何减少轮胎的磨损呢?从四轮差速运动的原理上来看,只要我们尽量减少横向的分速度,让车轮以滚动为主,摩擦力就会减小。

图12 阿克曼转向机构原理

汽车运动的两大核心部件一个是前边的转向机构,由方向盘控制前轮转向,这个比较好理解;通过之前差速运动的分析,我们知道在转弯的时候后侧两个轮子的速度是不一样的,所以另外一个核心部件就是差速器,分配后轮转向时的差速运动。

上半部分的转向机构,可简化为等腰梯形ABCD,这是一个四连杆机构,连杆AB是基座,固定不动的,连杆CD可以左右摆动,从而带动杆AC和BD转动,杆CA绕点A转动,A点的轴与轮胎是固定连接关系,因此杆CA转动时,左前轮也在转动。

右前轮的原理也是一致的。

这两个前轮的转向是联动的,都算是被动轮,仅有一个自由度,由一个方向盘驱动。这种转向方式就是阿克曼运动的核心,也称为阿克曼转向机构

下半部分的差速器,输入端连接着驱动电机,输出端连接着左右两个后轮。差速器的作用是将电机输出功率自动分配到左右轮,能够根据前轮转向角自动调节两个后轮的速度,因此两个后轮是主动轮,也就是驱动车辆运动的动力来源。

LIMO机器人在四轮差速状态下,可以“一键”切换为阿克曼运动模态,只需要把前端两个红色插销拔起即可。

图13 LIMO机器人阿克曼运动模态

此时LIMO将采用前轮转向,后轮驱动的方式进行运动,我们需要协同控制机器人前端的转角和后轮的运动速度,才能达到控制要求。

图14 阿克曼运动分析

图13所示是阿克曼运动的原理图,大家仔细看两个前轮和两个后轮的状态,像不像两个并驾齐驱的自行车呢,大家手拉手一起转弯。没错,我们可以把阿克曼模型等效简化为自行车模型,这两种模型在运动机理方面基本是一致的。大家再想想我们平时骑自行车的画面,车把控制前轮转向,但没有动力,脚蹬通过一系列齿轮,传送动力到后轮上,驱动自行车运动,这些齿轮就相当于是差速器。这样是不是更好理解阿克曼运动的原理呢!

总结而言,在实际应用场景中,阿克曼结构的运动稳定性较好,越障能力也不错,多适用于室外场景;但是大家回想一下驾照考试中的侧方停车和倒库,是不是噩梦般的存在,没错,这种运动方式在转弯的时候会有一个转弯半径,操作起来相对没有那么灵活。

接下来我们来上实物体验一下。在LIMO四轮差速的运动模态下,拔出前端的两个插销,在手机APP上将LIMO调整为阿克曼模式,然后运行如下两条指令,启动机器人底盘和键盘控制节点。

图15 APP设置为阿克曼模式

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

接下来就可以通过键盘控制机器人运动,前后的直线运动和差速没什么区别,大家试一下左右转弯,明显可以看到两个前轮在转弯的时候会有左右偏转,再通过后轮的动力驱动机器人整体运动。

如果你已经是老司机了,不如控制机器人来一个侧方停车吧。这个确实还是需要练习一下,才能控制好的,如果机器人可以像螃蟹一样横向移动就好了。

图16 LIMO机器人阿克曼模式

三、全向运动控制

接下来,我们就让机器人横着动起来,甚至在一个平面上想怎么走就怎么走,也就是全向运动。可以实现全向运动的方式有很多,我们这里主要介绍其中一种——麦克纳姆轮全向运动。

正如这个名称,这种全向运动的核心就在于轮子的结构设计,也就是麦克纳姆轮,简称为麦轮。

这种轮子在生活中并不常见,多被应用于科研教学、机器人竞赛,大家如果有看过RoboMaster比赛,其中在地面上快速运动的步兵机器人,使用的就是麦克纳姆轮。使用这种轮子的运动模式非常炫酷,包括前行、横移、斜行、旋转以及其各种组合,都没问题。

相较于生活中常见的橡胶轮胎,麦克纳姆轮显得与众不同,如图17所示,看上去就非常复杂。它是由轮毂和辊子两个部分组成,轮毂是整个轮子的主体支架,辊子是安装在轮毂上的鼓状物,也就是很多个小轮子,两者组成一个完整的麦克纳姆轮。

图17 麦克纳姆轮

辊子在轮毂上的安装角度很有学问,如图18所示,轮毂轴线与辊子转轴夹角呈45度,理论上该夹角可为任意值,主要影响未来的控制参数,但市面上主流麦轮使用的一般都是45度,我们这里就以45度为例给大家介绍。

为满足这种几何关系,轮毂边缘采用了折弯工艺,可为辊子的转轴提供安装孔,但是很明显,每个辊子并没有电机驱动,它是不能主动来转动的,可以看做是被动轮。

电机将会安装在轮毂的旋转轴上,驱动轮毂转动,所以轮毂可以看做是主动轮。

图18 麦克纳姆轮分析

当一个麦轮开始转动后,作为轮毂的主动轮开始旋转,但它并没有直和地面接触,产生不了运动,而是带动辊子与地面发生摩擦,从而产生运动。所以辊子与地面的摩擦分析,是麦轮运动原理的核心。我们来简单分析一下。

在运动状态下,地面作用于辊子的摩擦力(Ff)可以分解为滚动摩擦力(F⊥)和静摩擦力(F∥)。滚动摩擦力促使辊子转动,相当于辊子在自转,对于机器人整体并没有产生驱动力,所以属于无效运动;静摩擦力促使辊子相对地面运动,而辊子被轮毂固定着,产生的反作用力带动整个麦轮沿着辊子轴线做运动。所以当轮毂逆时针旋转时,整个轮子运动方向为左上45°;轮毂顺时针旋转,整个轮子的运动方向为右下45°。

所以,改变辊子轴线和轮毂轴线的夹角,就可以改变麦轮实际受力的运动方向。

了解了麦克纳姆轮的运动特性,那我们把机器人四个轮子都换成麦克纳姆轮,通过不同角度下的速度分配,岂不就可以通过四个轮子的速度合成,产生不同角度的运动了么?

没错,将麦轮按照一定排布方式进行配置,就可以组成一个的麦轮全向移动平台

介于麦轮的运动特点,麦轮平台的构型是有规律的:两前轮和两后轮关于横向中轴线上下对称,两左侧轮和两右侧轮关于纵向中轴线左右对称。这种对称结构是为了平衡纵向或横向上的分力。

我们把麦轮平台抽象为如图19这样一个模型,分析下机器人的全向运动原理。

图19 麦轮平台模型

之前我们已经发现,静摩擦力是驱动每个麦轮运动的力,我们将静摩擦力沿着轮毂坐标系的坐标轴分解,可以得到一个纵向的分力和一个横向的分力。

如果要让机器人向前运动,就得让左右两侧的轮子把这里的横向分力抵消掉,所以两个轮子是对称的,如果不对称,那横向分力都是朝一个方向,机器人就走偏了。

如果要让机器人横着向左运动,那就得把纵向分力抵消掉,一个轮子向后转,一个轮子向前转。

如果要让机器人斜着走怎么办,对侧的轮子不转就可以了,运动的这两个轮子合力就是斜向前45度的。

可见,麦轮平台的运动就是各个轮子之间“力” 的较量,这里必须要感谢牛顿发现了力学的奥秘。

当然,要满足分力相互抵消的条件是转速大小相同,这个在实际场景中多少会有误差,所以想要达到精准控制并不容易。

总体而言,麦轮全向方式的灵活性好,因为没有转弯半径,适合在狭窄有限的空间中使用,但是由于力的相互抵消,也带来了能量的损耗,所以效率不如普通轮胎,辊子的磨损也会比普通轮胎严重,因此适用于比较平滑的路面。此外,辊子之间是非连续的,运动过程中会有震动,最明显的感觉就是机器人走起来,噪声明显更大,还得另外设计悬挂机构来消除震动。

LIMO机器人同样支持麦克纳姆轮全向运动,我们给它换上麦克纳姆轮,两端的插销保持在插入的状态,在手机APP上调整为麦轮模式。

图20 APP设置为麦轮模式

然后运行如下这两条指令,启动底盘和键盘控制节点。

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

我们先控制机器人前后左右运动,似乎和四轮差速没有什么变化,没错,麦克纳姆轮也可以类似四轮差速一样原地旋转。

开启键盘的大写输入,继续控制机器人左右移动,机器人瞬间打通任督二脉,可以开始横向运动了。

图21 LIMO机器人全向运动

四、参考资料

关于各种运动学原理的数学推导,大家可以参考以下这个系列的文章,讲解的非常清楚。