趙鐵軍,楊偉林
(沈陽工業(yè)大學(xué) 機(jī)械工程學(xué)院,遼寧 沈陽 110870)
機(jī)器人運(yùn)動學(xué)建模常采用D-H(Denavit&Hartenberg)法[1];誤差辨識常將智能算法應(yīng)用在該領(lǐng)域,其中遺傳算法[2]、粒子群算法[3]較為常用。以上方法都被驗(yàn)證可行,但算法都較為復(fù)雜。人工魚群常用作雷達(dá)參數(shù)與電機(jī)參數(shù)的參數(shù)估計(jì),且算法參數(shù)較少,將其應(yīng)用于機(jī)器人參數(shù)辨識可降低算法復(fù)雜度。張宏偉[4]利用傳統(tǒng)人工魚群算法進(jìn)行參數(shù)辨識,但只能進(jìn)行粗辨識。陳淑英等[5]采用傳統(tǒng)人工魚群與相關(guān)向量機(jī)結(jié)合的方法對機(jī)器人進(jìn)行參數(shù)辨識,辨識效果好,但算法復(fù)雜度偏高。本文結(jié)合以上分析,就機(jī)器人標(biāo)定問題修改了目標(biāo)函數(shù),將其轉(zhuǎn)化為關(guān)于機(jī)器人幾何誤差的高維非線性方程,將位姿誤差和的最小值作為目標(biāo)函數(shù),根據(jù)朱旭輝等的研究[6],結(jié)合本文確定的目標(biāo)函數(shù),對參數(shù)誤差尋優(yōu)。通過實(shí)際仿真驗(yàn)證,證明了該方法應(yīng)用在此領(lǐng)域有效。
在建立機(jī)器人理論運(yùn)動學(xué)模型時,常用D-H的建模方法,但由于實(shí)際上機(jī)器人相鄰兩關(guān)節(jié)軸間存在平行度誤差而又不完全平行,就會導(dǎo)致關(guān)節(jié)參數(shù)突變。故為了更好地表示實(shí)際機(jī)器人模型,Hayati等提出了MD-H(modified D-H)方法,該方法的相鄰兩桿矩陣表示形式[7]為:
(1)
其中:θi為坐標(biāo)變換過程中繞z軸的關(guān)節(jié)轉(zhuǎn)角;di為連桿偏移量;ai為桿長;αi為連桿扭轉(zhuǎn)角;βi為關(guān)節(jié)坐標(biāo)系繞y軸旋轉(zhuǎn)的轉(zhuǎn)角。另外,cθi=cosθi,sθi=sinθi,限于篇幅,其余符號表達(dá)式同理可得。
由式(1)可知,相鄰兩桿間幾何參數(shù)為5個,即(θi,di,ai,αi,βi),則n自由度的機(jī)器人名義位姿為:
(2)
其中:Pn為平移矩陣;Rn為姿態(tài)旋轉(zhuǎn)矩陣。假設(shè)實(shí)際測得的機(jī)器人位姿為:
(3)
令ΔP=Pr-Pn,其中ΔP=(ΔPx,ΔPy,ΔPz),表示機(jī)器人位置誤差。利用誤差模型,將ΔP改寫為:
ΔP=A·ΔX.
(4)
其中:A為辨識雅各比矩陣;ΔX為機(jī)器人幾何誤差參數(shù)(Δθi,Δdi,Δai,Δαi,Δβi)(i=1~n)。當(dāng)采用六自由度機(jī)器人進(jìn)行計(jì)算時,n=6。于是基于此,理論上就有30個幾何參數(shù)(θi,di,ai,αi,βi)(i=1~6)。又因?yàn)镮RB-120機(jī)器人的結(jié)構(gòu)特性,根據(jù)MD-H建模之后的βi只考慮β2,故剩下25個機(jī)器人幾何參數(shù),從而待辨識的幾何誤差參數(shù)的數(shù)目為25。利用QR分解進(jìn)行參數(shù)冗余剔除,剩余20個待辨識參數(shù)為Δθ1~Δθ5,Δd1,Δd3~Δd6,Δa1~Δa4,Δa6,Δα1~Δα4,Δβ2。
目標(biāo)函數(shù)定義為:
(5)
其中:N為機(jī)器人標(biāo)定實(shí)驗(yàn)中測量位姿數(shù);f為(Δθi,Δdi,Δai,Δαi,Δβi)的幾何參數(shù)誤差函數(shù)。根據(jù)1.1節(jié)的分析可將此問題轉(zhuǎn)化為求解20維的高維非線性問題。
求解機(jī)器人幾何誤差參數(shù)的標(biāo)定流程如下:
(1)初始化:概率因子為α,隨機(jī)數(shù)Rand()設(shè)置為0~1之間的任意值,自設(shè)常系數(shù)為C,擁擠度因子為δ,魚群數(shù)目N=100,步長為Step,最大迭代次數(shù)為MaxIter,視野范圍為Vision,最大嘗試次數(shù)為Trynum,初始迭代次數(shù)iter=0。將魚群設(shè)置為N×20的狀態(tài)X,每條魚為1×20的一維向量Xi,其中20表示的是待辨識的機(jī)器人幾何誤差參數(shù)維數(shù)。計(jì)算該N條魚的f,將最小的值記錄在公告牌上。接著執(zhí)行下列行為:
(2)追尾行為:定義人工魚的狀態(tài)為Xa,設(shè)其視野范圍內(nèi)存在最優(yōu)的狀態(tài)Xbest,相對應(yīng)的有適應(yīng)度函數(shù)Ya與Ybest,且當(dāng)前Xbest的領(lǐng)域內(nèi)不擁擠,即滿足Dij
(6)
其中:Step=Rand*‖Xbest-Xa‖;nf的數(shù)值是當(dāng)前視野范圍內(nèi)的魚群數(shù)量;Dij為當(dāng)前魚與其他魚之間的距離。
(3)聚群行為:同樣定義人工魚的狀態(tài)為Xa,定義魚群中心為Xc,若Xc處不擁擠且滿足食物濃度條件的話,則往Xc前進(jìn)一步,即:
(7)
其中:Step=Rand*‖Xc-Xa‖;Xc=當(dāng)前視野范圍內(nèi)所有魚的狀態(tài)求和/nf。否則跳轉(zhuǎn)到覓食行為。
(4)覓食行為:在覓食行為中改進(jìn)了接受新解的判斷標(biāo)準(zhǔn),其定義ΔY=Ya-Yb,ΔY為當(dāng)前魚的狀態(tài)Xa所求的適應(yīng)度函數(shù)Ya與鄰域內(nèi)隨機(jī)魚Xb的適應(yīng)度函數(shù)Yb之間的差。若ΔY>0或者滿足式(8),則接受新解。
ΔY<0&&exp(C*k*ΔY)>α.
(8)
其中:k為迭代次數(shù)。
選擇當(dāng)前人工魚的狀態(tài)視野范圍內(nèi)的一個隨機(jī)狀態(tài)Xb與當(dāng)前人工魚的狀態(tài)Xa的適應(yīng)度函數(shù)作比較,其中:
Xb=Xa+Vision·Rand().
(9)
利用上述覓食行為接受新解的分析作為判斷標(biāo)準(zhǔn),若食物濃度滿足式(8),則向此方向前進(jìn)一步,下一個狀態(tài)為:
(10)
其中:Step=Rand*‖Xb-Xa‖。否則在Trynum次數(shù)范圍內(nèi)重新隨機(jī)選擇狀態(tài)Xb,重新進(jìn)行上述行為。若仍不滿足食物濃度的判斷條件,則執(zhí)行下列隨機(jī)移動行為:
(11)
每次迭代結(jié)果記錄在公告板上,且Iter=Iter+1,若Iter≥maxIter,則停止迭代,將公告牌信息輸出。上述描述可表示為如圖1所示的流程。
圖1 改進(jìn)魚群算法標(biāo)定流程
為驗(yàn)證算法的可行性,采用IRB-120機(jī)器人進(jìn)行驗(yàn)證。建立MD-H誤差模型時,理論參數(shù)與D-H模型的方法一致,都為24個參數(shù)。由第1節(jié)分析可知,最后剩下20個參數(shù),而該20個參數(shù)表示的是誤差參數(shù),故在最后得到的20個參數(shù)的結(jié)果是將其修正到原機(jī)器人D-H參數(shù)中,原機(jī)器人D-H參數(shù)如表1所示。魚群初始化參數(shù)設(shè)置如表2所示。設(shè)置機(jī)器人桿長等距離誤差在[-0.25,0.25](mm)波動,角度范圍為[-0.05,0.05](rad)。
表1 機(jī)器人D-H參數(shù)
表2 魚群初始化參數(shù)
表1中,若直接考慮D-H建模過程中的坐標(biāo)變化量時,關(guān)節(jié)轉(zhuǎn)角為(0,-90,0,0,0,180)(°),但由實(shí)際可知機(jī)器人關(guān)節(jié)轉(zhuǎn)角非常量而是變量,故用θi加上關(guān)節(jié)轉(zhuǎn)角來表示實(shí)際D-H參數(shù)。
采用以上算法計(jì)算得到迭代200次的迭代曲線,如圖2所示。
圖2 適應(yīng)度函數(shù)值變化
辨識所得參數(shù)如表3所示,表中“—”表示無需辨識參數(shù)。
表3 機(jī)器人幾何誤差參數(shù)
將以上參數(shù)修正到機(jī)器人D-H參數(shù)上,得到修正前后誤差對比結(jié)果,如圖3所示。
圖3 標(biāo)定前后位置誤差
就傳統(tǒng)人工魚群與自適應(yīng)步長人工魚群從辨識結(jié)果(標(biāo)定前后誤差平均值、標(biāo)準(zhǔn)差以及最大值)進(jìn)行對比,可以得到算法對比結(jié)果,見表4。
表4 AFSA與SA-IAFSA標(biāo)定前后比較
實(shí)驗(yàn)中,采用傳統(tǒng)人工魚群算法時,最小適應(yīng)度值一直未改變,魚群雖進(jìn)行游動,但無新值產(chǎn)生,從而無法進(jìn)行尋優(yōu)。而采用改進(jìn)魚群算法,可使參數(shù)辨識過程收斂,同時提升機(jī)器人精度。
(1)本文提出了采用變步長自適應(yīng)人工魚群算法用于機(jī)器人參數(shù)辨識,并與傳統(tǒng)人工魚群算法作比較,結(jié)果表明該算法較于傳統(tǒng)方法可使參數(shù)辨識過程收斂,同時參數(shù)辨識效果穩(wěn)定。
(2)采用該算法可使機(jī)器人平均絕對定位精度提升38.96%。