APP下载

基于改进珊瑚礁算法的机械臂快速逆解分析*

2022-06-29宋宏祥潘德华

组合机床与自动化加工技术 2022年6期
关键词:珊瑚礁位姿运动学

丛 明,宋宏祥,刘 冬,杜 宇,潘德华

(1.大连理工大学机械工程学院,大连 116024;2.大连交通大学机械工程学院,大连 116028)

0 引言

冗余机械臂在逆运动学求解时其构型可能会导致求解失败,启发式算法能很好的避免此问题,因此近年来被广泛的应用在逆运动学求解中。YUAN等[1]基于BP和RBF神经网络算法提出的并行神经网络逆运动学算法,将逆运动学求解问题转化为神经网络的训练问题,为保证求解精度需进行大量训练。ANTONIO-GOPAR等[2]使用DE算法对逆运动学问题进行求解,并在一定程度上对最小位移解进行了筛选,而最小位移目标的引入会导致位姿求解精度的下降。REYES等[3]在传统的PSO算法基础上提出一种具有自适应探索性的逆运动学求解算法,通过进化过程中不断调整粒子的惯性权重和加速度系数来实现自适应探索的目的。STARKE等[4]提出一种混合遗传群算法(HGSA),将PSO算法加入遗传算法的进化过程,使后代与种群最优个体产生新的子代,提高了算法鲁棒性,并设计了一种引入随机权重的多目标适应度函数,使得子代个体更具适应性,而随机性的引入难以兼顾位置和姿态求解精度。谢习华等[5]结合DE/rand/1/bin和DE/best/1/bin两种进化模式提出了改进自适应变异差分进化(SAMDE)算法,并采用对称映射法对超出关节限制范围的个体进行处理,与基本DE算法对比,提高了算法的收敛精度和收敛速度。以上算法求解实时性差、收敛速度过慢,且由于迭代次数过多导致无法难以满足实际应用需求。由于珊瑚礁优化(CRO)算法[6-9]全局搜索能力强的特点,应用其进行逆运动学求解时可提高求解质量。因此,本文提出一种基于改进CRO算法的机械臂快速逆解分析算法。

本文首先基于MDH法建立了机械臂的运动学模型及求解逆运动学问题的优化模型,然后介绍了珊瑚礁优化算法的改进方法,其次使用标准测试函数对改进算法进行了验证,并与其他常见优化算法形成对比,最后针对给定轨迹进行逆运动学求解实验,验证本文所提方法可以满足机械臂逆运动学求解的实际需求。

1 机械臂逆运动学求解模型

如图1所示,机械臂有7个自由度,包括3个俯仰关节和4个转动关节,采用典型的SRS构型,由关节变量θ=[θ1,θ2,θ3,…,θ7]T描述其关节工作空间。本文基于MDH法建立机械臂的运动学模型,表1给出了所述机械臂模型的D-H参数。

图1 机械臂DH模型

表1 机械臂D-H参数

已知各关节变量θ=[θ1,θ2,θ3,…,θ7]T,末端执行器位姿在基坐标系{0}下的描述由0Tt描述:

(1)

式中,7Tt描述末端执行器坐标系{t}与机械臂末端关节坐标系{7}之间的变换关系。

(2)

(3)

式中,Rt为给定目标姿态矩阵;Pt为给定目标位置坐标;Rr为随机可行解θr所对应的姿态矩阵;Pr为随机可行解θr所对应的位置坐标。

根据求解目标,建立优化模型如下:

minf(θ)=ω1Pe+ω2Re
s.t.θ∈Rn|θk,min≤θk≤θk,max,k=1,2,…,7

(4)

式中,Pe、Re分别为位置误差、姿态误差。

位置误差Pe可用给定目标位置和随机可行解θr对应位置之间的欧氏距离表示[13]:

(5)

姿态矩阵描述的是两个坐标系之间的姿态变换关系,通过两者间姿态逆变换运算[5]可定义Re为:

(6)

式中,l为当前姿态机械臂末端与基座之间的长度。

目标函数可表示为:

(7)

式中,ω1、ω2分别描述位置误差、姿态误差对目标函数值的贡献度。考虑要同时保证位置与姿态的求解精度,本文取ω1=ω2=1。

应用改进的CRO算法进行逆运动学求解时,解的质量使用均方根误差RMSE和平均绝对误差MAE来评价:

(8)

(9)

2 基于经验进化的珊瑚礁优化算法

传统CRO算法在进化中后期由于亲本多样性的不足会导致算法停滞搜索。针对该问题,本文对珊瑚虫种群的初始化方式、外部有性繁殖方式及毁灭机制进行了改进,并引进种群入侵策略,提出基于经验进化的珊瑚礁优化(EECRO)算法。

2.1 种群初始化策略

为提高算法的收敛速度,将这种经验向导策略引入CRO算法,在珊瑚虫个体原有基因属性的基础上增加个体进化速度属性,种群初始化的具体操作如式(10)所示。

(10)

式中,Ξi为珊瑚礁位置为i上的珊瑚虫个体;Ξmax为个体最大值;Ξmin为个体最小值;r为0和1之间的随机数;vi为珊瑚虫个体初始进化速度;vmax为个体最大进化速度。

2.2 基于经验学习的进化策略

对于外部有性繁殖的改进,将原有的交叉变异进化改为基于经验学习的变异进化。珊瑚礁i位置上的所有历代个体组成一个家族,家族中的最优个体为Ξit,珊瑚礁上的所有家族构成种群,种群中的最优个体为Ξgt。

每个家族中个体子代的产生,通过Ξit和Ξgt已有的经验引导来完成。即个体以种群的最优个体和家族最优个体为学习目标,通过对两者经验的加权以及原有进化经验得到新的进化经验,从而变异产生新子代。具体操作如下:

(11)

ω=ωstart-(ωstart-ωend)(k/Tmax)2

(12)

式中,Tmax为最大迭代次数;ωstart、ωend分别表示进化开始与进化结束时的经验遗忘程度。

子代的安置与CRO算法相同,采用随机安置的方式,被安置的个体与珊瑚礁上的个体进行位置竞争,每个子代具有一定的竞争机会,适者生存。

2.3 种群入侵策略

为保证进化后期的种群多样性,引入种群入侵策略,参与种群入侵环节的群体cin由当前种群中比例为Fin的较优群体进行变异操作产生,具体操作如式(13)所示,产生的变异群体与珊瑚种群个体进行位置竞争。

(13)

为适应不同进化阶段所需的搜索步长,采用高斯-柯西变异算子进行变异操作,如式(14)所示。

(14)

式中,h为高斯-柯西变异算子;rn、rc分别为高斯随机数和柯西随机数。

2.4 毁灭机制的改进

为保证进化过程中的种群多样性不遭受破坏,使用条件毁灭机制代替原有的概率毁灭机制。

当到达最大迭代次数时,若潜在解个体依然未到达要求精度ε,则保留种群中比例为Fd的最优个体,对珊瑚礁剩余个体进行全面毁灭,并重置珊瑚礁体上被毁灭的珊瑚虫个体,重置操作同式(10),算法流程如表2所示。

表2 EECRO算法伪代码算法

续表

本文提出的EECRO算法与传统CRO算法相比,有以下不同:(1)在原有种群初始化基础上增加个体进化速度属性,种群协同进化;(2)增加种群入侵策略保证进化后期种群多样性;(3)原有概率毁灭机制改为条件毁灭机制,以保护种群多样性,并可提高问题求解的成功率。

3 EECRO算法有效性验证

3.1 测试函数

为验证EECRO算法的有效性,使用GA、DE、HS、ABC、PSO、CRO等算法对表3中的基准测试函数进行测试,测试结果与EECRO算法求解结果进行对比。表3中f1~f5为具有多局部极值的多峰函数,其中f4、f5为低维度测试函数;f6、f7是具有唯一最值的低谷型单峰函数。

表3 基准测试函数

3.2 有效性分析

为公平起见,EECRO算法取消条件毁灭环节,所有算法种群大小为100,最大迭代次数为100次,每种算法重复独立运行200次,并记录算法最佳适应度的最差值(Worst)、平均值(Mean)和标准方差(SD)。

部分标准测试函数的收敛曲线如图2所示,由此可知,在相同迭代次数下EECRO的收敛速度明显快于其他算法。由表4数据可得,在给定迭代次数为100次时,EECRO算法收敛性能高于传统CRO算法。在多峰函数上,由于种群入侵策略的作用使得算法进化过程中能够保证充足的种群多样性,EECRO具有良好的局部最优逃逸能力,而其他算法更易陷入局部最优值,由此可见EECRO的深度搜索能力更强;在单峰函数上,外部有性繁殖方式的改变,使得算法具有良好的局部探索能力,因此其收敛到真值的能力更强。无论是单峰函数还是多峰函数,与其他算法相比EECRO在大部分测试函数中标准偏差明显偏小,说明算法的鲁棒性更好、收敛更稳定。综上所述,改进的EECRO算法具有较好的收敛精度和收敛速度。

(a) f1收敛曲线 (b) f2收敛曲线

表4 7种算法独立计算200次后的测试结果

4 实验结果

机械臂的杆长分别为l1=100 mm、l2=400 mm、l3=400 mm、l4=100 mm;各关节角范围分别为(-3.14,3.14) rad、(-1.83,1.83) rad、(-3.14,3.14) rad、(-2.01,2.01) rad、(-3.14,3.14) rad、(-1.92,1.92) rad、(-3.14,3.14) rad;给定位置求解误差精度为10-4mm;姿态求解误差精度为10-6rad。

假设任务要求机械臂末端从初始位姿(P0,R0)运动到目标位姿(Pr,Rt),初始位姿所对应关节角θ0=[0,π/3,0,π/3,0,π/3,0]T,目标位姿对应关节角θt=[1.383 4,-0.468 2,0.341 6,-0.108 5,-1.021 0,-0.817 1,-1.383 4]T,由式(1)可得:

n0=[-1,0,0]T
o0=[0,1,0]T
a0=[0,0,-1]T
p0=[-692.8203,0.00,-100.00]T

同理可得目标位姿所对应的位姿数据为:

nt=[0.7409,-0.6435,0.1922]T
ot=[0.3285,0.0977,-0.9395]T
at=[0.5858,0.7592,0.2837]T
pt=[118.1677,468.0655,721.7624]T

在初始位姿和目标位姿之间进行五次多项式插值,得到的20组轨迹点。接下来针对经过插值得到的轨迹数据使用EECRO算法进行逆运动学求解,并同CRO、PSO算法的求解结果作对比。为保证求解结果为最小位移解,在进行逆运动学求解时,应使用上一次求解结果进行种群初始化操作。

在对比实验中,设置CRO算法参数为Fb=0.9,Fa=0.01,Fd=0.01,Pd=0.1,k=3;PSO算法参数为ωstart=0.9,ωend=0.4,μ1=1.494 5,μ2=1.494 5;EECRO算法参数设置为Fb=0.9,Fa=0.1,Fin=0.1,μ1=1.494 5,μ2=1.494 5,ωstart=0.9,ωend=0.4。其中种群规模为30,最大迭代次数为30。实验平台为MATLAB R2019b,DRAM为8 GB,英特尔酷睿i5处理器频率为2.4 GHz。

EECRO算法所对应的求解过程如图3所示,求解的各轨迹点连线非常平滑。由此可见,使用上一次求解结果进行种群初始化的策略,能够有效解决多解的筛选问题。

图3 EECRO算法求解的轨迹

在轨迹求解过程中,3种算法各个关节所对应的求解误差曲线分别如图4所示,20个轨迹点的逆运动学求解过程中,CRO算法求解结果的关节最大绝对误差可达0.2 rad,且求解结果不稳定,很难满足实际应用需求;PSO算法结果稳定性好但精度比EECRO略逊一筹;EECRO算法的误差曲线更加平稳,由图4可知EECRO稳定性和精度明显优于PSO和CRO算法。

将3种算法求解结果的关节角度误差代入式(9)和式(10),得到的误差评估结果如表5所示。

表5 算法误差评估结果

由表5可知,应用EECRO算法求解结果的均方根误差和平均绝对误差,与PSO和CRO两种方法相比误差更小,可达10-15rad。与CRO算法的求解结果相比,求解精度至少提高了10个数量级,由此可知求解精度完全可以满足在机械臂逆运动学求解问题中的使用要求。

综上所述,改进的EECRO算法在逆运动学求解方面具有实际应用价值。算法曲线如图4所示。

(a) CRO求解各轨迹点的误差曲线 (b) PSO求解各轨迹点的误差曲线

5 结论

本文提出的一种基于经验进化的珊瑚礁优化算法(EECRO),在保证全局搜索能力的前提下提高了算法的收敛精度和速度。实验结果表明:在给定迭代次数较小情况下,EECRO算法能更快收敛到要求精度。应用EECRO算法求解逆运动学的结果与对比算法相比,求解误差明显减小,且收敛速度快,因此满足在逆运动学求解问题上的应用。本文未对所提算法进行更高维度的测试,在未来工作中将通过对更高维度的测试以拓展EECRO算法在其他工程问题中的应用。

猜你喜欢

珊瑚礁位姿运动学
轿车前后悬架运动学仿真分析
终于等到你!ATOLL(珊瑚礁)ST200流媒体播放机、SDA200流媒体播放/功放一体机
机器人运送珊瑚卵拯救珊瑚礁
珊瑚礁世界的鱼儿
基于位置依赖的密集融合的6D位姿估计方法
复合切割机器人的运动学分析与仿真研究
曲柄摇杆机构的动力学仿真
优化ORB 特征的视觉SLAM
跟踪导练(三)3
基于单目视觉的工件位姿六自由度测量方法研究