朱振權(quán), 殷寶麟, 潘瑞冬, 鄭春雷
(佳木斯大學(xué)機(jī)械工程學(xué)院,黑龍江 佳木斯 154007)
近年來,機(jī)器人技術(shù)正朝著高精度、高智能的方向發(fā)展,使得機(jī)器人可完成更高精度、更高效率的任務(wù)[1-2]。目前串聯(lián)機(jī)器人的重復(fù)定位精度較高,而絕對定位精度較低[3]。幾何參數(shù)誤差對絕對定位精度的影響最大,大約占總誤差的80%。通常運(yùn)用標(biāo)定來解決,主要有誤差模型、位姿測量、參數(shù)辨識和誤差補(bǔ)償4步[4]。采用D-H法[5]建立運(yùn)動學(xué)模型。位姿測量利用測量設(shè)備測量出機(jī)器人末端在空間中的真實(shí)位姿,以此來評估誤差,常用激光跟蹤儀、三坐標(biāo)測量儀、球桿儀等[6],Gan[7]和Yin[8]等學(xué)者利用拉線傳感器或視覺設(shè)備來進(jìn)行閉環(huán)測量;參數(shù)辨識利用測量出的數(shù)據(jù)和理論數(shù)據(jù)經(jīng)過算法辨識出誤差,常用最小二乘法Wu[9]、卡爾曼濾波法Gao[10],但這些算法效率較低。Yang[11]依據(jù)距離誤差,提出四種識別模型,結(jié)合多種群遺傳算法分析了不同方法的參數(shù)識別結(jié)果;張永貴[12]采用混合遺傳算法求解方程組的新方法識別機(jī)器人運(yùn)動學(xué)參數(shù)誤差。總結(jié)現(xiàn)有研究發(fā)現(xiàn),幾何參數(shù)誤差與末端位姿誤差之間構(gòu)成了一個高維非線性方程組,在遺傳算法的后期加入模擬退火算法,使其跳出局部最優(yōu),并進(jìn)行了算例分析,證明了所提算法可以有效減少機(jī)器人的末端位姿誤差。
依據(jù)Paul所建立的DH法[13]建立機(jī)器人運(yùn)動學(xué)模型,轉(zhuǎn)換式如式(1):
Ai=Rot(Z,θi)Trans(Z,di)
Trans(X,ai)Rot(X,αi)=
式(1)中,θi為機(jī)器人第i個關(guān)節(jié)轉(zhuǎn)角,αi為連桿偏置,ai為連桿長度,di為連桿扭角。另外c為cos,s為sin,后續(xù)部分也應(yīng)用此表達(dá)方式。
由式(1)可知,相鄰兩關(guān)節(jié)的坐標(biāo)轉(zhuǎn)換關(guān)系主要由[θi,di,ai,αi]這幾個幾何參數(shù)構(gòu)成,而工業(yè)機(jī)器人是由6個這樣的坐標(biāo)系串聯(lián)而成,可將其坐標(biāo)變換連乘得到式(2):
式(2)中,0T6為機(jī)器人在基坐標(biāo)系下的末端位姿,[px,py,pz]T為機(jī)器人在基坐標(biāo)系下的末端位置向量,末端姿態(tài)可用歐拉角的方式表述:
δx=arctan 2(ox,nx)
δz=arctan 2(oz,az)
當(dāng)相鄰兩連桿坐標(biāo)系存在誤差,這個誤差可將其實(shí)際變換矩陣與理論變換矩陣做差得到,或者可以看作在理論變換矩陣的上右乘一個誤差矩陣,如式(3):
(3)
將相鄰連桿坐標(biāo)系之間的誤差關(guān)系推廣到全局,則末端位姿誤差可表示為式(4):
dT=TR-TN=TN·δT
(4)
式(4)中,δT為機(jī)器人基座標(biāo)系累積到末端坐標(biāo)系的誤差矩陣。
目標(biāo)函數(shù)定義為式(5):
(5)
傳統(tǒng)的遺傳算法具有局部搜索能力差和“早熟”等缺陷,不能保證算法在每次運(yùn)行時保持得到最優(yōu)解。所以在求解機(jī)器人幾何參數(shù)誤差的后期,引入模擬退火算法。遺傳算法將幾何參數(shù)誤差當(dāng)作種群的個體,隨機(jī)初始化種群,經(jīng)過編碼、選擇、交叉、變異的運(yùn)算,當(dāng)達(dá)到最大迭代次數(shù)時輸出遺傳算法的個體最優(yōu)解,也即是幾何誤差參數(shù)。將遺傳算法得到的幾何誤差參數(shù)作為模擬退火的初始解,按照領(lǐng)域函數(shù)生成候選解,Metropolis準(zhǔn)則篩選,經(jīng)過退溫后逐步迭代得到全局最優(yōu)解。
其中鄰域函數(shù)為式(6):
r=k×(rand(wmax-wmin)+wmin)
(6)
式(6)中,r為鄰域半徑,k為調(diào)節(jié)因子,wmax和wmin為幾何參數(shù)誤差的上下界,按誤差的3倍設(shè)置。
在經(jīng)過退溫后,候選解逐漸收斂為最優(yōu)解并輸出。另外,遺傳算法和模擬退火算法的目標(biāo)函數(shù)一致,都將機(jī)器人末端位姿誤差最小值作為優(yōu)化目標(biāo)。
所提算法簡稱GA-SA算法,求解機(jī)器人幾何參數(shù)誤差的流程為:
1)設(shè)定遺傳算法和模擬退火算法的運(yùn)行參數(shù)。
2)將機(jī)器人運(yùn)動學(xué)幾何參數(shù)誤差作為種群的個體,采用實(shí)數(shù)編碼,隨機(jī)產(chǎn)生初始種群。
3)按式(5)計(jì)算適應(yīng)度函數(shù),采用輪盤賭的方式進(jìn)行選擇運(yùn)算,選擇種群中個體較為優(yōu)秀的,進(jìn)行交叉運(yùn)算和變異運(yùn)算,完成新個體的篩選和制造,構(gòu)成新一代種群。
4)判斷當(dāng)前迭代次數(shù)是否大于最大迭代次數(shù),否則跳轉(zhuǎn)到步驟2。
5)最佳適應(yīng)度個體wold作為模擬退火算法的初始解,計(jì)算初始解適應(yīng)度函數(shù)值f(wold)。
6)按式(6)的鄰域函數(shù)求解當(dāng)前鄰域內(nèi)的最優(yōu)解wnew以及對應(yīng)的適應(yīng)度函數(shù)值f(wnew)。
7)評估當(dāng)前解適應(yīng)度函數(shù)值f(wnew)是否小于初始解適應(yīng)度函數(shù)值f(wold),若是,則接受當(dāng)前解,否則按照Metropolis準(zhǔn)則選擇是否接受當(dāng)前解。
8)判斷是否達(dá)到內(nèi)循環(huán)迭代次數(shù),滿足條件則輸出最優(yōu)解結(jié)束程序,否則跳轉(zhuǎn)到步驟5。
9)溫度下降,若達(dá)到指定溫度,則停止迭代輸出當(dāng)前狀態(tài),否則返回步驟7繼續(xù)迭代。
采用ABB機(jī)器人有限公司生產(chǎn)的IRB120機(jī)器人作為算例,IRB120機(jī)器人的DH模型參數(shù)見表1。設(shè)定的機(jī)器人幾何參數(shù)誤差如表2。
表1 IRB120機(jī)器人理論參數(shù)
表2 機(jī)器人幾何參數(shù)誤差
在機(jī)器人工作空間內(nèi)隨機(jī)產(chǎn)生50組理論關(guān)節(jié)轉(zhuǎn)角,將之前設(shè)定的幾何參數(shù)誤差加入到機(jī)器人的理論運(yùn)動學(xué)模型中,代入公式(2)中,利用1.2節(jié)的誤差模型和目標(biāo)函數(shù)求得適應(yīng)度值,按照適應(yīng)度值來進(jìn)行迭代求解幾何誤差參數(shù)。
對GA-SA算法設(shè)定初始運(yùn)行參數(shù),遺傳最大迭代次數(shù)maxgen為400,種群大小popsize為100,交叉概率Pc為0.8,變異概率Pm為0.05,初始溫度為200,終止溫度0.01,降溫系數(shù)λ為0.98。采用以上算法計(jì)算得到GA-SA的迭代曲線,如圖1所示。
圖1 進(jìn)化過程
由圖1可知,遺傳算法共迭代400次,而在200代時遺傳算法陷入局部最優(yōu),在400代之后引入模擬退火算法,此時按照模擬退火算法的迭代準(zhǔn)則運(yùn)行,在600次迭代后趨于全局最優(yōu),最終適應(yīng)度為0.0914。
將得到的最優(yōu)解代入理論運(yùn)動學(xué)模型作為機(jī)器人修正運(yùn)動學(xué)模型,利用相同的50組理論關(guān)節(jié)轉(zhuǎn)角得到機(jī)器人末端修正位姿,將其與實(shí)際位姿對比,如圖2和圖3所示。
圖2是機(jī)器人在未補(bǔ)償前沿X,Y,Z軸方向的末端位置和姿態(tài)誤差,圖3是機(jī)器人經(jīng)過GA-SA算法補(bǔ)償后沿X,Y,Z軸方向的末端位置誤差和姿態(tài)誤差。
表3 補(bǔ)償前后誤差比較
由表3可知,在機(jī)器人未補(bǔ)償前沿X,Y,Z軸方向的末端位置最大誤差值絕對值為4.1383 mm,3.1825 mm,1.8344 mm,而末端姿態(tài)最大誤差絕對值為0.0148 rad,0.0110 rad,0.0151 rad。從圖2和圖3中可以看出,經(jīng)過GA-SA算法補(bǔ)償后,沿著X,Y,Z軸方向的末端位置最大誤差絕對值降低為0.4944 mm,0.5815 mm,0.2986mm,末端姿態(tài)最大誤差絕對值為0.0009 rad,0.0018 rad,0.0025 rad,可見經(jīng)過GA-SA算法補(bǔ)償后,使工業(yè)機(jī)器人末端位置和姿態(tài)誤差均大幅減小,證明了GA-SA算法可以有效的標(biāo)定出機(jī)器人幾何參數(shù)誤差,并且精度較高。
1)利用DH法建立機(jī)器人運(yùn)動學(xué)模型和誤差模型,將機(jī)器人末端位置姿態(tài)誤差與幾何參數(shù)誤差之間相聯(lián)系,以機(jī)器人末端位置誤差最小為優(yōu)化目標(biāo),通過GA-SA算法標(biāo)定機(jī)器人幾何參數(shù)誤差。
2)提出的GA-SA算法,共迭代1100次,遺傳算法在迭代200次后陷入局部最優(yōu),模擬退火算法在400代時跳出局部最優(yōu),繼續(xù)迭代,在600次迭代后趨于全局最優(yōu),最終適應(yīng)度為0.0914。
3)所提算法將機(jī)器人末端位置誤差和姿態(tài)誤差的最大值降低,位置誤差沿X,Y,Z軸方向分別降低了88.05%,81.73%,83.72%,姿態(tài)誤差分別降低了93.92%,83.64%,83.44%,證明了算法的有效性。