本发明涉及焊接机器人技术领域,尤其是一种基于离散粒子群算法的焊接机器人焊接路径规划方法。
背景技术:
随着对工业机器人技术的研究越来越深入,机器人技术越来越成熟,其正在成为自动化生产线的重要组成部分,将从事于恶劣环境、繁杂体力劳动的工人解救出来。焊接机器人从事焊接加工,在焊接加工的过程中经常会出现不希望看到的问题,比如机器人启动停车时焊枪末端的抖动,有时会伴随有机器人本体的剧烈震动,焊接时不能精确的运动到指定的焊点位置,电弧焊时焊接路径不精确等,这些焊接问题的出现,都是不能满足焊接任务规划要求的,有的更是不满足安全使用焊接机器人的相关规定。因此这就要求从事机器人研究的人员在对机器人控制系统进行开发的过程中,遵循一定的原则:即保证机器人在加工作业过程中尽量平滑、平稳,也就是要避免位置、速度和加速度的突变,如果运动不平稳会加剧机器人部件的磨损,并导致机器人的振动和冲击。因此为了保证机器人能够高速、平稳的运动到焊接位置,进而提高整个焊接机器人系统的安全性、稳定性和可靠性。焊接机器人进行焊接作业之前的轨迹规划就显得非常重要。
技术实现要素:
本发明所要解决的技术问题在于,提供一种基于离散粒子群算法的焊接机器人焊接路径规划方法,能够达到算法的局部搜索能力和全局搜索能力有所平衡的目的,进而使算法更快的搜索到最优解。
为解决上述技术问题,本发明提供一种基于离散粒子群算法的焊接机器人焊接路径规划方法,包括如下步骤:
(1)建立焊接机器人的路径的数学模型;
(2)建立粒子群算法的模型;
(3)粒子群算法求解的行为参数分析;
(4)离散粒子群算法的焊接机器人路径规划;
(5)输出最优路径。
优选的,步骤(1)中,建立焊接机器人的路径的数学模型,具体为:若需要焊接n个焊点,机器人从某个焊点出发焊接所有焊点后返回起始焊点,已知每个焊点的位置坐标,要求对焊接作业顺序进行合理规划,使得该机器人行走距离最短,并满足以下约束条件:
(1)焊接机器人以某焊点为起点和终点;
(2)每个焊点必须且只能焊接一次;
其数学模型表示如下:
其中:dij表示焊点i和j之间的距离;xij为约束变量,xij=1表示焊接机器人行走路径包含从焊点i到焊点j的这段路径,xij=0表示机器人没有行走i到j这段路径;s表示已经焊接过的焊点集合;|s|表示集合s中元素的个数。
优选的,步骤(2)中,建立粒子群算法的模型,具体为:假设由m个粒子组成一个d维搜索空间的粒子群体,其中用一个d维的向量表示第i个粒子,第i个粒子的飞行速度也用一个d维的向量来表示,记为vi=(vi1,vi2,…,vid),i=1,2,…,m,用pi=(pi1,pi2,…,pid)表示第i个粒子目前搜索到的最优值pbest的位置,pg=(pg1,pg2,…,pgd)表示迄今为止整个群体搜索到的最优值gbest的位置,xi=(xi1,xi2,…,xid),d个焊点,表示第i个粒子对应位置,粒子的适应度函数用f(x)表示,本发明中的f(x)表示焊接机器人所需行走的最短焊接路径;
粒子i的当前最好位置由下式确定:
群体所经历的最好位置可由式(7)确定:
在找到两个最优值(pbest和gbest)时,粒子根据公式(8)和(9)来更新自己的速度和新的位置:
其中i=1,2,…,m表示粒子个数;d=1,2,…,d表示搜索空间的维数;k为迭代计算的次数;
优选的,步骤(3)中,粒子群算法求解的行为参数分析,具体为:
(1)改进惯性因子ω
惯性因子线性递减公式如式(10)所示:
式(10)中,tm表示算法设定的最大终止迭代次数,t表示算法当前迭代次数,ωs表示算法设定的初始惯性权重,ωe表示算法设定的终止惯性权重;本发明求解焊接机器人最优焊接路径的离散粒子群算法,选用式(10)这种线性递减算式来对惯性因子进行调整;
(2)学习因子分析
学习因子c1和c2,如式(11)和(12)所示;这种学习因子,在算法初期通过加速c1的变大和c2的变小,从而加快了前期全局搜索能力,使得算法快速进入局部搜索阶段;而在算法后期,通过c1和c2的合理变化,使算法仍保持一定的搜索速度,避免过早收敛到局部极值,尽可能获得最优解。
其中,c1s、c2s表示学习因子c1和c2的初始设定值,c1e、c2e表示表示学习因子c1和c2的设定终值,t表示算法当前迭代次数,tmax为设定的算法最大迭代次数;本发明求解焊接机器人最优焊接路径的离散粒子群算法,选用式(11)和(12)反余弦策略来对学习因子进行调整;
(3)粒子速度位置更新公式
结合交换序和交换子的概念,把速度和位置更新公式(8)和(9)进行重新定义,以适用于求解焊接机器人路径规划问题;把xid定义为焊点顺序的一个随机全排列(初始位置),vid定义为焊点个数的一个全排列(交换集);依照交换子和交换序的运算法则,式(8)和(9)更新为式(13)和(14):
其中,其它参数与粒子群算法的模型中的定义保持一样。
优选的,步骤4所述离散粒子群算法的焊接机器人路径规划,具体为:
(41)初始化粒子群,每个粒子赋一个随机焊点位置的全排列xid和一个随机的交换集vid;
(42)评价每个粒子的适应度值,如果达到结束条件最大迭代次数,则结束,同时显示求出的最优解、最优路径、适应度值进化曲线等;否则继续执行(43);
(43)根据粒子当前位置xid,计算其下一个位置xi'd,即新解;
(431)计算交换序
(432)根据式(13)将基本交换序
(433)根据式(14)计算搜索到的新解;
(44)根据式(6)更新单个粒子搜索到的最优位置pid;
(45)根据式(7)更新群体的最优位置pgd;
(46)转到(42)。
本发明的有益效果为:本发明在焊接机器人进行焊接作业之前,通过对焊接任务进行分析,在保证焊接所有焊点的情况下,不能有漏焊,更不能有重复焊,力求寻找到一条焊接机器人运行距离最短的焊接路径;本发明采用粒子群优化算法,通过设置不同的惯性权重算式,提升粒子群算法的自适应调节能力,从而达到算法的局部搜索能力和全局搜索能力有所平衡的目的,进而使算法更快的搜索到最优解;具体在用算法解决优化问题时,引入适应度函数(fitnessfunction)来对每个粒子对应的最优解进行评价,通过适应度函数评价,不断更新pbest和gbest,以此来产生新一代更优异的种群,始终保持每个粒子对应的最优解,和整个种群对应的最优解,都是目前为止搜索到的最优的,为了将粒子群算法用于离散空间优化问题的求解,引入了交换子和交换序的概念,本发明可以提高搜索速度和路径质量。
附图说明
图1是本发明计算时的焊点坐标示意图。
图2是本发明仿真得到的粒子群算法进化曲线示意图。
图3是本发明最终得到的粒子群算法最优路径示意图。
图4是本发明的基于离散粒子群算法的焊接机器人焊接路径规划方法的流程示意图。
具体实施方式
如图1-4所示,一种基于离散粒子群算法的焊接机器人焊接路径规划方法,包括如下步骤:
步骤一:建立焊接机器人的路径的数学模型;
焊接机器人的路径优化问题可描述为:若需要焊接n个焊点,机器人从某个焊点出发焊接所有焊点后返回起始焊点。已知每个焊点的位置坐标,要求对焊接作业顺序进行合理规划,使得该机器人行走距离最短,并满足以下约束条件:
(1)焊接机器人以某焊点为起点和终点;
(2)每个焊点必须且只能焊接一次。
其数学模型表示如下:
其中:dij表示焊点i和j之间的距离;xij为约束变量,xij=1表示焊接机器人行走路径包含从焊点i到焊点j的这段路径,xij=0表示机器人没有行走i到j这段路径;s表示已经焊接过的焊点集合;|s|表示集合s中元素的个数。
步骤二:粒子群算法的模型;
假设由m个粒子组成一个d维搜索空间的粒子群体。其中用一个d维的向量表示第i个粒子,第i个粒子的飞行速度也用一个d维的向量来表示,记为vi=(vi1,vi2,…,vid),i=1,2,…,m。用pi=(pi1,pi2,…,pid)表示第i个粒子目前搜索到的最优值pbest的位置,pg=(pg1,pg2,…,pgd)表示迄今为止整个群体搜索到的最优值gbest的位置,xi=(xi1,xi2,…,xid),d个焊点,表示第i个粒子对应位置。粒子的适应度函数用f(x)表示,本发明中的f(x)表示焊接机器人所需行走的最短焊接路径。
粒子i的当前最好位置由下式确定:
群体所经历的最好位置可由式(7)确定:
在找到两个最优值(pbest和gbest)时,粒子根据公式(8)和(9)来更新自己的速度和新的位置:
其中i=1,2,…,m表示粒子个数;d=1,2,…,d表示搜索空间的维数;k为迭代计算的次数;
步骤三:粒子群算法求解的行为参数分析;
3.1改进惯性因子ω
shi等经过多组反复实验后,得出惯性因子线性递减公式如式(10)所示:
式(10)中,tm表示算法设定的最大终止迭代次数,t表示算法当前迭代次数,ωs表示算法设定的初始惯性权重,ωe表示算法设定的终止惯性权重。
本发明求解焊接机器人最优焊接路径的离散粒子群算法,选用式(10)这种线性递减算式来对惯性因子进行调整。
3.2学习因子分析
学习因子c1和c2,如式(11)和(12)所示。这种学习因子,在算法初期通过加速c1的变大和c2的变小,从而加快了前期全局搜索能力,使得算法快速进入局部搜索阶段;而在算法后期,通过c1和c2的合理变化,使算法仍保持一定的搜索速度,避免过早收敛到局部极值,尽可能获得最优解。
其中,c1s、c2s表示学习因子c1和c2的初始设定值,c1e、c2e表示表示学习因子c1和c2的设定终值,t表示算法当前迭代次数,tmax为设定的算法最大迭代次数。本发明求解焊接机器人最优焊接路径的离散粒子群算法,选用式(2.11)和(2.12)反余弦策略来对学习因子进行调整。
3.3粒子速度位置更新公式
结合焊接机器人路径规划问题,可描述如下:每个粒子与焊点位置的全排列(一条焊接路径)相对应,比如第i个粒子对应位置xi=(xi1,xi2,…,xid)(d个焊点),把速度定义为焊点位置的交换集。位置加上速度的运算,定义为依次交换速度中所有的变换子。位置与位置做减法运算,结果为速度;速度与速度做加法运算,结果为速度;位置与速度做加法运算,结果为位置。位置与位置做减法运算,结果生成一组交换集。
结合交换序和交换子的概念,把速度和位置更新公式(8)和(9)进行重新定义,以适用于求解焊接机器人路径规划问题。把xid定义为焊点顺序的一个随机全排列(初始位置),vid定义为焊点个数的一个全排列(交换集)。依照交换子和交换序的运算法则,式(8)和(9)更新为式(13)和(14):
其中,其它参数与粒子群算法的模型中的定义保持一样。
步骤四:离散粒子群算法的焊接机器人路径规划;
离散粒子群算法用于求解焊接机器人路径规划问题时,其算法的流程如下:
4.1:初始化粒子群,每个粒子赋一个随机焊点位置的全排列(xid)和一个随机的交换集(vid);
4.2:评价每个粒子的适应度值,如果达到结束条件最大迭代次数,则结束,同时显示求出的最优解、最优路径、适应度值进化曲线等;否则继续执行4.3;
4.3:根据粒子当前位置xid,计算其下一个位置xi'd,即新解;
1)计算交换序
2)根据式(13)将基本交换序
3)根据式(14)计算搜索到的新解;
4.4:根据式(6)更新单个粒子搜索到的最优位置pid;
4.5:根据式(7)更新群体的最优位置pgd;
4.6:转到4.2。
步骤五:根据优化算法输出最优路径;
为了验证离散粒子算法求解焊接机器人最优焊接路径的可行性,本发明用matlab编写粒子群算法的程序并进行试验仿真。
实验中,算法采用图1显示的数据和适应度函数。粒子群算法的控制参数设定如下:种群规模为m=30,学习因子取c1s=0.9,c1e=0.1,c2s=0.1,c2e=0.9,惯性权重ωs=0.96,ωe=0.1,最大迭代次数t=30,50,100,200,300,400。应用图1给出的每个焊点的坐标(研究选取30个焊接点,作为焊接机器人的焊接任务),及算法参数设置,重复测试50次,优化结果表所示。
表1粒子群算法的优化结果
从表中可以看出粒子群算法在有限的迭代次数内找到焊接机器人的最优路径或近似最优路径,其路径的平均值为11.8829。说明粒子群算法每次运算搜索到的最优路径已经接近于实际的最优路径。最优值为10.3235。迭代次数为400时粒子群算法的最优路径的进化曲线如图2所示。迭代次数为400时粒子群算法的最优路径图如图3所示。
尽管本发明就优选实施方式进行了示意和描述,但本领域的技术人员应当理解,只要不超出本发明的权利要求所限定的范围,可以对本发明进行各种变化和修改。