基于改进蚁群算法包装机器人轨迹规划分析

2021-03-16 04:01吕金隆王克帅
中国新技术新产品 2021年24期
关键词:蚂蚁轨迹机器人

吕金隆 王克帅

(潍坊科技学院,山东 潍坊 262700)

0 引言

互联网时代下,电商行业快速发展,引领包装行业的包装类型不断增多,消费者对包装提出了更多、更严格的要求。已有报道显示,在机器人总数中包装类机器人的占比很高,但是其在现场应用时存在性能参差不齐及定位精准度不高等问题。蚁群算法在机器人轨迹规划领域中有广泛的应用场景,但在测求全局最优路径时会耗用较高的时间成本,且容易出现局部最优解。为了改善以上情况,笔者提出一种全新的结合人工势场法和蚁群算法的轨迹规划方法,2 种算法实现优势叠加,协同缩短路径检索时间,提升收敛速度,提升机器人在取放货物时的性能稳定性与定位准确度。

1 基于D-H 参数法构建机器人模型

该课题在研究时采用AUBO i5 六自由度串联协作机器人[1]。

Denavit等人早在1995年就提出了D-H参数这种系统化方法,将其称为Enavit-Hartenberg 参数。表1 统计了AUBO i5 机器人连杆D-H 参数在MATLAB 内构建机器人运动学模型,进而去阐释机构之间的运动关系[2]。在表1 内,αn、θn、an以及bn分别为2 个相毗邻关节轴之间形成的夹角、相邻两连杆围绕公共轴线的旋转角、两关节轴之间公垂线的长度值以及沿着2 个相邻公共轴线方向的距离值。

表1 AUBO i5 机器人的连杆参数统计

2 蚁群算法的原理及改进

2.1 算法原理

在多数情况下,可以将蚂蚁行走路线看成是一项形式特殊的旅行问题,考虑其精准躲避障碍物造成的影响、计算起始点和终止点之间最短路线,并以此为依据确定实际的行进路线。假设蚂蚁在i、j之间行走,随机可选择的行走路线可以记作n条。历经个时刻后,计算各蚂蚁经行路线的实际长度值,留存下最短路径,将其作为最优路径,尽早更新信息素。从宏观层面上,可以将信息素细化为以下2 个部分:1)蚂蚁行走途中遗留下的信息素。2) 各条路径向外挥发的信息素。假定所有蚂蚁经行轨迹信息素为,那么结束单次游历以后,可以采用公式(1)~公式(3)计算更新信息素[3]。

式中:τij(t+n)为全部蚂蚁行走轨迹信息素;m为蚁群数量;k为城市遍历路径长度值;Q为蚂蚁本体的信息素强度;Δτk ij(t)为蚂蚁爬行在两个城市之间路线上释放的信息素浓度;Lk为遍历城市后测得的中路径长度;ρ为信息素发挥系数。

解读公式(3)的表达形式可以发现,优化长度对ρ值的高低起决定性作用,且ρ和路径之间存在负相关性,在遍历路径相对较短小的情境下,ρ值反而较大。

2.2 算法的改进

2.2.1 基于路径搜索的改进

为了消除蚁群算法在路径搜索方面所存在的不足,该课题在研究时提出蚂蚁相遇方法。把蚂蚁拆分成不同的2 个组,安置在不同的2 个点,将以上2 点分别作为始发点,持续朝对方爬行。当2 组蚂蚁在路途中相遇后,蚂蚁都要返回初始位置。与传统的单向自由搜索路径相比,其能显著提升路径的实际搜索效率。

当符合以上基本条件时,2 只蚂蚁在行途中相遇,此时2 只蚂蚁行进路径的总长即为遍历2 个城市路径的总长L,如公式(4)所示[4]。

式中:L(k1)、L(k2)分别为起始点、终点蚂蚁相遇时候行进的最短路径。

2.2.2 基于路径选择的改进

理论上 ,采用以上方式选择路径虽然过程更加智能,但不利于最佳爬行路径的应用,时间选择空间呈现显著“缩水”的特征,以致最后无法执行最优爬行路径。为了弥补传统算法在路径选用问题方面存在的不足,该课题提出拓展搜索范畴的观点,针对路径选择设置相关问题,试图运用多种布置形式,即运用信息素感应进行相应管束。设定蚂蚁对爬行路径中信息素最小感应为h0,当某条路径的信息素实际浓度低于h0时,那么蚂蚁主观上就无法感受到这个信息素,继而选择其他行进路径。此时,低浓度信息素不会对蚂蚁爬行路径产生较大的影响,那么其可以选用其他爬行路径。

随着算法应用后时间的推移,各条路径上的信息素浓度持续提高,当其累积到一定水平后,便会出现显著大于h0的情况,信息素对蚂蚁爬行路径产生的引导作用不断增加。利用这种路径选用形式可以表示蚂蚁在2 个不同城市之间选择爬行路径的概率[5]。

2.2.3 基于挥发系数调节的改进

为了弥补传统算法在发挥系数上所存在的缺点,该课题提出一种系统调整法,在运用算法的前期,有针对性地降低发挥系数,不利于对蚂蚁爬行过程形成有效引导,达到拓展实际检索范围的目的,在这样的情境下可以相应地提高路径搜索效率。在路径搜索步入后期时,循序渐进地增加发挥系数值,借该方式表现路径选择行为的智能性。合理应用以上方法能达到迅速收敛的目的,进而在较短时间内明确最优路径。根据这种优化思路,可以采用公式(5)调整发挥系数[6]。

式中:ρ(t)为挥发系数;ρ(t-1)为蚂蚁信息素挥发系数的被调节值;ρmin为发挥系数的最小值。

ρ为发挥系数,假定其初始值是1,随着算法应用时间的延长,ρ值会呈现逐渐降低的趋势,最后达到最小值。

3 基于改进蚁群算法的轨迹规划

鉴于蚁群算法在路径规划早期存在初始值过低的实际情况,先应用人工势场算法获得1 个相对较大的初始值,在该点位上会生成方向不同的信息素,利用人工势场法内生成的“引力”与“斥力”的合成力去测算下一个点位的具体方向,蚂蚁K 在点i承受“引力”与“斥力”的共同作用,测算其合力的大小与角度并确定蚂蚁移动的位置[7]。

3.1 状态转移函数的改进

把人工势场虚拟合力添加至这种函数内,以提升蚁群算法的初始值,不仅能防控爬行路径规划早期出现信息素浓度偏低的情况,还能提高规划方向的精准度,使包装机器人在精度方面更具优势。添加人工势场合力的法状态转移函数转变为公式(6)[8]。

式中:Pk ij(t)为状态转移函数;fiγ(t)为初始值;γ为函数启发信息因子。

3.2 信息素的初始化

因为最优解周边信息素的浓度偏高,所以蚁群会在其周边展开急剧搜索。在这样的情境下,不仅会显著提高蚁群路径的检索质量,也会加速收敛速度。但从理论上分析,以上情况也存在一些不足,例如,易使所有蚂蚁聚集在某区段轨迹内,导致算法处在停滞状态,不利于算法的有效应用,无法获得最理想的解。但是最大—最小蚂蚁系统(MMAS)能够有效缓解以上不良状况。MMAS 在各个解元素(相毗邻两路径点之间)上遗留的信息素浓度值均被制约在[τmin,τmax]内(τmin为最小值;τmax为最大值),用其表示全部的信息素轨迹τij(t),形成τmin≤τij(t)≤τmax的关系。在各次循环以后均要加强对以上信息素量的限制。如果τij(t)>τmax,那么假设τij(t)=τmax;如果τmin>τij(t),则假设τmin=τij(t)。

对信息素轨迹进行初始化处理时,需要在完成第一次迭代后,使全部信息素轨迹量与τmax(1)维持相等。通常将τ(0)设定为相对较大的量,就能较容易地满足上述要求。MMAS 算法首次结束循环过程后,路径上的信息素量赋值为τmax(1)。应用该方法对信息素进行初始化,能够使算法在开始应用时便可以快速、有效地搜寻新的可行解。为了能更好地阐述以上事实,笔者做出如下说明:参数决定路径上信息素的挥发情况,那么在第一次迭代结束之后,所得的路径信息素轨迹之间最大相差值是ρ的比率;第二次迭代后,变成ρ²,反复执行以上过程。如果将路径之上的信息素轨迹的最初值设计成最小值τmin,那么可以推测不同信息素轨迹之间的相对差将会快速增加。鉴于以上情况,在将信息素轨迹初始化为τmax,蚁群的选择概率通常不会出现剧烈改变,且能协助蚁群获得良好的机会去探寻其他更优质的可行路径。因此,将信息素初始值设定成τ(0)=τmax可以提升蚁群算法的性能。

3.3 信息素更新

更新信息素是蚁群算法应用过程中的重要步骤之一,在规划算法实施路径时,当蚂蚁执行完单次循环后,算法便会自动更新蚂蚁经行轨迹上的所有信息素。如果应用这种常规方法,则会导致实际寻优执行效率下降,那么蚂蚁后期就不能迅速探查到高浓度信息素的行进轨迹。鉴于以上情况,该课题在研究时尝试采用以下方法进行改善。

3.3.1 精英小组

规划蚂蚁行进路线时,筛选出通过最优轨迹的蚂蚁并组成精英小组。这种方法的原理就是在完成一次迭代后,对路线上最优秀的部分进行筛选、提取,并在后续实践中发挥作用,借该方式能使后期行进路径迅速趋近最优解。在二次测算行进轨道中信息素浓度实际值时,不仅需要部署蚂蚁运行轨迹上的信息素,也要把精英蚂蚁通过的轨迹作为重点对象进行单独处置。使以上步骤和信息素更新过程相融合,从而加速蚁群算法的运行进程。当蚂蚁单次迭代整体完成后,把运行轨迹最短的几条路线提取出来,适度提高信息素浓度水平,使相应路线上的栅格位置的信息素更加显著,其在蚂蚁后期行动过程中发挥导向性作用,帮助它们更有效、快捷地寻找问题的最优解。可以结合公式(7)~公式(8)更新信息素[9]。

式中:τij(t+1)为信息素优化的最优解;Δτij.为蚂蚁经过的最优路径(i,j)轨迹上更新信息素时的浓度增量。

3.3.2 优化排序

优化排序蕴含的思想主要是在执行完1 次循环以后,遵照由长到短的规律对所有可执行的路径(L1≥L2≥L3≥…≥Lm)进行排序,这样Lm数值偏大的路径获得1 个偏小的排序序号,信息素更新时,相对的浓度增量会呈现递减的趋势;如果Lm偏小,那么对应轨迹的信息素浓度增量会处于较高水平。相比之下,冒泡排序操作更加简便,排序过程稳定、可靠,因此该课题在设计时采用冒泡排序法。将该算法用在路径规划的过程中,逐一对比每2 个相邻的Lm,且要将数值大的路径向后移,数值小的则前移,直至结束最后2 个路径长度的比较。

3.4 算法流程的改进

相关改进操作如下:1) 设定初始化算法函数的各项参数。2) 在起点位置放出N只蚂蚁并应用改进后的人工势场算法测算待选点和目标点的间距值。3) 采用算法状态转移函数测算合力值并按照信息素浓度检索最优路径。4) 观察蚂蚁是否顺利抵达目标点。5) 测算并验证路径是否为最优的路径,再对信息素进行更新。6) 判断该路径是否为最优路径,如果能得出肯定的答案,就输出并获得最优路径。

4 试验检验

4.1 二维空间仿真试验

仿真时,各参数设置情况如下:α、β、ρ、m、Q以及kmax分别为1、7、0.2、50、1 以及100,利用以上数据进行仿真建模[9]。

观察仿真情况可以发现,改进后的蚁群算法没有出现锯齿样,规划出的爬行路径顺滑度更高,显著提升了算法的收敛速度,降低了迭代次数且缩短了运行时间。传统算法下的最优路径长度、迭代次数以及运行时间分别为28.880 m、77次以及8.320 s,改进后的算法的上述指标的对应值分别为23.340 m、18 次以及1.900 s。

4.2 三维空间仿真试验

为了了解该课题所改进的算法在三维复杂环境内的适用性,在MATLAB 内设定相同的算法开展仿真实验研究。观察仿真结果可知,添加人工势场合力的改进算法在搜索路径早期的表现好于传统算法,传统算法下的最优路径长度、迭代次数以及运行时间分别为66.570 m、57 次以及13.870 s,改进后的算法的上述指标的对应值分别为61.400 0 m、8 次以及2.760 s。该课题改进后的蚁群算法与较小的迭代次数基本趋于稳定,这是算法收敛速度提升的重要基础。比较以上数据统计情况可知,采用提升蚁群算法初始值的算法规划路径时耗时显著短于传统算法,且当迭代次数为8 次时,就能在最优解收敛。

4.3 六轴机器人算法的验证

为了验证该课题所采用的改进算法在真实环境内表现出的稳定性,将其加载至AuBo i5 机器人轨迹规划算法内,分别测试、检验它的加速度与角速度,以分析包装机器人在生产运作中的稳定性与重复准确度。

统计测试结果发现,和传统算法下的角速度相比,其角速度性能更平稳、曲线更加顺滑,其角速度在较小范畴中没有出现骤然增加的现象,速度平缓增减。

5 结语

综合该课题研究所得结果可以发现,将人工势场合力融合至算法状态转移函数内是提高算法初始值的可行方法,利用虚拟力场内的合力能对下一个点位进行科学判断,且通过调整启发因子能够实现对全局路径的有效搜索,调整信息素浓度值能显著提升实际搜索效率。统计实验结果可知,改进算法在路径长度、迭代次数方面均实现了最优化,在减少迭代次数的同时还能显著缩短包装机器人的工作用时,与传统算法相比其运作稳定性与精准度均显著提升。

猜你喜欢
蚂蚁轨迹机器人
轨迹
轨迹
轨迹
我们会“隐身”让蚂蚁来保护自己
进化的轨迹(一)——进化,无尽的适应
蚂蚁
蚂蚁找吃的等