改进鱼群算法机器人几何参数标定

2021-10-11 06:17赵铁军杨伟林
机械工程与自动化 2021年5期
关键词:鱼群适应度标定

赵铁军,杨伟林

(沈阳工业大学 机械工程学院,辽宁 沈阳 110870)

0 引言

机器人运动学建模常采用D-H(Denavit&Hartenberg)法[1];误差辨识常将智能算法应用在该领域,其中遗传算法[2]、粒子群算法[3]较为常用。以上方法都被验证可行,但算法都较为复杂。人工鱼群常用作雷达参数与电机参数的参数估计,且算法参数较少,将其应用于机器人参数辨识可降低算法复杂度。张宏伟[4]利用传统人工鱼群算法进行参数辨识,但只能进行粗辨识。陈淑英等[5]采用传统人工鱼群与相关向量机结合的方法对机器人进行参数辨识,辨识效果好,但算法复杂度偏高。本文结合以上分析,就机器人标定问题修改了目标函数,将其转化为关于机器人几何误差的高维非线性方程,将位姿误差和的最小值作为目标函数,根据朱旭辉等的研究[6],结合本文确定的目标函数,对参数误差寻优。通过实际仿真验证,证明了该方法应用在此领域有效。

1 机器人几何误差模型

1.1 MD-H模型的建立

在建立机器人理论运动学模型时,常用D-H的建模方法,但由于实际上机器人相邻两关节轴间存在平行度误差而又不完全平行,就会导致关节参数突变。故为了更好地表示实际机器人模型,Hayati等提出了MD-H(modified D-H)方法,该方法的相邻两杆矩阵表示形式[7]为:

(1)

其中:θi为坐标变换过程中绕z轴的关节转角;di为连杆偏移量;ai为杆长;αi为连杆扭转角;βi为关节坐标系绕y轴旋转的转角。另外,cθi=cosθi,sθi=sinθi,限于篇幅,其余符号表达式同理可得。

由式(1)可知,相邻两杆间几何参数为5个,即(θi,di,ai,αi,βi),则n自由度的机器人名义位姿为:

(2)

其中:Pn为平移矩阵;Rn为姿态旋转矩阵。假设实际测得的机器人位姿为:

(3)

令ΔP=Pr-Pn,其中ΔP=(ΔPx,ΔPy,ΔPz),表示机器人位置误差。利用误差模型,将ΔP改写为:

ΔP=A·ΔX.

(4)

其中:A为辨识雅各比矩阵;ΔX为机器人几何误差参数(Δθi,Δdi,Δai,Δαi,Δβi)(i=1~n)。当采用六自由度机器人进行计算时,n=6。于是基于此,理论上就有30个几何参数(θi,di,ai,αi,βi)(i=1~6)。又因为IRB-120机器人的结构特性,根据MD-H建模之后的βi只考虑β2,故剩下25个机器人几何参数,从而待辨识的几何误差参数的数目为25。利用QR分解进行参数冗余剔除,剩余20个待辨识参数为Δθ1~Δθ5,Δd1,Δd3~Δd6,Δa1~Δa4,Δa6,Δα1~Δα4,Δβ2。

1.2 目标函数定义

目标函数定义为:

(5)

其中:N为机器人标定实验中测量位姿数;f为(Δθi,Δdi,Δai,Δαi,Δβi)的几何参数误差函数。根据1.1节的分析可将此问题转化为求解20维的高维非线性问题。

2 改进人工鱼群算法的几何参数标定

求解机器人几何误差参数的标定流程如下:

(1)初始化:概率因子为α,随机数Rand()设置为0~1之间的任意值,自设常系数为C,拥挤度因子为δ,鱼群数目N=100,步长为Step,最大迭代次数为MaxIter,视野范围为Vision,最大尝试次数为Trynum,初始迭代次数iter=0。将鱼群设置为N×20的状态X,每条鱼为1×20的一维向量Xi,其中20表示的是待辨识的机器人几何误差参数维数。计算该N条鱼的f,将最小的值记录在公告牌上。接着执行下列行为:

(2)追尾行为:定义人工鱼的状态为Xa,设其视野范围内存在最优的状态Xbest,相对应的有适应度函数Ya与Ybest,且当前Xbest的领域内不拥挤,即满足Dijδ*Ya(0<δ<1),此时鱼群周围不拥挤,则追尾行为条件满足,即可向Xbest方向前进一步,执行式(6),否则跳转到觅食行为。

(6)

其中:Step=Rand*‖Xbest-Xa‖;nf的数值是当前视野范围内的鱼群数量;Dij为当前鱼与其他鱼之间的距离。

(3)聚群行为:同样定义人工鱼的状态为Xa,定义鱼群中心为Xc,若Xc处不拥挤且满足食物浓度条件的话,则往Xc前进一步,即:

(7)

其中:Step=Rand*‖Xc-Xa‖;Xc=当前视野范围内所有鱼的状态求和/nf。否则跳转到觅食行为。

(4)觅食行为:在觅食行为中改进了接受新解的判断标准,其定义ΔY=Ya-Yb,ΔY为当前鱼的状态Xa所求的适应度函数Ya与邻域内随机鱼Xb的适应度函数Yb之间的差。若ΔY>0或者满足式(8),则接受新解。

ΔY<0&&exp(C*k*ΔY)>α.

(8)

其中:k为迭代次数。

选择当前人工鱼的状态视野范围内的一个随机状态Xb与当前人工鱼的状态Xa的适应度函数作比较,其中:

Xb=Xa+Vision·Rand().

(9)

利用上述觅食行为接受新解的分析作为判断标准,若食物浓度满足式(8),则向此方向前进一步,下一个状态为:

(10)

其中:Step=Rand*‖Xb-Xa‖。否则在Trynum次数范围内重新随机选择状态Xb,重新进行上述行为。若仍不满足食物浓度的判断条件,则执行下列随机移动行为:

(11)

每次迭代结果记录在公告板上,且Iter=Iter+1,若Iter≥maxIter,则停止迭代,将公告牌信息输出。上述描述可表示为如图1所示的流程。

图1 改进鱼群算法标定流程

3 实验与结果

3.1 参数设置

为验证算法的可行性,采用IRB-120机器人进行验证。建立MD-H误差模型时,理论参数与D-H模型的方法一致,都为24个参数。由第1节分析可知,最后剩下20个参数,而该20个参数表示的是误差参数,故在最后得到的20个参数的结果是将其修正到原机器人D-H参数中,原机器人D-H参数如表1所示。鱼群初始化参数设置如表2所示。设置机器人杆长等距离误差在[-0.25,0.25](mm)波动,角度范围为[-0.05,0.05](rad)。

表1 机器人D-H参数

表2 鱼群初始化参数

表1中,若直接考虑D-H建模过程中的坐标变化量时,关节转角为(0,-90,0,0,0,180)(°),但由实际可知机器人关节转角非常量而是变量,故用θi加上关节转角来表示实际D-H参数。

3.2 结果与讨论

采用以上算法计算得到迭代200次的迭代曲线,如图2所示。

图2 适应度函数值变化

辨识所得参数如表3所示,表中“—”表示无需辨识参数。

表3 机器人几何误差参数

将以上参数修正到机器人D-H参数上,得到修正前后误差对比结果,如图3所示。

图3 标定前后位置误差

就传统人工鱼群与自适应步长人工鱼群从辨识结果(标定前后误差平均值、标准差以及最大值)进行对比,可以得到算法对比结果,见表4。

表4 AFSA与SA-IAFSA标定前后比较

实验中,采用传统人工鱼群算法时,最小适应度值一直未改变,鱼群虽进行游动,但无新值产生,从而无法进行寻优。而采用改进鱼群算法,可使参数辨识过程收敛,同时提升机器人精度。

4 结语

(1)本文提出了采用变步长自适应人工鱼群算法用于机器人参数辨识,并与传统人工鱼群算法作比较,结果表明该算法较于传统方法可使参数辨识过程收敛,同时参数辨识效果稳定。

(2)采用该算法可使机器人平均绝对定位精度提升38.96%。

猜你喜欢
鱼群适应度标定
改进的自适应复制、交叉和突变遗传算法
使用朗仁H6 Pro标定北汽绅宝转向角传感器
一种基于改进适应度的多机器人协作策略
鱼群漩涡
基于匀速率26位置法的iIMU-FSAS光纤陀螺仪标定
船载高精度星敏感器安装角的标定
基于空调导风板成型工艺的Kriging模型适应度研究
基于改进鱼群优化支持向量机的短期风电功率预测
基于人工鱼群算法的光伏阵列多峰MPPT控制策略
多子群并行人工鱼群算法的改进研究