趙鐵軍,楊偉林
(沈陽工業大學 機械工程學院,遼寧 沈陽 110870)
機器人運動學建模常采用D-H(Denavit&Hartenberg)法[1];誤差辨識常將智能算法應用在該領域,其中遺傳算法[2]、粒子群算法[3]較為常用。以上方法都被驗證可行,但算法都較為復雜。人工魚群常用作雷達參數與電機參數的參數估計,且算法參數較少,將其應用于機器人參數辨識可降低算法復雜度。張宏偉[4]利用傳統人工魚群算法進行參數辨識,但只能進行粗辨識。陳淑英等[5]采用傳統人工魚群與相關向量機結合的方法對機器人進行參數辨識,辨識效果好,但算法復雜度偏高。本文結合以上分析,就機器人標定問題修改了目標函數,將其轉化為關于機器人幾何誤差的高維非線性方程,將位姿誤差和的最小值作為目標函數,根據朱旭輝等的研究[6],結合本文確定的目標函數,對參數誤差尋優。通過實際仿真驗證,證明了該方法應用在此領域有效。
在建立機器人理論運動學模型時,常用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。
目標函數定義為:
(5)
其中:N為機器人標定實驗中測量位姿數;f為(Δθi,Δdi,Δai,Δαi,Δβi)的幾何參數誤差函數。根據1.1節的分析可將此問題轉化為求解20維的高維非線性問題。
求解機器人幾何誤差參數的標定流程如下:
(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
(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 改進魚群算法標定流程
為驗證算法的可行性,采用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參數。
采用以上算法計算得到迭代200次的迭代曲線,如圖2所示。

圖2 適應度函數值變化
辨識所得參數如表3所示,表中“—”表示無需辨識參數。

表3 機器人幾何誤差參數
將以上參數修正到機器人D-H參數上,得到修正前后誤差對比結果,如圖3所示。

圖3 標定前后位置誤差
就傳統人工魚群與自適應步長人工魚群從辨識結果(標定前后誤差平均值、標準差以及最大值)進行對比,可以得到算法對比結果,見表4。

表4 AFSA與SA-IAFSA標定前后比較
實驗中,采用傳統人工魚群算法時,最小適應度值一直未改變,魚群雖進行游動,但無新值產生,從而無法進行尋優。而采用改進魚群算法,可使參數辨識過程收斂,同時提升機器人精度。
(1)本文提出了采用變步長自適應人工魚群算法用于機器人參數辨識,并與傳統人工魚群算法作比較,結果表明該算法較于傳統方法可使參數辨識過程收斂,同時參數辨識效果穩定。
(2)采用該算法可使機器人平均絕對定位精度提升38.96%。