蔡鑫宇,趙鐵軍
(沈陽工業大學 機械工程學院,沈陽 110027)
機器人的定位精度分為兩個方面,即重復定位精度與絕對定位精度。在通常的情況下,工業機器人的重復定位精度大約是0.1 mm左右,但是它們的絕對定位精度比較低,只能達到2~3 mm左右,通過機器人標定可以有效地提高機器人的絕對定位精度[1]。機器人的運動學參數的標定過程一般來說分為4個步驟,即機器人的運動學參數建模、機器人位姿的測量、機器人的運動學參數辨識與機器人的誤差補償。經過研究表明,影響機器人定位精度最大的因素就是機器人的運動學參數的誤差值,大約占所有誤差的90%,因此,機器人的運動學參數辨識是提高精度過程中尤為重要的一部分。參數辨識的方法也是多種多樣,例如,智能算法就被廣泛地應用到該領域來,其中較為常見的辦法為遺傳算法[2]、粒子群算法[3]、神經網絡[4]等,上述方法都是可以有效地提升機器人的絕對定位精度,然而這些算法比較復雜。故本文提出了人工蜂群算法,該算法的優點是原理簡單、參數量較少、容易求解,是一種優異的全局優化算法,通過修改目標函數之后,再來求解關于運動學參數的高維非線性方程組問題,經過實驗及其仿真驗證,說明了該方法可有效解決此問題。
要對一個機器人實現標定,首先就是建立起機器人的運動學模型,較為常用的機器人運動學模型為4種參數的D-H模型,但是由于相互挨著的兩個關節軸線之間是平行或是趨近于平行的情況下,會產生出奇異點,此時不滿足模型的連續性,引起標定結果不準確。由Hayati等[5]提出了修正的MD-H模型,沿y軸的方向加入了一個旋轉參數,則臨近兩連桿的矩陣表達式為
式中:θi為關節角,di為連桿的偏移量,a為連桿桿長,α為連桿的轉角,β為坐標系繞著y軸的旋轉角;此外cθi=cos θi,sθi=sin θi,其他以此類推。
由式(1)可知,n自由度的機器人末端理論上的位姿的矩陣表達式為
式中:Pn為平移矩陣,Rn為旋轉矩陣。
假定實際中測量的平移矩陣為Pr,令ΔP=Pr-Pn,其中ΔP=(ΔPx,ΔPy,ΔPz),為機器人末端的位置誤差,使用位置誤差模型可以改寫為
式中:B為辨識雅可比矩陣;Δq為機器人的各個運動學參數誤差值大小(Δθi,Δdi,Δai,Δαi,Δβi),i=1-n,通過對冗余性參數的剔除,最后能得到的可辨識參數有Δθ1~Δθ1,Δd1,Δd3~Δd6,Δa1~Δa4,Δa6,Δα1~Δα4,Δβ2共20個。
圖1所示為指令軌跡上的兩個點P0(i)、P0(i+1)和與其對應的兩個實際軌跡上的兩點Pr(i)、Pr(i+1)

圖1 距離誤差示意圖
那么距離誤差的精度可以表示為
式中:||I0(i+1)||和||I0(i+1)||分別表示為P0(i)和P0(i+1)與Pr(i)和Pr(i+1)之間的距離,經過推導可以得到距離誤差與機器人運動學參數之間的關系式:
式中:xr(i)、yr(i)、zr(i)為點Pr(i)的三維坐標,xr(i+1)、yr(i+1)、zr(i+1)為點Pr(i+1)的三維坐標,||Ir(i+1)||是點Pr(i)、Pr(i+1)兩者之間構成的向量。
本文采用的是單目視覺的測量方法,其優點是成本較低、容易操作、視場空間較大、非接觸等[6]。通過眼在手上[7]的方式就可以測量出單目相機在世界坐標系中的空間位置,再通過求解手眼關系矩陣,即相機坐標系和機械臂末端坐標系的轉換矩陣,便可測量出機器人末端在世界坐標系中的位置,為參數辨識做鋪墊。測量環境如圖2所示。

圖2 視覺測量平臺
共計測量了120組數據,根據可觀測性指標[8]的數值大小來對位姿進行篩選,最后留取40組數據來進行機器人的參數辨識,其各個測量點的空間位置分布如圖3所示。

圖3 測量位姿點的選取
1)目標函數定義為
式中:N為機器人標定實驗中所測量的位姿組數,f為各運動學參數誤差值。由此可以轉換成20維的高維非線性方程問題。
2)參數的初始化設置。蜜源的個數為FoodNum=50,臨近蜜源的搜尋次數為limit=20,最大迭代的次數為maxgen=200,維度長為d=20,設置桿長等長度誤差范圍在[-0.30,0.30] mm內變動,角度范圍在[-0.10,0.10] rad之間變化。
3)雇傭蜂階段。一個雇傭蜂相應有一個蜜源,它會依據當前蜜源的一個鄰近蜜源去評估這個蜜源的密量,再根據已儲存的信息來決定是否對當前蜜源進行修正,鄰近的蜜源被定義為
式中:xi為當前蜜源位置,xj為其余蜜源位置中隨機一個,φ為-1~1的隨機數。
當前位置的適應度值大小為:
式中,ff為鄰近蜜源的適應度值。
4)觀察蜂階段。觀察蜂讀取了雇傭蜂所攜帶的信息并且根據輪盤賭的方式來選擇蜜源并依附,依附之后的觀察蜂將對它進行改進,此時的觀察蜂便變成了雇傭蜂。
5)偵察蜂階段。完成一次迭代之后,全部的雇傭蜂與觀察蜂都完成了搜尋任務,此時依據蜜源被修改的次數是否超過了預設值來判斷該蜜源是否要被放棄,被放棄的蜜源繼而有偵察蜂隨機找到的蜜源來替代。
式中:lb、ub分別為x的上下限,rand(0,1)為0~1之間的一個隨機數。
整個算法的流程如圖4所示。

圖4 人工蜂群算法標定流程
對上述測量點進行參數辨識,這里分別使用了經典的最小二乘法和本文里提出的人工蜂群算法分別對機器人進行參數辨識,二者之間的對比結果如圖5所示。參數辨識得到的結果如表1所示。

圖5 人工蜂群算法和最小乘法標定結果對比
經過對比,使用人工蜂群算法辨識,可以進一步地減小距離誤差,從而提高機器人的絕對定位精度。與最小二乘法相比,定位精度的從45.24%提升到了54.97%。
本文針對傳統基于位置誤差的機器人運動學參數辨識方法,提出了基于距離誤差模型的人工蜂群算法來進行參數辨識,避免了因為坐標系轉換所帶來的誤差,且相比于常用的最小二乘法而言,進一步提高了辨識精度,使機器人的距離誤差精度提高了54.97%,結果證明了該方法的可行性,對工業機器人的定位精度的提高有一定的參考價值。