王鈺鑫,周志龍,劉 巍
(大連理工大學(xué) 機(jī)械工程學(xué)院,遼寧 大連 116024)
隨著制造業(yè)水平的不斷發(fā)展,廣泛涌現(xiàn)出一些大尺寸復(fù)雜曲面零件[1-3]。這些零件具有測(cè)量尺寸大、型面復(fù)雜、難以移動(dòng)等特點(diǎn),因此難以采用三坐標(biāo)測(cè)量機(jī)等方式進(jìn)行接觸式測(cè)量。與坐標(biāo)測(cè)量機(jī)相比,以結(jié)構(gòu)光視覺測(cè)量為代表的非接觸式測(cè)量得到了廣泛的應(yīng)用[4-6]。將結(jié)構(gòu)光掃描儀集成到機(jī)器人系統(tǒng)中即可構(gòu)成柔性測(cè)量系統(tǒng)。該系統(tǒng)兼顧了結(jié)構(gòu)光掃描儀精度高、效率高和機(jī)器人柔性好、可適用于不同工作場(chǎng)景的特點(diǎn)。為了實(shí)現(xiàn)測(cè)量結(jié)果從掃描儀坐標(biāo)系到機(jī)器人基坐標(biāo)系的統(tǒng)一高精轉(zhuǎn)換,必須進(jìn)行考慮到機(jī)械臂運(yùn)動(dòng)學(xué)誤差的手眼關(guān)系標(biāo)定[7]。
傳統(tǒng)的手眼標(biāo)定方法可以轉(zhuǎn)化為對(duì)AX=XB這個(gè)方程的求解問題。Tsai[8]通過機(jī)器人變換不同位姿對(duì)標(biāo)定物進(jìn)行拍攝,將手眼矩陣拆為平移部分和旋轉(zhuǎn)部分,再依次進(jìn)行求解。Horaud[9]對(duì)此方程給出了一種基于四元數(shù)的求解方法。Zhuang[10]將相機(jī)和機(jī)器人作為整體進(jìn)行一次性標(biāo)定,從而求解出手眼標(biāo)定參數(shù)。Ma[11]通過機(jī)器人做特定運(yùn)動(dòng)從而建立約束并進(jìn)行求解。這些求解方式的共同特點(diǎn)是需要機(jī)器人做一些特定運(yùn)動(dòng),將機(jī)器人作為標(biāo)定精度鏈中的一環(huán)。但是,由于在制造裝配時(shí)存在誤差,工業(yè)機(jī)器人的理論運(yùn)動(dòng)學(xué)模型和實(shí)際運(yùn)動(dòng)學(xué)模型間存在偏差,因此這些方法會(huì)引入機(jī)器人的運(yùn)動(dòng)學(xué)參數(shù)誤差,進(jìn)而影響到手眼標(biāo)定的準(zhǔn)確性。
本文提出了一種基于機(jī)器人與結(jié)構(gòu)光掃描儀的柔性測(cè)量系統(tǒng)標(biāo)定方法。首先通過機(jī)器人單軸旋轉(zhuǎn)以及基于羅德里格矩陣的算法進(jìn)行手眼標(biāo)定,獲得手眼關(guān)系矩陣;然后機(jī)器人變換不同位姿,測(cè)量特征點(diǎn),基于距離約束對(duì)手眼關(guān)系參數(shù)和機(jī)器人運(yùn)動(dòng)學(xué)參數(shù)進(jìn)行進(jìn)一步標(biāo)定;最后通過測(cè)量距離誤差來驗(yàn)證標(biāo)定結(jié)果的準(zhǔn)確性。
柔性測(cè)量系統(tǒng)由工業(yè)機(jī)器人和結(jié)構(gòu)光掃描儀組成(見圖1),結(jié)構(gòu)光掃描儀通過夾具安裝在機(jī)器人末端。測(cè)量時(shí)通過機(jī)器人變換不同位姿,掃描儀對(duì)被測(cè)特征進(jìn)行拍攝,并將測(cè)量結(jié)果從掃描儀坐標(biāo)系轉(zhuǎn)換到機(jī)器人基坐標(biāo)系。柔性測(cè)量系統(tǒng)的主要坐標(biāo)系包括機(jī)器人基坐標(biāo)系Ob-XbYbZb、機(jī)器人末端坐標(biāo)系Of-XfYfZf、掃描儀坐標(biāo)系Os-XsYsZs和掃描儀夾具坐標(biāo)系Oc-XcYcZc。則可得到特征點(diǎn)在機(jī)器人基坐標(biāo)系下的坐標(biāo)表示為:
(1)
本文選用的機(jī)器人為六自由度工業(yè)機(jī)器人,采用目前最廣泛的DH模型對(duì)機(jī)器人進(jìn)行運(yùn)動(dòng)學(xué)建模,即通過連桿長(zhǎng)度ai、連桿轉(zhuǎn)角αi、連桿偏距di和關(guān)節(jié)轉(zhuǎn)角θi這4個(gè)參數(shù)求出相鄰連桿坐標(biāo)系間的轉(zhuǎn)換矩陣[12]:
(2)
式中,TZ(di)、TX(ai)為平移矩陣;RZ(θi)、RX(αi)為旋轉(zhuǎn)矩陣。慮及相鄰關(guān)節(jié)軸線平行或接近平行產(chǎn)生的奇異性問題,引入繞Y軸旋轉(zhuǎn)的轉(zhuǎn)角β,建立機(jī)器人MDH模型[13],則相鄰連桿坐標(biāo)系間的轉(zhuǎn)換矩陣為:
(3)
式中,cθi表示cosθi;sθi表示sinθi;依次類推。當(dāng)相鄰軸不平行時(shí),轉(zhuǎn)角β取零;當(dāng)相鄰軸平行時(shí),連桿偏距d取零。
(4)
(5)
(6)
(7)
要求解此方程,首先需要得到特征點(diǎn)的重心化坐標(biāo),即將特征點(diǎn)原點(diǎn)的坐標(biāo)轉(zhuǎn)換為特征點(diǎn)的重心坐標(biāo),計(jì)算式如下:
(8)
將式8代入式7可得:
(9)
對(duì)式9兩端取2-范數(shù),因?yàn)棣?0且R為正交矩陣,因此可得:
(10)
對(duì)λ進(jìn)行最小二乘估計(jì),即可解出λ:
(11)
接下來求解R。引入一個(gè)反對(duì)稱矩陣:
(12)
式中,S包含a、b、c三個(gè)羅德里格參數(shù)。由羅德里格矩陣的性質(zhì)可知:
(13)
式中,I為三階單位矩陣。將式13代入式9,整理后得:
(14)
由間接平差模型可得:
(15)
由最小二乘估計(jì),可得:
X=(BTB)-1BTl
(16)
為了提高測(cè)量系統(tǒng)的測(cè)量精度,考慮到手眼關(guān)系參數(shù)誤差和機(jī)器人運(yùn)動(dòng)學(xué)參數(shù)誤差,提出了一種基于距離約束的標(biāo)定方法,進(jìn)一步修正手眼關(guān)系參數(shù)和機(jī)器人運(yùn)動(dòng)學(xué)參數(shù)。即以兩特征點(diǎn)之間精確的已知距離作為校準(zhǔn)目標(biāo),通過對(duì)特征點(diǎn)距離進(jìn)行測(cè)量以求解機(jī)器人運(yùn)動(dòng)學(xué)參數(shù)誤差和手眼關(guān)系參數(shù)誤差[16]。
特征點(diǎn)在機(jī)器人基坐標(biāo)系下的理論測(cè)量結(jié)果可表示為:
(17)
由于手眼關(guān)系參數(shù)和機(jī)器人運(yùn)動(dòng)學(xué)參數(shù)存在誤差,特征點(diǎn)的實(shí)際測(cè)量結(jié)果與理論測(cè)量結(jié)果有所差距,慮及測(cè)量誤差的實(shí)際測(cè)量結(jié)果可以表示為:
(18)
(19)
由微分運(yùn)動(dòng)學(xué)可得手眼關(guān)系誤差:
(20)
(21)
同理,由微分運(yùn)動(dòng)學(xué)可得機(jī)器人位姿誤差:
(22)
(23)
因需要求出機(jī)器人運(yùn)動(dòng)學(xué)參數(shù)誤差,故需建立出機(jī)器人末端位姿誤差和運(yùn)動(dòng)學(xué)參數(shù)誤差之間的關(guān)系。由式3可知,受機(jī)器人運(yùn)動(dòng)學(xué)參數(shù)誤差影響下的相鄰連桿坐標(biāo)系間的轉(zhuǎn)換矩陣為:
(24)
由微分運(yùn)動(dòng)學(xué)可得轉(zhuǎn)換矩陣誤差:
(25)
(26)
(27)
則有:
(28)
對(duì)比式26和式28可得:
(29)
(30)
式中,Gi為誤差系數(shù)矩陣;ΔEi為連桿i的參數(shù)誤差導(dǎo)致的連桿i末端誤差,需要將各個(gè)連桿的誤差轉(zhuǎn)換到機(jī)器人末端。設(shè)連桿坐標(biāo)系{i}到機(jī)器人末端坐標(biāo)系的轉(zhuǎn)換矩陣為:
(31)
則連桿坐標(biāo)系{i}到機(jī)器人末端坐標(biāo)系的雅可比矩陣為:
(32)
(33)
式中,ΔP= [Δθ1…Δθ6,Δd1…Δd6, Δa1…Δa6,Δα1…Δα6,Δβ2],共24個(gè)運(yùn)動(dòng)學(xué)參數(shù)誤差。代入式23得:
(34)
式34與式19、式21聯(lián)立,可得:
(35)
(36)
距離誤差可表示為:
(37)
將式36代入式37,得:
(38)
由于ΔK包含30個(gè)未知參數(shù),因此需要機(jī)器人對(duì)至少30組特征點(diǎn)間的距離進(jìn)行測(cè)量,進(jìn)而建立具有30個(gè)以上式38的方程組,對(duì)該方程組進(jìn)行求解,即可得到所求參數(shù)。
由于Q矩陣不滿秩,因此無法采用最小二乘法對(duì)此方程組進(jìn)行求解。在這里采用Levenberg-Marquardt算法進(jìn)行求解[18]。Levenberg-Marquardt算法的具體流程如下。
步驟1:設(shè)置權(quán)系數(shù)μ(一般取0.001)、初始點(diǎn)ΔK0和容許誤差ΔLmax。
步驟2:由參數(shù)誤差ΔKi求出距離測(cè)量值Li和系數(shù)矩陣Qi,其中i為迭代次數(shù)。
步驟3:由距離實(shí)際值Lr和距離測(cè)量值Li做差,得到距離誤差ΔLi。
步驟5:若ΔLi+1<ΔLmax,則輸出ΔKi,結(jié)束流程;若ΔLi+1<ΔLi,則令ΔKi+1=ΔKi,μ=10μ,轉(zhuǎn)步驟4;否則,令μ=μ/10,轉(zhuǎn)步驟2。
試驗(yàn)現(xiàn)場(chǎng)的測(cè)量系統(tǒng)如圖4所示,機(jī)器人型號(hào)為KUKA KR10 R1420,最大工作范圍為1 420 mm,重復(fù)定位精度為0.04 mm;激光跟蹤儀型號(hào)為L(zhǎng)eica AT960MR,測(cè)量精度為±15 μm+6 μm/m;掃描儀型號(hào)為Gocator 3506,測(cè)量精度為±12 μm。掃描儀通過夾具安裝在機(jī)器人末端,同時(shí)在掃描儀夾具上安裝靶球,以便激光跟蹤儀進(jìn)行測(cè)量。
(39)
(40)
表1 機(jī)器人運(yùn)動(dòng)學(xué)參數(shù)誤差
修正參數(shù)后,重新計(jì)算特征點(diǎn)間的距離誤差,修正前后每組特征點(diǎn)距離誤差如圖6所示,距離誤差的最大值由0.870 0 mm減小到0.404 2 mm,平均值由0.661 4 mm減小到0.300 6 mm,驗(yàn)證了該標(biāo)定方法的有效性。
為了驗(yàn)證機(jī)器人在全部工作空間內(nèi)的標(biāo)定精度,將靶尺在機(jī)器人的工作空間內(nèi)均勻移動(dòng)10個(gè)位置,對(duì)這10個(gè)位置的特征點(diǎn)距離進(jìn)行測(cè)量,測(cè)量得到的標(biāo)定前后每組特征點(diǎn)距離誤差如圖7所示,距離誤差的最大值由0.889 3 mm減小到0.424 9 mm,平均值由0.778 4 mm減小到0.385 2 mm,可見對(duì)柔性系統(tǒng)進(jìn)行標(biāo)定在機(jī)器人的全部工作空間內(nèi)均有效。
本文針對(duì)柔性測(cè)量系統(tǒng)整體測(cè)量精度不足問題,提出了一種基于距離約束的手眼關(guān)系參數(shù)和機(jī)器人運(yùn)動(dòng)學(xué)參數(shù)聯(lián)合標(biāo)定方法。首先,通過機(jī)器人單軸旋轉(zhuǎn)與基于羅德里格矩陣的算法實(shí)現(xiàn)手眼關(guān)系初始標(biāo)定,然后,基于距離約束實(shí)現(xiàn)對(duì)手眼關(guān)系參數(shù)誤差和機(jī)器人運(yùn)動(dòng)學(xué)參數(shù)誤差的辨識(shí)及修正,并通過試驗(yàn),驗(yàn)證了標(biāo)定精度。試驗(yàn)結(jié)果表明,在機(jī)器人的工作空間內(nèi),距離誤差的最大值由0.889 3 mm降低到0.424 9 mm,平均值由0.778 4 mm降低到0.385 2 mm,驗(yàn)證了該測(cè)量系統(tǒng)具有較高的測(cè)量精度。