刘环宇,王 宇,赵柏栋,姚奉裕,李 显,王德权
(大连工业大学机械工程与自动化学院,大连 116034)
机械臂焊接路径规划是指在实际生产环境中为机械臂规划出一条历经所有焊点且不发生障碍的路径,一般以路径最短、完成时间最短或者能耗最低之一作为评价标准[1]。传统的机械臂焊接路径通常依靠工艺人员的经验获得,导致机械臂移动路径长、工作效率低等问题。针对机械臂焊接路径规划问题,国内外学者在智能优化算法上进行了大量的研究。 蚁群算法是基于蚂蚁群体觅食行为提出的一种启发式搜索算法,广泛应用于路径搜索问题中,具有鲁棒性好的优点,但面对复杂路径问题时,存在容易陷入局部最优解等问题。
为解决蚁群算法存在的问题,CAO等[2]提出了动态调整信息素蒸发率改进全局最优性和收敛速度,同时改进启发式函数和状态转移规则,以尽快找到最优解,并改变信息素更新策略,以避免过早收敛。姜伟楠等[3]提出了一种改进的蚁群算法,通过引入人工势场和A*算法的评估函数,减少了蚁群算法初始规划的盲目性,提高了算法的全局最优性。冯超钰等[4]提出了用蚁群算法和粒子群算法混合的算法计算得出合理的焊接路径,并在ROBCAD中建立仿真模型,解决了可达性、障碍等问题。
本文针对蚁群算法容易陷入局部最优的问题,提出一种改进蚁群算法,通过对焊点布局图转换,结合粒子群算法的编码方式,对全局焊点路径求解;引入全局最优路径片段和局部最优路径片段改变信息素更新方式;确定机械臂可视化范围并通过视觉反馈系统反馈障碍坐标,利用三维蚁群算法求解不同焊点间的路径,避免障碍发生;以改进算法为核心代码,基于SQL Server和MATLAB GUI为开发平台,实现数据存储调取和路径求解。
假设某工位有n个焊点需要焊接,可将焊接工位信息通过数学描述表达为:
Z=(V,A,E)
(1)
式中,V为所有焊点集合;A为不同焊点间的路径集合;E为焊点间距离矩阵。
焊点i与焊点j之间的距离用Lij表示,其中i、j=1,2,…,n。用xij表示蚂蚁从焊点i行走到焊点j的决策变量,xij为0表示焊点i与焊点j间的路径已经形成,xij为1表示焊点i与焊点j间的路径未形成[5],则机械臂焊接路径最短的数学模型目标函数为:
(2)
约束条件为:
(3)
式中,τij(t)为t时刻ij路径上的信息素;s为所有未到达焊点的取值;α为信息素重要程度因子;β为启发函数因子;ηij(t)为t时刻ij路径的启发函数,其公式为:
(4)
本文以求解白车身某焊接工位的机械臂焊接路径为研究对象,工位焊点分布如图1所示。
图1 焊点分布示意图
2.1.1 寻找全局路径
完成数学模型更新后,对路径进行编码。以将蚂蚁k寻找到的全局路径pathk为例,可表示为:
(5)
2.1.2 信息素更新
每次循环结束后,对最优路径上的全局信息素浓度进行增强,更新公式为:
(6)
(7)
式中,f(sbest)为全局最优路径pathqj的权值。
通过蚂蚁当前寻找到的路径与全局最优路径及局部最优路径进行比较,将重复的部分定义为全局最优路径片段pqj和局部最优路径片段pjb[8]。增加全局最优路径片段pqj和局部最优路径片段pjb路径上的信息素浓度,减小路径陷入局部最优的概率。路径信息素更新公式为:
(8)
为保证机械臂精确识别障碍发生位置,并将障碍坐标存储在数据库中,在机械臂上安装视觉定位系统和坐标反馈系统。通过从数据库中读取机械臂反馈的障碍坐标,利用三维蚁群算法求解不同焊点之间的路径具体步骤如下:
步骤1:设置机械臂每次沿X、Y、Z方向的最大移动步长分别为LX,max、LY,max、LZ,max,当位于平面αa上的点K对下一个平面αb内的点进行搜索时,存在机械臂可视化范围。
步骤2:沿LY,max方向把平面αa到平面αb的距离进行等量划分,得到n+1个平面Bi(i=a,b…),对n+1个平面分别沿Y、Z方向进行等量划分,得到若干交点,确定障碍点坐标[10]。
步骤3:局部信息素更新公式为
τ(i,j,m)=(1-ξ)τ(i,j,m)
(9)
式中,τ(i,j,m)为点K上的信息素值;ξ为信息素的衰减系数。
步骤4:若迭代次数小于最大迭代次数,则重复步骤3,否则停止计算,输出规避障碍路径。
基于改进蚁群算法的原理,设计MATLAB程序的流程图如图2所示。
图2 改进蚁群算法流程图
为了验证改进算法在机械臂焊接路径规划上的可行性和有效性,分别使用改进前算法和改进后算法对白车身某焊接工位的机械臂焊接路径及进行求解,将求解结果进行对比,体现算法的优越性[11]。两种算法均在MATLAB进行实现,且参数设置相同。蚁群算法通常通过经验选取参数,本文算法在大量实验结果下,选取参数如表1所示。
表1 算法参数
改进前算法仿真结果如图3所示,通过改进算法仿真结果如图4所示。
图3 改进前算法规划路径图 图4 改进后算法规划路径图
通过对比路径求解图3、图4,改进前算法求解的避路径存在着明显的曲折,导致机械臂移动距离增加,改进后算法求解的路径曲折有度,明显优于前者,更符合实际应用情况[12]。算法改进前后最优路径长度与迭代次数的关系如图5所示,仿真结果参数统计如表2所示。
图5 最短路径收敛图
表2 算法数据对比
仿真结果表明,改进后算法的机械臂移动最短路径长度比改进前算法的最短路径长度缩短77.3 mm,缩短了0.47%;迭代次数比改进前算法减少15次,减少了11.7%,具有更好的收敛速度及寻优能力,证明改进后算法对机械臂路径规划效果更优。
根据对机械臂焊接工艺路径规划的需求及改进蚁群算法求解焊接路径的步骤要求,选择MATLAB GUI作为开发工具,以SQL Server 2008数据库作为焊点坐标及障碍坐标数据的存储和调用工具,使改进算法在软件中得到实现[13]。机械臂焊接路径规划软件总体架构图如图6所示。
图6 软件总体架构图
为验证设计软件的有效性和实用性,以规划求解汽车白车身前地板焊接路径为例,使用该软件进行仿真实验。通过数据库参数调用及算法参数的设置,求解的机械臂焊接路径结果如图7所示。
图7 机械臂焊接路径求解结果图
软件求解结果与MATLAB仿真结果一致,证明机械臂焊接路径规划软件具有有效性及稳定性。
(1)改进蚁群算法引入粒子群算法,避免了蚁群算法过早陷入局部最优,增强了算法的寻优能力;制定规避障碍路径蚁群算法,在求解全局焊点路径的基础上解决了不同焊点间可能存在的干涉问题。
(2)通过将改进前后算法在相同参数条件下对同一问题进行MATLAB求解,结果表明:相较于改进前算法,改进算法规划的机械臂焊接路径机械臂移动的最短路径长度缩短了0.47%,迭代次数减少了11.7%,验证了改进算法的优越性。