李奕铭, 王 浩
(合肥工业大学 计 算机与信息学院,安徽 合 肥 230009)
移动机器人在移动过程中是否能快速、准确地对周围环境做出反应,实时避开前进中的障碍物,并且不间断地移动到目的地是非常重要的,也是目前移动机器人研究的重点。移动机器人的避障控制方法有很多,根据对环境信息获取方式的不同情形,可以将机器人避障和路径规划分为如下2种类型:① 基于环境信息完全已知的全局路径规划,即静态规划;② 基于从传感器实时获取信息的局部路径规划,即动态规划。全局路径规划目前比较成熟,它首先对环境建模,然后进行路径搜索。
环境建模的主要方法有可视图法及栅格法[1]等;局部路径规划的主要方法有人工势场法[2]、遗传算法[3]和模糊逻辑算法等。目前使用的主要方法是人工势场法和栅格法,这些方法各有优缺点,没有一种方法能够完全适用于任何场合。静态规划以环境模型为基础进行全局无碰撞路径规划,可方便地搜索到全局目标,但无法适应变化的环境和回避动态障碍物;动态规划不需事先进行规划,而是让机器人直接响应环境变化,应用传感器获取的环境信息实现实时回避障碍物,因而具有快速、实时、高效的特点,但是容易丧失目标甚至掉入局部陷阱区域。
通过以上讨论,可以看出不同的避障算法都有着不同的优点和缺点。人工势场法在全局路径规划中的避障非常有效,但是很容易出现振荡、摆动现象;栅格法不能解决环境分辨率和环境信息存储量大的问题,且栅格粒度大小的确定也是一个很难解决的问题;人工神经网络[4]和遗传算法能找到最优的路径,但是算法相对复杂且开销很大,不一定适合快速动态的环境,尤其是在狭小复杂的动态空间。
为了更好地使机器人能在复杂多变的环境中安全稳定地移动,本文提出了一种基于反应式的移动机器人避障方法。该方法基于从传感器实时获取信息进行局部路径规划,并且只针对静态障碍物的存在。
该方法通过对ND(Nearness diagram,简称ND)算法[5]进行改进,并结合一种基于行为融合的机器人自主避障方法[6],得到一种新的基于反应式的移动机器人避障算法。
通过使用划分扇区[7]的方法分解机器人的环境信息;然后通过设定情景-动作规则将机器人所处环境分类成不同的情景;最后根据不同的情景动态调整机器人前进路线,使机器人能安全、快速、平滑地向目标点前进。
为了能更好地使机器人适应各种不同的环境,在本方法中使用了动态规划,即一种反应式导航方法,它使用一种基于位置的“分而治之”的策略,将机器人所处的环境分解成不同的情景,从而简化导航的难度。
首先通过传感器获得周围信息,然后根据所获得的信息辨别当前机器人所处情景,接着根据所处情景选择相应的动作执行,而动作的选择则需要通过定义的位置-动作规则来决定。
根据不同的情景,选择相对应的动作移动机器人,所以,情景设计需要考虑到机器人的各种处境。在设计情景过程中,将机器人、障碍物和目标点等综合起来考虑,通过它们之间的联系逐一设计各种情景。
在描述机器人与障碍物(OBS)之间的关系时,引入了一个安全区域(Safety-area)的概念,此安全区域即为以移动机器人质心为圆心、以ds+R为半径的圆形区域,其中R为移动机器人半径,ds为0.4m。另外,引入一个目标区域(Goal-area)的概念,目标区域为移动机器人根据规则最终选择移动的区域。
Goal-area的计算方法如下:寻找分布在扫描范围内每个障碍物的边缘gaps;将2个邻近的非同一个障碍物的gap之间的区域作为Goal-area的备选区域集;从Goal-area的备选区域集中选择最靠近目标点。
假设目标点左侧的可行区域为R1,目标点右侧的可行区域为R2,区域R1中靠近目标点的gap为g1,区域R2中靠近目标点的gap为g2;如果目标点到g1的垂直距离小于目标点到g2的垂直距离,那么R1即为最靠近目标点的区域;反之,R2则为最靠近目标点的区域。可安全行驶的区域作为最终的Goal-area,如图1所示。
图1 安全行驶区域
在建立机器人、障碍物、目标点之间相互联系的基础上,可以通过机器人的传感器获得场上的具体信息,从而按照规则来确定情景集,将这一系列规则定义为情景-动作规则。
(1)安全规则,称为规则1。定义2种安全系数,即高安全系数(high-safety)和低安全系数(low-safety)。如果移动机器人的 Safety-area中没有障碍物,就定义机器人处于高安全系数;反之,如果移动机器人的Safety-area中存在障碍物,就定义机器人处于低安全系数。
(2)危险障碍物分布规则,称为规则2。将存在于Safety-area中的障碍物称为危险障碍物,而在Safety-area中危险障碍物的分布又可以分成2种不同的情况,即机器人一侧有危险障碍物和机器人两侧都有危险障碍物。
(3)目标点是否能直接到达规则,称为规则3。根据目标点是否在Goal-area中来判断目标点能否直接到达,即能直接到达和不能直接到达。
(4)Goal-area宽度规则,称为规则4。当Goal-area的角度大于给定的某个角度(本文定义为120°)时,称之为宽角度 wide-angel;反之,称之为窄角度narrow-angel。
通过规则定义机器人所处环境情景集。
(1)LSNG1(low-safety no goal 1)。根据规则1、规则2,可以定义情景LSNG1,即目标点不在 Goal-area中,同时,移动机器人的Safety-area中有危险障碍物,且只有一侧有危险障碍物,如图2a所示。
(2)LSNG2(low-safety no goal 2)。根据规则1、规则2,可以定义情景LSNG2,即目标点不在 Goal-area中,同时,移动机器人的 Safety-area中有危险障碍物,且两侧都有危险障碍物,如图2b所示。
(3)GR(goal in goal-area)。根据规则1和规则3,如果机器人能直接到达目标点,定义此情景为GR,如图3所示。
(4)HSWA(high-safety wide angel)。根据规则1、规则3和规则4,可以定义情景HSWA,即机器人不能直接到达目标点,同时,机器人处于高安全系数high-safety,且 Goal-area为宽角度,如图4a所示。
图2 LSNG情景示例
图3 GR情景示例
(5)HSNA(low-safety narrow angel)。根据规则1、规则3和规则4,可以定义情景HSWA,即机器人不能直接到达目标点,同时,机器人处于高安全系数high-safety,且 Goal-area为窄角度,如图4b所示。
图4 HSNA情景示例
在本文中,由于通过情景-动作规则确定机器人最终移动方式,所以需要根据情景集建立相对应的动作集。而所建立的动作集必须能解决上述所有避障情景,使得机器人能安全、平滑地向目标点行驶。避障决策树如图5所示。
图5 避障决策树
(1)驶向目标点行为。该行为适用于GR情景,机器人可以直接向目标点行驶,而无需考虑障碍物的避免。
(2)避障行为。该行为适用于LSNG1和LSNG2情景,因为在这2种情景中,机器人的Safety-area中都存在危险障碍物,所以,机器人首先考虑的是避免撞上障碍物,同时,缓慢向目标点前进。
(3)搜索行为。该行为适用于 HSWA和HSNA情景,在这2种情景环境下,目标点不在Goal-area中,且机器人的Safety-area中没有障碍物,所以,机器人不需要考虑避障问题,只需考虑搜寻目标点即可。
在完成情景和动作设计后,可以根据情景-动作规则建立避障决策图(见图5),直观地了解整个基于反应式的移动机器人的避障工作原理。
本文中定义移动机器人为圆形,其半径为R,且移动机器人行驶的路面是光滑平整的。因此,机器人的动作命令定义为 Action:(θ,vm,w)。其中,vm表示机器人行驶速度;θ表示机器人转动角度;w表示机器人转动速度。
(1)以移动机器人为中心的360°圆形区域均等地划分为n(n=144)个扇区,每个扇区大小为μ=2.5°,定义机器人当前正对方向为第0个扇区,然后以顺时针的方向逐渐增加,直到最后一个扇区(第143个扇区)。如果某个扇区s被选中,则机器人转动角度为:
当θ为正时,即机器人顺时针转动θ角度;当θ为负时,即机器人逆时针转动|θ|角度。
(2)定义L为某个障碍物的一系列边缘点集合,λi(L)为从机器人到当前障碍物的最短距离。当λi(L)=0时,表示在扇区i中没有障碍物,且λi(L)最大值max(λi(L))=dm,dm为传感器扫描的最大范围,本文中dm=3m。
(3)引入一个判定值PRO,即从机器人圆心到障碍物的接近度,PRO计算方法如下:
在引入了判定值PRO后,可以根据其情况确定情景集。
(1)gaps。gaps是指在有效范围内所扫描到的障碍物的边缘,它是PRO值中的间断点,在相邻的2个扇区 (i,j),如果满足|PROi-PROj|>2R,则称此处存在一个gap。
(2)Regions。在选择目标区域Goal-area之前,先找到所有可行的目标区域集,然后才能在其中选择最终的Goal-area。1个Region是由2个连续的gap组成的,同时,它必须满足几个条件。定义S= {0,1,2,…,n-1}为144个扇区集,每个Region都是S中的连续非空子集,定义Region为V,即V = {l,…,r}。
当V中不存在间断点,则V是连续的;当V中存在2个间断点(l,r),有
(3)Goal-area。在计算出目标区域集之后,可以从中选择最终的目标区域Goal-area。在目标区域集中选择的Goal-area应满足以下条件:目标区域最靠近目标点所在扇区Sgoal;目标区域机器人是可行驶的。
在得到Goal-area后,根据上述4条规则可以得到当前机器人所处的情景,从而根据情景选择相对应的动作。
同时,采用以下标记来描述机器人周围环境信息。
Sgoal:目标点所在扇区。
Sn1和Sn2:Sn1为 Goal-area区域中最靠近目标点的gap;Sn2为Goal-area区域中另一个gap。
Sml和Smr:假设OBS为在Safety-area中靠近目标点一侧的危险障碍物,那么Sml为OBS中最靠近机器人的扇区;同样,Smr为另一侧最靠近机器人的扇区。
获得机器人所处情景后,可以选择相对应的动作,是趋向目标点行为、避障行为还是搜索行为。在每种情景下,具体的动作命令Action:(θ,vm,w )概述如下:
(1)LSNG1。当机器人处于LSNG1情景时,由于在安全区域Safety-area中存在障碍物,所以机器人应该选择避障行为,而且机器人应该向偏离危险障碍物的方向行驶,从而避开危险障碍物并缓慢安全地向目标点行驶。LSNG1的动作命令如图6a所示。
(2)LSNG2。在此情景下,由于在安全区域Safety-area中,机器人两侧都存在危险障碍物,所以机器人应该选择避障行为,且机器人应该从2个危险障碍物之间行驶,以防撞上障碍物。同时,在这种情况下机器人很容易撞上障碍物,所以机器人的转动速度和移动速度都应该大幅度地降低。
LSNG2的动作命令如图6b所示。
(3)GR。在此情景下,机器人能直接到达目标点,所以机器人应该选择驶向目标点行为,机器人直接向目标点方向行驶。GR动作命令如图7所示。
图6 LSNG动作命令
图7 GR动作命令
(4)HSWA。在 HSWA情景下,机器人的Goal-area为宽角度,所以,在此情景下,机器人选择搜索行为,且机器人应沿着障碍物的边缘朝着目标点向前行驶追踪目标。HSWA的动作命令如图8a所示。
(5)HSNA。在 HSWA情景下,机器人的Goal-area为窄角度,所以,在此情景下,机器人选择搜索行为,且机器人应沿着Goal-area的角平分线行驶追踪目标。HSNA的动作命令如图8b所示。
图8 HSWA和HSNA动作命令
对于大多数避障算法,往往存在着同样难以解决的困难,即如何能有效地防止在狭小空间里的振荡和避开U型陷阱,所以这些因素往往成为评判一个避障方法好坏的标准。
当机器人在行驶过程中即将遇到障碍物时,机器人如何避免驶入U型障碍,如图9a所示。根据本文基于反应式的避障算法,通过情景-动作规则,可以计算出机器人向目标点移动的动作命令;通过绘制路线,可以得到机器人的模拟行驶路线,如图9b所示。
图9 机器人避免U型障碍行驶路线
通过实验可以看出,机器人能很好地避免U型障碍,因为在算法中引入了Goal-area的概念。当机器人扫描到U型障碍时,机器人只会当作一个障碍物,而只寻找其边缘gaps,这样在U型障碍中就不存在备选目标区域region,更不可能有目标区域Goal-area,从而降低了驶入U型障碍中的可能性。
当机器人在行驶过程中遇到狭小空间时,机器人如何安全平滑地避开障碍物,且避免不停地振荡,如图10a所示。根据避障算法,通过情景-动作规则,可以计算出机器人向目标点移动的动作命令。通过绘制路线,可以得到机器人的模拟行驶路线,如图10b所示。
通过实验可以看出,对于狭小空间下的避障,机器人能够稳定平滑地避开,因为在算法中引入了Safety-area的概念,当机器人处于狭小空间时,根据Safety-area判断机器人周围是否有障碍物,并判断其分布情况。当机器人的Safety-area中一侧有障碍物时,机器人会稍微向远离障碍物的方向移动;当机器人的Safety-area中两侧都有障碍物时,机器人大致会从2个障碍物的中间通过。由于最终选择的目标区域Goal-area永远是靠近目标点的,所以机器人的移动始终是向目标点前进,故极大地降低了局部振荡行为。
图10 狭小环境下机器人行驶路线
本文提出一种基于环境信息分类的移动机器人避障方法,将复杂的环境信息分成不同的情景,从而降低机器人避障的复杂度。
本文中考虑的障碍物都是静态障碍物,没有考虑动态障碍物的存在,所以,在该方法中加入动态障碍物是以后的另一个研究方向。同时,根据一种基于传感器数学模型的数据融合避障方法[8],也可以将本文中的行为融合改进成行为融合与数据融合相结合的方式,从而增加避障的成功率和避障路径最优性。
[1] 周郭许,唐西林.基于栅格模型的机器人路径规划快速算法[J].计算机工程与应用,2006,42(21):196-199.
[2] Khatib O.Real-time obstacle avoidance for manipulator and mobile robots[J].The International Journal of Robotics Research,1986,5(1):90-98.
[3] Wu Chengdong,Zhang Ying,Li Mengxin,et al.A rough set GA-based hybrid method for robot path planning[J].International Jounrnal of Automation and Computing,2006,3(1):29-34.
[4] Xiao Hairong,Li Liao,Zhou Fengyu.Mobile robot path planning based on Q-ANN[C]//Automation and Logistics IEEE International Conference on,Jinan,China,2007:2650-2654.
[5] Minguez J,Montano L.Nearness diagram(ND)navigation:collision avoidance in troublesome scenarios[J].IEEE Transactions on Robotics and Automation,2004,20(1):45-59.
[6] 鲍庆勇,李舜酩,沈 垣,等.基于行为融合的移动机器人自主避障算法[J].传感器与微系统,2010,29(5):70-73.
[7] 顾 民,葛良全.基于扇形扫描的机器人避障算法[J].微计算机信息,2007,23(20,):212-213.
[8] 肖本贤,李善寿,赵明阳,等.基于传感器数学模型的数据融合方法及避障研究[J].合肥工业大学学报:自然科学版,2007,30(2):178-181.