摘要:针对SCARA机器人在水平面内躲避障碍物的轨迹规划问题,基于几何学与人工智能学理论,提出一种智能控制算法,用于生成SCARA机器人避障路径上的关节坐标值序列。仿真结果表明,该控制算法能快速有效地实现SCARA机器人在X-Y平面内的二维避障,具有较强的工程实用性。
关键词:SCARA机器人; 二维避障; 智能控制; A*算法
1. 引 言
当前,SCARA机器人广泛应用于电子、汽车、塑料、食品等工业领域,其主要职能是完成搬运和装配工作。随着加工工艺的复杂性与精确性不断提升,SCARA机器人在流水线上经常需要与其他工业设备协同作业,难免会出现与障碍物发生碰撞的危险。因此,对工作范围内存在障碍物的SCARA机器人的运动轨迹进行规划便显得尤为重要。
轨迹规划(Path Planning)是指给定环境的障碍物条件,以及起始点和目标点位置,要求选择一条从起始点到目标点的路径,使SCARA机器人能安全、无碰撞地通过所有的障碍物。这种自主地躲避障碍物并完成作业任务是SCARA机器人研究中的一个重要内容。轨迹规划的实质是预先给定SCARA机器人作业路径上的关节坐标值序列,使其沿预定路径运动。对于四轴机器人而言,关节3的纵向运动与关节4的带夹具运动均具有较强的灵活性,可以根据实际情况用简单的运动指令实时控制以躲避障碍物;而关节1与关节2在水平面内的关联运动在很大程度上决定了SCARA机器人的主要位姿,是障碍物避碰的主导因素。所以,合理规划关节1与关节2在水平面内的关节坐标值序列是实现避障的前提和关键。本文即是针对SCARA机器人的二维避障问题,基于几何学与人工智能学理论,提出了一种智能控制算法并加以仿真验证。
2. 二维避障智能控制算法设计
工业现场的实际障碍物虽具有多种平面形状,但任何形状的障碍物均可用其外接圆柱体包围。为简化对问题的描述又不失一般性,文中假定实际障碍物为圆柱体结构,映射到X-Y水平面上即为一圆形区域。本算法的总体思路为:先将关节1与关节2构成的关节空间q1-q2栅格化为有限个小方块,并对每个小方块编号,设定坐标值;然后将直角坐标系X-Y下的圆形障碍区域转化为关节空间中不可达的小方块群,求出它们的编号,并给可达矩阵赋值;再采用人工智能理论中具有启发式搜索的A*算法在关节空间中求出避障路径点的编号序列;最后将该编号序列转换为对应的关节坐标值序列,关节1与关节2依次取对应的关节角度值运动即可实现二维避障控制.
2.1 关节空间q1-q2栅格化
假定SCARA机器人关节1和关节2的运动范围均为[-120 ,120 ],取细分精度为6 (可根据实际情况灵活选择细分精度),可将关节坐标轴q1、q2均划分为[120-(-120)] / 6 = 40条相等的小线段,分别在每条小线段的端点作q1轴与q2轴的平行线,所有平行线相交,可将关节空间平面划分为40*40 = 1600个面积相等的小方块,从而实现了关节空间q1-q2的栅格化,如图3所示。
然后,对每个小方块进行编号并设定关节坐标值,按照从左至右、从下至上依次增大的原则,编号取[1,1600]之间的整数,在图3中,左下角小方块编号为1,右上角编号为1600,1号小方块正上方的小方块编号为41,依此类推,可得出所有小方块的唯一相异编号值。
最后对每个小方块赋坐标值,为使坐标值分布均匀,取每个小方块的中心坐标(q1,q2)为其坐标值。则1号小方块的坐标值为(-117 ,-117 ),1600号小方块的坐标值为(117 ,117 ),41号小方块的坐标值为(-117 ,-111 ),依此类推,可得出所有小方块的唯一相异坐标值。
2.2 确定障碍区域
在图1中的直角坐标系下,O为坐标原点,OA2与A2B2分别为SCARA机器人的大臂与小臂,由右手螺旋法则易知,实线OA2B2表示本体处于关节坐标为(-117 ,-117 )的位姿,对应关节空间中的1号小方块;虚线OMN表示本体与X轴正向重合时的位姿;虚线OA1B1则表示本体处于关节坐标为(117 ,117 )的位姿,对应关节空间中的1600号小方块。图中蓝色与黑色虚线包围的空间即为本体的活动区域,在该区域内假设存在两个圆形障碍物圆K1与圆K2,两圆半径均已知。由于本算法要求在关节坐标系下规划避障路径,所以要先将直角坐标系下的障碍区域转换为关节坐标系下对应的编号群。
当大臂处于OG1与OJ1之间时,小臂可能与圆K1发生碰撞。仅考虑右手关节坐标系时,这一区间内的任一q1值均有两个q2值:q20与q21与之对应。其中q20为碰撞开始时的关节2角度,q21为碰撞结束时的关节2角度。两者相差为类似于角Q1G1F1的两倍的某个角度值。采用几何学方法,设位姿OG1F1为小臂末端与圆K1发生碰撞的一个极限状态,而OG1Q1为小臂延长线与圆K1相切时的位姿,切点为Q1。由图中所示的几何关系,可求出角Q1G1F1的角度值,同时在q20的基础上加上两倍的Q1G1F1的角度值,即为q21。
左手关节坐标系下的情况完全相似,不再骜述。据此可求出在q1在可能碰撞区间内的每个q2的最大最小值,从而确定障碍物K1在关节空间中的边界值。
同法也可求出圆形障碍物K2在关节空间中的边界值。
根据连通性原理,直角坐标中连通闭合的圆形区域在关节空间中必然也是连通闭合的区域。只要将求出的边界值连接起来,闭合的范围就是关节坐标系下的障碍区域,而这些区域覆盖到的小方块群即为圆形障碍区域映射到关节空间内的障碍区域。
在算法中需设定一个可达矩阵,其维数为1600*1600,各元素取0或1,0表示两个小方块之间不可达,1表示可达。将障碍区域编号群中的每个编号值在可达矩阵中对应的行和列均取为0。同时为了保证每个小方块只能与其紧邻的八个小方块相通(关节空间四角的小方块只与其紧邻的三个小方块相通,四边的小方块只与其紧邻的五个小方块相通),而不出现跳步,还应在可达矩阵的相应位置赋0值。
2.3 搜索避障路径编号序列
在关节空间中搜索避障路径是本算法的根本所在,而搜索方式又具有决定性影响,本算法中采用A*算法实现搜索。A*算法是人工智能中的一种典型的启发式搜索算法,在实时系统、智能控制等方面应用较广,其智能性主要体现在仅需已知起始点S、目标点G的编号与障碍区域的编号群,无需外部条件与人为判断即可实现最优避障路径的自动搜索。
本算法中先建立两个表OpenList与ClosedList,分别存放搜索过程中已生成而未扩展的小方块编号与扩展后的小方块编号;再定义估价函数 f(n) = g(n) + h(n) 用于决定搜索方向和扩展对象,其中g(n)表示起始点S与当前小方块N之间的关节坐标距离,h(n)表示当前小方块N与目标点G之间的距离;在每一步搜索时取对应f(n)值最小的小方块进行扩展,并将该路径的编号依次存放在表ClosedList中;当搜索到的当前小方块N的编号等于目标点G的编号时结束搜索;最后将ClosedList中的编号回溯即为所求的避障路径编号序列。
2.4 确定避障路径关节坐标值序列
由关节空间栅格化过程可知,小方块编号值与关节坐标值是唯一对应的,求出避障路径编号序列后,只需将编号依次与关节坐标对应,即可求出最终的避障路径关节坐标值序列。当SCARA机器人的关节1和关节2依次取该序列中的每一个坐标值运动时,反映在直角坐标系下即为从起始位姿到目标位姿的二维智能避障全过程。
3. 仿真实例
以深圳市众为兴数控技术有限公司自主研发的SCARA机器人MR-401-600为例,进行仿真验证。MR-401-600的大臂、小臂长度分别为350mm、250mm,关节1和关节2的取值范围及空间划分参照2.1小节中的数据,设关节空间中的起始点S为1号小方块,目标点G为1600号小方块。圆形障碍物K1、K2在直角坐标系下的圆心坐标分别为(350,400)、(200,-420),半径分别为80mm、60mm。将可能发生碰撞的关节1取值区间划分为180个离散点,以充分逼近关节空间内的障碍区域。采用MATLAB语言进行仿真试验,本二维避障智能控制算法进行路径规划的搜索时间为1.5449秒,仿真结果如图2至图4所示。其中,图2为左右手系下的障碍区域;图3为关节坐标空间中二维避障路径的规划结果,左下角的绿色五角星为起始点,右上角的红色五角星为目标点,红色点阵为障碍区域,绿色点阵连线为避障路径,表示MR-401-600从大小臂均为负最大角度的位姿开始运动并依次躲避两个圆形障碍物,到达大小臂均为正最大角度的位姿;图4为MR-401-600在直角坐标系下实现二维避障的动态演示过程,图中黑色为大臂每时刻状态,蓝色为小臂每时刻状态,绿色虚线为小臂末端的实际运动轨迹。仿真结果表明,SCARA机器人MR-401-600能成功躲避障碍物并完成预定的路径任务,实现从起始点到目标点的无碰撞运动。
4. 结 论
本文提出的二维避障智能控制算法能有效规划出优化路径,成功解决SCARA机器人在平面内的障碍物避碰问题,具有一定的理论研究价值与较强的实际应用潜力。需要指出的是,由于本算法基于图形中小方块的搜索,关节空间的细分精度对算法的效率影响较大。细分精度过高会降低搜索速度,过少则会降低搜索精度。因此,用户应根据工艺要求与实际情况适中取值,以使算法发挥其最大效用。
参考文献
[1] 黄献龙,梁斌等. 机器人避碰规划综述[J]. 控制工程. 2000(6), pp. 28-35.
[2] 丁富强, 费燕琼等. 双臂SCARATES机器人实时无碰撞运动规划[J]. 上海交通大学学报. 37(11), pp. 1690-1693, 2003.
[3] 钱东海, 马毅潇等. 双臂SCARA型机器人C空间快速建立算法[J]. 机械科学与技术. 18(1), pp. 65-68, 1999.