清洁机器人避障系统的路径规划算法研究
2018-07-09王道累朱嘉伟
王道累, 胡 松, 朱嘉伟
(上海电力学院 能源与机械工程学院, 上海 200090)
智能清洁机器人是家用服务机器人的一种,是一个可以自主移动的吸尘器[1-4],能在清扫时提供省力、省时等多样化的操作,可以大大减轻人类的劳动强度,而且具有小巧轻便等特点,因此已成为机器人学的研究热点。同时,智能清洁机器人的应用具有广阔的市场前景[5]。联合国在《2002年全球机器人调查报告》中称,2001年底,全球家庭智能移动机器人的数量仅2.15万台,而目前仅iRobot公司生产的家用清洁机器人在世界上就有一千多万的用户[6-7]。在十几年的时间内,用户数量竟增加了700多倍,由此表明清洁机器人的发展速度飞快。
智能清洁机器人由一个复杂的结构和一些功能强大的系统组成,主要包括外观设计、传动设计及清扫洗尘系统、移动系统、避障系统和垃圾压缩系统等[8]。清洁机器人的路径规划是指按照机器人对工作环境信息的感知来建立一种优化路径,在目标点与起始点设计规划出一条与环境障碍无碰撞的路径,并实现所需清扫区域的完全路径覆盖[2]。按照机器人在不同工作环境下的情况,可分为动态已知环境、静态结构化环境和动态不确定环境3种类型;根据机器人对环境信息了解程度的不同,可以分为局部路径规划和全局路径规划2种类型。本文主要研究清洁机器人避障系统的全局路径规划问题,即如何规划路径使清洁机器人实现全区域覆盖以及如何让其更高效地完成清洁工作。
1 方向路径的能耗分析
首先,障碍物以向外膨胀(R/2+Δl,其中R为清洁机器人的直径,Δl为行走的安全距离)的形式在电子地图中出现。其次,机器人没有与障碍物相遇时,以迂回的形式行走,每次掉头反向行走时,与之前行走路线的平行距离或者说跨度为R,如图1所示,平面路径可以达到接近百分之百的覆盖率。清洁机器人由于行走方向的不同,使得其旋转运动的位置和旋转的次数也会不同,在相同的覆盖面积下,旋转过程中所消耗的能量也会不同。因此,在得到最高效的路径规划前,先要确认清洁机器人的行走方向。本文通过计算能量消耗来确定行走的方向。
图1 迂回式路径规划
清洁机器人在清扫过程中消耗的能量由直线、180°旋转以及绕障碍物曲线行走所消耗的能量组成。曲线行走所消耗的能量与行走方向无关,只与障碍物形状有关。
假设清洁机器人总能耗为E,则
式中:E1,E2,E3——清洁机器人走直线、旋转和曲线的能耗;
F——清洁机器人直行所需要的力;
s——清洁机器人行走的直线位移。
若A为覆盖面积,R为清洁机器人直径,则s=A/R。若A为一个定值,则
式中:F′——旋转1°需要的力;
θ——旋转的角度。
当每次旋转的角度都是180°时,则
E2=E0N
(5)
式中:E0——清洁机器人单次旋转消耗的能量;
N——反向旋转的次数且N=G/R(N取整数,G为沿某个方向的总跨度)。
故
(6)
由于清洁机器人绕障碍物行走的曲线所消耗的能量与行走方向无关,只与障碍物形状有关,因此E3为一常数,通过扫描得到障碍物大小来确定,一般取障碍物外围的1/2。
(7)
式中:C——障碍物的周长。
故
(8)
式(8)中的F和E0均为常数,故总能耗E的值就取决于总跨度G;而跨度G有不同的取值,即清洁机器人可沿不同的方向行走,使其轨迹覆盖这个区域。
因此,路径规划要尽量减少旋转次数,且应选择长的一边做直线清扫。本文选择迂回式路径作为路径规划的基础。
2 避障路径规划
2.1 单个障碍物路径分析
将一个障碍物放入地图中(这里所说的障碍物为自动向外膨胀R/2+l0后的障碍物);设清洁机器人所在坐标为(x0,y0),其行走方向平行于y轴;在其行走方向看到的障碍物的主视图中,障碍物轮廓的左右最边缘的坐标为(x1,y1)和(x2,y2),且y0>y1>y2。图2为清洁机器人单个障碍物避障的运动路径(图中假设网格图形为障碍物)。图2中,清洁机器人的路径的总趋势是向y轴负向移动。由于y0>y1>y2,所以清洁机器人肯定会先遇到点(x1,y1),再遇到(x2,y2)。
图2 清洁机器人单个障碍物避障的运动路径
清洁机器人单个障碍物避障的路径分为4个步骤。具体如下。
步骤1 清洁机器人清扫时先遇到点(x1,y1),该点为障碍物在x轴方向上的最近点。根据能耗计算判断路径方向并在下一次遇障后进入下一个“跨度”,如图2(a)所示。
步骤2 障碍物与障碍物组成了一个清扫区域。清洁机器人在此区域里做迂回运动,根据能耗计算判断路径方向直到该区域被完全覆盖。清洁机器人回到点(x2,y2),如图2(b)所示。
步骤3 清洁机器人前进并绕障碍物行走(朝未清扫方向),然后回到点(x1,y1),如图2(c)所示。
步骤4 清洁机器人继续做迂回运动(朝未清扫方向),根据能耗计算判断路径方向直到将区域完全覆盖,回到点(x2,y2),如图2(d)所示。
2.2 多个障碍物路径分析
由单个障碍物推广到多个障碍物,在上述具体步骤的每一步骤中都有一个判别条件,每一个障碍物就会有4个判别条件,如表1所示。当完成该步骤时,判别为“1”,若未完成该步骤时,判别为“0”。清洁机器人通过关键点判别后续的步骤,以确定明确的行走方向。
表1 判别条件
清洁机器人对两个障碍物的避障路径规划结果,如图3所示。
图3 清洁机器人两个障碍物避障的运动路径
3 试验结果与仿真
为了做出更好的路径,将本文的路径规划与文献[8]路径规划结果进行比较,如图4所示。
图4 室内路径规划
图4(a)为一套房间的平面设计图,通过上述路径规划方法对其进行路径规划。图4中黑点为清洁机器人的位置,细线为清洁机器人的行走路径,中间黑色短线为障碍物,粗线为灯塔发出的红外线,机器人遇到灯塔发出的红外线时作障碍物处理。具体步骤如下。
步骤1 清洁机器人沿边清扫,通过现有自带计算机视觉软件系统扫描生成电子地图。
步骤2 清洁机器人通过能耗分析,选择水平方向为起始运动方向,并进行迂回运动。
步骤3 清洁机器人通过路径规划方案避开所有障碍物,并做到全覆盖。
步骤4 清洁机器人回到充电器座充电。
图4(b)为文献[8]的路径规划避障结果。与本文的路径规划相比,首先,障碍物没有向外做膨胀,而是通过碰撞传感器进行识别。这样可能有一个缺点,就是清洁机器人会与障碍物发生剐蹭,导致两者有损伤。其次,部分路径并没有严格地将关键点作为判断依据,这样可能导致覆盖率不全。最后,当清洁机器人进行到步骤4时,其路径与步骤3的路径之间有一定的距离,虽然这种做法会使路径不重复,但会增加算法难度。由于障碍物边缘的灰尘会更加集中,因此可以适当增加清洁机器人的清扫力度,以解决边缘灰尘的清扫问题。
4 结 语
本文采用迂回式路径规划作为全覆盖路径的基础路径,利用清洁机器人行走时消耗的能量来确定机器人的行走方向。然后通过单个障碍物的路径规划再推到多个障碍物的清扫行走路径。试验模拟仿真表明,这种迂回式的路径规划是有效的。但本文的路径设计中依然有很高的重复率,这也是今后需要改进与研究的重点。
参考文献:
[1] 周学益.清洁机器人全区域覆盖路径算法与避障控制研究[D].重庆:重庆大学,2007.
[2] 罗骋.家用清洁机器人路径探测和路径规划的研究[D].武汉:武汉理工大学,2008.
[3] 曾岑.室内清洁机器人的全区域路径规划及避障研究[D].无锡:江南大学,2008.
[4] 万鸾飞.清洁机器人的路径规划及自充电系统[D].合肥:合肥工业大学,2009.
[5] 李航,宋春华,罗胜彬,等.机器人的研究现状及其发展趋势[J].微特电机,2013,41(4):49-51.
[6] SRIKANTHAKUMAR S,CHEN W H.Optimisation-based verification process of obstacle avoidance systems for unicycle-like mobile robots[J].International Journal of Automation & Computing,2011,8(3):340-347.
[7] HAN Y J,HAHN H S.Vision-based obstacle avoidance in sidewalk environment using top-view transform and optical-flow[J].Journal of Measurement Science and Instrumentation,2011,2(4):341-345.
[8] 闫中奎,何常玉,曹晓明,等.全方位智能清扫垃圾机器人[J].中国科技投资,2013,4(11):111-112.