改进蝴蝶优化算法及其在冗余机械臂逆运动学求解中的应用*
2022-08-05孟广双高德东
孟广双 高德东
(①唐山工业职业技术学院,河北 唐山 063299;②青海大学机械工程学院,青海 西宁 810016)
蝴蝶优化算法[1](butterfly optimization algorithm,BOA)是Arora 等于2019 年根据蝴蝶的觅食行为而提出的一种智能优化算法,具有结构简单、参数设置少及容易实现等特点,目前已在很多优化问题的求解领域得到了应用[2-4]。虽较其他一些智能算法性能更优,但BOA 算法同样存在有其他智能优化算法共性的缺点,即容易陷入局部最优、后期收敛精度不高等。为此,一些学者也针对上述缺点对BOA 进行了一系列的改进研究和实际应用工作[5-8],在提高BOA 算法性能和增强实际应用效果方面具有重要意义。
冗余机械臂逆运动学求解是实现机械臂运动控制、轨迹规划和动力学分析等问题的前提,但求解过程具有高耦合、非线性等特点,数值法、几何法和迭代法等常规解法对其进行准确的求解较为困难[9-10]。随着智能优化算法的发展,一些学者将机械臂逆运动学求解问题转化为复杂函数的极值优化问题,而后通过智能优化算法进行问题求解,如相继提出的机械臂逆运动学求解的动态变步长果蝇优化算法[11]、混合变异克隆选择算法[12]、自适应动态查分进化算法[13]和改进人工蜂群算法[14]等,都实现了求解精度和求解速度的双提升。
由于每一种优化策略都有自身的优势和不足,实现不同优化策略的融合和优势互补,是提升智能优化算法性能的有效途径。本文在研究BOA 算法的基础上,以冗余机械臂逆运动学求解为工程应用背景,从动态转换概率、最优邻域扰动和随机惯性权重这3 个角度对BOA 进行改进设计,提出了改进蝴蝶优化算法(improved butterfly optimization algorithm,IBOA)。IBOA 算法采用动态转换概率策略来控制蝴蝶进入全局搜索阶段还是局部搜索阶段;在全局搜索阶段采用最优邻域扰动策略来扩大搜索范围,提升收敛精度和跳出局部最优;在局部搜索阶段采用随机惯性权重策略来增强局部搜索能力。典型测试函数测试结果和冗余机械臂逆运动学求解工程应用结果均显示了IBOA 的性能更优。
1 改进蝴蝶优化算法
在BOA 算法中,蝴蝶的移动方式可分为两种,一种是在给定的范围内随机移动,另一种是向香气更浓的蝴蝶所在位置移动。这两种移动方式分别被看成是局部搜索阶段和全局搜索阶段。BOA 算法虽然在性能上比其他一些优化算法更优,但同样存在有陷入局部最优、后期收敛精度不高等问题,为提高BOA 算法的性能,本文从3 个方面对BOA 进行改进设计,提出IBOA 算法。
1.1 动态转换概率策略
在BOA 算法中,蝴蝶进入全局搜索阶段或是局部搜索阶段是由转换概率p决定的,一般情况下,它为一个事先设定的固定值,这就使得算法后期的收敛速度得不到保证。因此,本文将转换概率p调整为一个动态变化的值,从而提高算法后期的收敛速度。本文设计的动态转换概率公式为
其中:Tmax和t分别表示最大迭代次数和当前迭代次数。
由式(1)可知,转换概率p实现了随迭代次数的增加而动态调整,p大于生成的[0,1]之间随机数r时,则进入全局搜索阶段;反之,则进入局部搜索阶段。
1.2 最优邻域扰动策略
在BOA 算法中,蝴蝶进入全局搜索阶段时,其位置更新方式决定了所有蝴蝶会朝着最优蝴蝶所在位置方向飞去,这就容易导致蝴蝶种群的多样性降低,因此,在全局搜索阶段,需要对最优位置进行邻域扰动,加强对邻域空间的搜索,确保能够跳出局部最优。最优邻域扰动策略公式为
对位置进行扰动后,相当于在原最优位置附近做了一次局部搜索。如果得到的新位置比原来位置更优(即适应度值更好),则利用新位置对原位置进行替换;反之,如果得到的新位置比原来位置更差,则最优位置不发生变动。通过邻域扰动,就实现了对邻域空间的搜索,确保真实的最优位置能够被找到,从而跳出局部最优。
1.3 随机惯性权重策略
在BOA 算法中,蝴蝶进入局部搜索阶段后,虽是随机搜索,但仍主要是受前一位置影响且影响程度保持不变,这就容易导致在后期易容陷入局部最优,因此,在局部搜索阶段,需要通过随机惯性权重来改变前一位置对当前位置更新的影响。本文设计的随机惯性权重计算公式为
其中:μmax和 μmin为惯性权重的上下限;rand为随机数,在[0,1]范围内取值。这样,就可以将局部搜索阶段中蝴蝶的位置更新方式调整为
由式(4)可知,ω实现了蝴蝶前一位置对拟更新位置的调控,ω取值较大时,蝴蝶拟更新位置受前一位置影响就较大;ω取值较小时,蝴蝶拟更新位置受前一位置影响就较小。
1.4 IBOA 流程步骤
通过在BOA 算法中引入上述3 个改进策略,即可得到IBOA 算法,其主要流程如图1 所示,具体步骤如下:
图1 IBOA 流程图
(1)设置蝴蝶种群的规模N、搜索空间的维度D、最大迭代次数Tmax、为惯性权重上下限 μmax和μmin等参数。
(2)在搜索空间范围内随机确定种群的初始位置。
(3)计算每只蝴蝶的适应度值,选出本次迭代中最优适应度值即对应的蝴蝶位置。同时,在[0,1]范围内生成随机数r。
(4)计算动态转换概率p,当p>r时,进入全局搜索阶段,按照最优邻域扰动策略进行位置更新;当p≤r时,进入局部搜索阶段,按照随机惯性权重策略进行位置更新。
(5)判定是否达到了迭代停止条件,如是,则结束结束,如否,则范围步骤(3)继续迭代。
2 IBOA 性能测试
为验证本文IBOA 的性能,本文通过表1 所示的3 个基准测试函数对其性能进行测试。同时,将IBOA 算法和标准BOA 算法以及几种改进型BOA算法进行对比分析。几种改进型BOA 算法分别来源于文献[5-7],在本文中依次称为IBOA-5、IBOA-6 和IBOA-7。在所有方法中,蝴蝶种群的规模和最大迭代次数分别设置为50 和500,IBOA-5、IBOA-6和IBOA-7 需要的其他参数均按照原文献进行设置。
表1 测试函数
分别利用上述5 种方法对3 个基准测试函数在30 维和50 维下进行50 次独立的极值求解,得到相关统计结果如表2 所示。分析表2 中结果可知,对于3 个基准测试函数,无论是在30 维或是100 维下,IBOA 算法在50 次独立计算中都找到了其理论极值且标准差为0,而其余4 种方法中没有一种方法求到了理论极值,这说明本文的IBOA 算法在收敛精度和计算稳定性上均比其余3 种改进型BOA算法和标准BOA 算法要好,体现了IBOA 寻优精度高、计算稳定的优点。
表2 5 种方法求解结果
图2 给出了5 种方法对3 个函数在30 维下理论极值的搜索迭代过程(对适应度值取以10 为底的对数),从中可以看出,与另外4 种算法相比,本文所提IBOA 算法速度更快、收敛精度更高,特别是对于Rastrigin 和Griewank 这两个多峰值函数,其曲线呈现出明显的线性下降趋势,在迭代次数较少的情况下就完成了收敛,这也进一步说明IBOA没有陷入局部最优且搜索能力极强。
图2 搜索迭代曲线
3 冗余机械臂逆运动学求解实例
3.1 逆运动学求解模型建立
本文以YuMi-14000-ABB 型机械臂为研究对象,建立逆运动学求解模型。该机械臂左臂的D-H 连杆坐标系如图3 所示,D-H 连杆坐标系的参数如表3所示。
图3 YuMi-14000-ABB 机械臂
表3 D-H 参数
对于关节i,根据表1 中的相关D-H 参数,可得其齐次变换矩阵为
其中:sθi和 cθi分别表示 sinθi和 cosθi;sαi和 cαi分别表示 sinαi和 cosαi。根据正运动学,可得机械臂末端执行器的位姿矩阵与各关节变量之间的关系为
由此可知,该型7 自由度机械臂的正运动学方程是与7 个关节变量为自变量的复杂函数。在机械臂逆运动学求解中,需要对 θ1~θ7等7 个关节角进行求解,假设期望的机械臂末端执行器的位姿矩阵为
由于方向误差与角度有关、位置误差与长度有关,二者不是同一量纲,在实际求解过程中就会造成两种误差收敛不平衡,为均衡两种误差的收敛,引入调整因子 λ,可得修正后的逆运动学求解适应度函数为
3.2 给定期望位姿的求解结果分析
为了验证IBOA 算法在冗余机械臂逆运动学求解中的有效性,将IBOA 的优化求解结果同参考文献[10]中的混合果蝇优化算法(HLFOA)、参考文献[12]中的混合克隆变异算法(HMCSA)、参考文献[13]中的自适应动态差分进化算法(ADDEA)、参考文献[14] 中的改进人工蜂群算法(IABC)以及BOA 算法进行对比分析。所有算法的种群规模和最大迭代次数分别设置为50 和500,误差调整因子 λ设置为0.01,HLFOA、HMCSA、ADDEA和IABC等算法的相关参数均按照原文献推荐设置。
给定YuMi-14000-ABB 型机械臂一个期望位姿为
利用上述各算法分别进行10 次独立运算,可得各算法得到的最优适应度值、平均适应度值和标准差等统计结果如表4 所示,最优适应度值对应下的逆解所对应的位姿误差如表5 所示,各算法的最优适应度值收敛曲线如图4 所示。
由表4 中可知,IBOA 求得的最优适应度值、平均适应度值和标准差,在5 种方法中均是最优的,都达到了10-18,比其余5 种方法均要高,这说明IBOA 对机械臂逆运动学解得求解精度和计算稳定性要比其余4 种方法更好。从表5 种可知,IBOA方法得到的最优逆解对应的位置误差和方向误差分量最大分别为10-18和10-17级,是5 种方法中最优的,这说明IBOA 得到的最优逆解能够让机械臂更趋近于期望位姿,从而减小误差。从图4 中可知,IBOA 的适应度值迭代曲线的下降速度最快,且在停止迭代后,位置处于最下方,这说明IBOA 的收敛速度和求解精度均优于其他算法。
表4 给定期望位姿下各算法计算结果
表5 各算法位姿误差
图4 给定期望位姿下适应度值收敛曲线
3.3 任意期望位姿的求解结果分析
为进一步验证IBOA 在冗余机械臂逆运动学求解中的泛化能力,对于YuMi-14000-ABB 型机械臂位姿空间的10 个任意期望位姿,利用上述算法进行求解的结果如表6 所示,收敛曲线如图5 所示。
表6 任意期望位姿下各算法计算结果
图5 任意期望位姿下适应度值收敛曲线
从表6 中可知,对于任意给定的机械臂期望位姿,IBOA 的计算结果均可达到10-18数量级,是5种方法中最高的,较结果已经很优的HLFOA 的10-16数量级和HMCSA 的10-15数量级,都有所提高;虽然ADDEA 和IABC 适应度值得数量级也在10-13和10-9,但平均适应度值和标准差指标并不是很理想,以上结果说明IBOA 所得结果对应的逆解得到了很高的位姿精度,可以有效减少误差。从图5 中可知,对于任意给定的机械臂期望位姿,IBOA 适应度值迭代曲线的下降速度同样最快且处于最下方,这说明其更适用于冗余机械臂的逆运动学求解。
4 结语
在研究BOA 算法的基础上,提出一种IBOA算法。IBOA 算法融入了动态转换概率策略、最优邻域扰动策略和随机惯性权重策略等3 种策略,实现了算法收敛速、收敛精度的提升,克服了BOA算法易陷入局部最优、后期收敛精度不高的问题。利用3 个基准测试函数对IBOA 的性能进行了验证;将IBOA 算法应用于冗余机械臂的逆运动学求解中,获得了更高的收敛精度和求解稳定性。