邰承岳,諶業(yè)清,李昊冉,張烈山
(1.浙江理工大學(xué) 機(jī)械工程學(xué)院,杭州 310018;2.浙江理工大學(xué) 信息科學(xué)與工程學(xué)院,杭州 310018)
隨著智能制造戰(zhàn)略的不斷推進(jìn),工業(yè)機(jī)器人已成為現(xiàn)代智能生產(chǎn)線上具有標(biāo)志性的重要裝備。視覺傳感器與工業(yè)機(jī)器人手眼協(xié)同技術(shù)正在悄然改變傳統(tǒng)的機(jī)械制造業(yè),基于視覺傳感器的機(jī)器人系統(tǒng)使得制造、裝配等工藝活動更加具有柔性和環(huán)境適應(yīng)性。一般地,機(jī)器人視覺系統(tǒng)采用非接觸式測量技術(shù)作為工業(yè)機(jī)器人的“眼睛”來獲取目標(biāo)的空間位置,而線結(jié)構(gòu)光傳感器[1-2]由于具有抗干擾能力強(qiáng)、精度高等優(yōu)點(diǎn)被廣泛應(yīng)用于焊接[3]、研磨[4]、銑削[5]、抓取[6]等加工生產(chǎn)領(lǐng)域中。為了獲得被測物在機(jī)器人基坐標(biāo)系下的坐標(biāo)數(shù)據(jù),需要確定機(jī)器人末端坐標(biāo)系與傳感器坐標(biāo)系之間的坐標(biāo)變換關(guān)系,該過程稱之為手眼標(biāo)定,而手眼標(biāo)定的精度影響著整個(gè)機(jī)械制造工藝過程的精度。
目前,手眼標(biāo)定算法的理論已經(jīng)有了很多前人的研究基礎(chǔ)[7-8]。手眼標(biāo)定算法一般是通過多次改變機(jī)器人位姿,觀測一個(gè)已知結(jié)構(gòu)的靶標(biāo),建立約束關(guān)系來求解手眼關(guān)系矩陣。機(jī)器人的視覺傳感器按照測量維度分為2D和3D傳感器兩種[9-10]。對于3D傳感器,典型方法為采用攝像機(jī)作為傳感器且以棋盤格作為靶標(biāo)的標(biāo)定方法,該方法根據(jù)約束關(guān)系建立型如AX=XB的齊次方程[11-12],然而,該方法計(jì)算復(fù)雜,標(biāo)定精度較低、魯棒性低。同時(shí),3D視覺傳感器普遍測量精度較低,不能滿足工業(yè)機(jī)器人柔性焊接、打磨等高精度作業(yè)的要求。對于2D傳感器即主要為線結(jié)構(gòu)光掃描視覺傳感器,主要采取的方法是以標(biāo)準(zhǔn)球作為靶標(biāo),獲取標(biāo)準(zhǔn)球球心位置作為約束,從而建立數(shù)學(xué)模型求出手眼關(guān)系的矩陣[13]。為了提高手眼標(biāo)定結(jié)果的精度,Xie[14]等人基于線結(jié)構(gòu)光傳感器建立了包含6自由度機(jī)器人運(yùn)動學(xué)參數(shù)及手眼標(biāo)定參數(shù)的誤差模型,機(jī)器人的標(biāo)定精度得到顯著提高;高金鋒[15]等人提出一種采用標(biāo)準(zhǔn)圓柱中軸線作為約束的手眼標(biāo)定方法,該方法利用粒子群優(yōu)化算法(PSO)及廣義拉格朗日乘子法的融合算法求解標(biāo)定矩陣;孫煒[16]等人提出一種基于階梯形標(biāo)定物手眼標(biāo)定方法,該標(biāo)定方法具有較高的精度和穩(wěn)定性;He Xie[17]等人提出一種使用任意曲面作為標(biāo)定物的標(biāo)定方法,該方法同時(shí)標(biāo)定機(jī)器人幾何參數(shù)和手眼標(biāo)定參數(shù),具有較好的精度、重復(fù)度和魯棒性;Amy[18]使用迭代的方法進(jìn)行手眼關(guān)系的校準(zhǔn),極大的提高了校準(zhǔn)精度;Sharifzadeh[19]基于一個(gè)單平面進(jìn)行手眼標(biāo)定,該方法具有成本低、制作簡單、精度較高等優(yōu)點(diǎn)。雖然學(xué)者們對機(jī)器人的標(biāo)定做了大量的研究,提出了許多有效提高標(biāo)定精度的標(biāo)定方法,但這些方法往往極大地提高了標(biāo)定的成本或復(fù)雜性,不能適應(yīng)實(shí)際工業(yè)生產(chǎn)中復(fù)雜環(huán)境。因此,一個(gè)低成本、標(biāo)定方法方便快捷、可以適應(yīng)復(fù)雜環(huán)境的標(biāo)定方法的研究是十分有必要的。
基于上述問題,本文針對6自由度機(jī)器人搭載線結(jié)構(gòu)光傳感器的機(jī)器人系統(tǒng),提出一種以M型標(biāo)準(zhǔn)塊作為靶標(biāo)的手眼標(biāo)定方法。該方法通過改變機(jī)器人末端位姿,每次可采集出試塊的一條M型截面輪廓,該輪廓由4條呈現(xiàn)M型的直線組成,左右兩組直線的相交就可以得到一對M型標(biāo)準(zhǔn)塊脊線上的點(diǎn),結(jié)合機(jī)器人運(yùn)動學(xué)模型[20],以點(diǎn)云到兩條平行直線的距離為約束,同時(shí)辨識出機(jī)器人運(yùn)動學(xué)及手眼關(guān)系矩陣的參數(shù)誤差。為了驗(yàn)證標(biāo)定方法的有效性,提出以某精加工平面為基準(zhǔn),利用標(biāo)定后的機(jī)器人系統(tǒng)對該平面進(jìn)行點(diǎn)云采集,以實(shí)測點(diǎn)云到最小二乘擬合面距離的均方根值作為手眼標(biāo)定算法的評價(jià)依據(jù)。該方法操作簡單,能有效提高機(jī)器人手眼標(biāo)定的精度,可以適應(yīng)工業(yè)生產(chǎn)中復(fù)雜的環(huán)境。
機(jī)器人手眼標(biāo)定常規(guī)方法以標(biāo)準(zhǔn)球?yàn)闃?biāo)定物,其標(biāo)定系統(tǒng)示意圖如圖1所示,主要由工業(yè)機(jī)器人、線結(jié)構(gòu)光傳感器和標(biāo)定物組成。
圖1 以標(biāo)準(zhǔn)球約束標(biāo)定系統(tǒng)示意圖
將線結(jié)構(gòu)光傳感器搭載在機(jī)器人末端,多次改變機(jī)器人位姿掃描空間中一固定點(diǎn)位置,可以得到該點(diǎn)在線結(jié)構(gòu)光傳感器坐標(biāo)系下的位置Xs與其在機(jī)器人基坐標(biāo)系下的位置Xb的轉(zhuǎn)換關(guān)系,其轉(zhuǎn)換關(guān)系為:
Xb=Tf·Ts·Xs
(1)
其中:矩陣Tf為機(jī)器人末端坐標(biāo)系相對于基坐標(biāo)系的轉(zhuǎn)換矩陣;矩陣Ts為線結(jié)構(gòu)光傳感器坐標(biāo)系相對于機(jī)器人末端坐標(biāo)系的轉(zhuǎn)換矩陣即手眼關(guān)系矩陣。
目前,工程上測量空間固定點(diǎn)的方法主要為掃描一個(gè)已知半徑為R的標(biāo)準(zhǔn)球來獲得球心坐標(biāo)Xs(xs,ys,zs),若線結(jié)構(gòu)光傳感器掃描所得弧狀點(diǎn)云擬合圓的坐標(biāo)為Xc(xc,yc,zc),半徑為r,所求球心在線結(jié)構(gòu)光傳感器坐標(biāo)系下的位置為:
(2)
式中,ys的符號需要根據(jù)傳感器與標(biāo)準(zhǔn)球的相對位置來確定。
對于以標(biāo)準(zhǔn)球?yàn)槟繕?biāo)的手眼標(biāo)定方法,主要存在以下幾個(gè)問題:第一,對于每次掃描求得的球心坐標(biāo)都需要人為判斷Y軸方向上的正負(fù),當(dāng)掃描圓心與球心接近時(shí),極易判斷錯(cuò)誤,這將導(dǎo)致手眼標(biāo)定無法進(jìn)行或標(biāo)定結(jié)果錯(cuò)誤;第二,每次采集數(shù)據(jù)后結(jié)算球心坐標(biāo)時(shí)都需要圓擬合等算法求解Y軸方向上坐標(biāo),會增大Y軸方向上的噪聲,魯棒性較差;第三,以標(biāo)準(zhǔn)球作為測量對象,算法的精度嚴(yán)重依賴球的加工精度,通常來說球的制造精度不易控制,不僅提高了系統(tǒng)成本,也難以保證標(biāo)定效果。因此,采用以標(biāo)準(zhǔn)球?yàn)槟繕?biāo)的手眼標(biāo)定方法精度和穩(wěn)定性都不是十分理想
本文設(shè)計(jì)了一種M型標(biāo)準(zhǔn)塊,其截面形狀呈現(xiàn)M型。該M型標(biāo)準(zhǔn)塊在標(biāo)定時(shí)主要用到了上部呈現(xiàn)屋脊?fàn)畹?個(gè)平面,以這4個(gè)屋脊面構(gòu)建兩條平行的脊線作為手眼標(biāo)定算法的約束。M型標(biāo)準(zhǔn)塊如圖2所示。
圖2 M型標(biāo)準(zhǔn)塊模型圖
設(shè)計(jì)M型標(biāo)準(zhǔn)塊頂端兩條脊線上分別存在坐標(biāo)系{l1}、{l2},兩坐標(biāo)系滿足以下條件:
1)坐標(biāo)系{l1}、{l2}之間沒有姿態(tài)的變化;
2)坐標(biāo)系{l1}、{l2}的X軸分別與對應(yīng)直線重合;
3)坐標(biāo)系{l2}相對于{l1}只存在Y軸方向上的位置變化;
4)機(jī)器人基坐標(biāo)系相對于坐標(biāo)系{l1}、{l2}在X軸方向上的坐標(biāo)為0。
以上條件可以確定坐標(biāo)系{l1}、{l2}的位姿。對應(yīng)的標(biāo)定系統(tǒng)如圖3所示,則可以重新構(gòu)建數(shù)學(xué)模型如式(3)所示:
圖3 以M型標(biāo)準(zhǔn)塊約束標(biāo)定系統(tǒng)示意圖
(3)
其中:Xl1、Xl2表示直線l1、l2上點(diǎn)云在坐標(biāo)系{l1}、{l2}上的位置,Tl1、Tl2為機(jī)器人基坐標(biāo)系相對于直線坐標(biāo)系{l1}、{l2}的轉(zhuǎn)換矩陣。在無噪聲影響下,對于直線坐標(biāo)系{l}上的點(diǎn)云坐標(biāo)Xl上理論上滿足約束條件:yl=zl=0。但由于實(shí)際測量時(shí),必定存在噪聲的影響,所以目標(biāo)方程為:
(4)
式中,d為直線點(diǎn)云到直線的距離。
相較于標(biāo)準(zhǔn)球,M型標(biāo)準(zhǔn)塊具有易于加工、加工精度高的特點(diǎn);同時(shí),消除了使用標(biāo)準(zhǔn)球標(biāo)定時(shí)因判斷球心在線結(jié)構(gòu)光傳感器上的位置的Y軸坐標(biāo)的正負(fù)導(dǎo)致無法標(biāo)定的情況;采用M型標(biāo)準(zhǔn)塊標(biāo)定時(shí),有著更大的機(jī)器人姿態(tài)變換范圍,這將易于標(biāo)定數(shù)據(jù)的采集并且提高標(biāo)定的精度和魯棒性。
如圖4所示,改變機(jī)器人姿態(tài)使得掃描儀每次能夠同時(shí)獲得直線l1與l2上的點(diǎn)。
圖4 采集點(diǎn)云數(shù)據(jù)圖
每次采集的掃描儀點(diǎn)云數(shù)據(jù)呈現(xiàn)“M”型,將點(diǎn)云數(shù)據(jù)擬合成4條直線,直線間兩兩相交得到的2個(gè)交點(diǎn)即為M型標(biāo)準(zhǔn)塊脊線上的目標(biāo)點(diǎn),線結(jié)構(gòu)光傳感器采集脊線點(diǎn)云的處理過程如圖5所示。其中,每組掃描儀采集點(diǎn)云還有有效點(diǎn)約750個(gè),細(xì)線為擬合出來的4條直線,兩個(gè)“*”點(diǎn)為直線交點(diǎn)。因?yàn)榧庸すに嚨南拗?,M型標(biāo)準(zhǔn)塊的理想脊線并不存在,需要通過直線交點(diǎn)計(jì)算來得到一對脊線上的點(diǎn),因此需要通過多次掃描測量,再通過直線擬合來間接得到脊線點(diǎn)云。
圖5 直線交點(diǎn)提取示意圖
該方法的重點(diǎn)為線結(jié)構(gòu)光傳感器一次掃描得到的點(diǎn)云中4條直線的分類提取,本文提取方法如下:
1)初始化數(shù)據(jù),令距離閾值d=0.01 mm,采集點(diǎn)云數(shù)據(jù),記為Data數(shù)組;
2)初始化適用于擬合直線模型點(diǎn)云數(shù)據(jù),記為Model,為Data數(shù)組的序號第10至第30的點(diǎn)云數(shù)據(jù);
3)使用數(shù)據(jù)Model擬合直線,獲得直線參數(shù):斜率k和截距b;
4)計(jì)算數(shù)據(jù)Data中每個(gè)點(diǎn)至直線距離ddata,更新數(shù)據(jù)Model為小于距離閾值d的點(diǎn)云數(shù)據(jù);
5)重復(fù)步驟3)、4),若Model不再更新,則輸出直線參數(shù)k、b;
6)計(jì)算Model中最高的點(diǎn)云序數(shù)pmax,刪去點(diǎn)云數(shù)據(jù)Data第1至pmax的點(diǎn)云;
7)重復(fù)步驟2)~6),直至得到4條直線的參數(shù)。
提取出線結(jié)構(gòu)光傳感器點(diǎn)云數(shù)據(jù)中的4條直線之后,進(jìn)行直線交點(diǎn)的計(jì)算,令兩條直線的的斜率分別為k1、k2,截距分別為b1、b2,其交點(diǎn)坐標(biāo)為(xp,yp),則可以得到如式(5)所示的型如Ax=b的公式。
(5)
最小二乘式的求解方法如(6)所示:
x=(ATA)-1ATb
(6)
1)手眼關(guān)系初值計(jì)算:
在M型標(biāo)準(zhǔn)塊上任一直線上標(biāo)記一點(diǎn),不斷控制機(jī)器人掃描該點(diǎn),獲取該點(diǎn)在線結(jié)構(gòu)光傳感器下的坐標(biāo)以及對應(yīng)的機(jī)器人末端位姿,建立式(1)所示的模型,即為式(7)所示:
[xb,yb,zb]T=
RfRs[xs,ys,zs]T+Rfts+tf
(7)
式中,ys=0,Rf、tf分別為工業(yè)機(jī)器人末端的姿態(tài)和位置,Rs、ts分別是手眼關(guān)系的旋轉(zhuǎn)矩陣和位置矩陣。
采集n組數(shù)據(jù)之后,可以得到式(8):
Rf1Rs[xs1,0,zs1]T+Rf1ts+tf1=
RfiRs[xsi,0,zsi]T+Rfits+tfi
i=2,3…n
(8)
化簡得:
(9)
式(9)中,r是旋轉(zhuǎn)矩陣Rs的3個(gè)旋轉(zhuǎn)分量。即Rs=[r1r2r3]。通過最小二乘法求解出r1、r3以及ts之后,根據(jù)右手定則,可以得出:
r2=r3×r1
(10)
通過式(7)、(8)的方法可以計(jì)算機(jī)器人在不考慮運(yùn)動學(xué)誤差的情況下的手眼關(guān)系,以其作為本文標(biāo)定的一個(gè)初值。
2)M型標(biāo)準(zhǔn)塊位姿初值計(jì)算:
按如圖6所示采集M型標(biāo)準(zhǔn)塊兩條脊線上A、B、C三個(gè)點(diǎn),通過公式(1)的轉(zhuǎn)換關(guān)系得到這3個(gè)點(diǎn)在機(jī)器人基坐標(biāo)系下的坐標(biāo)位置。
假設(shè)點(diǎn)A、B、C的位置坐標(biāo)為PA、PB、PC,令n1=PB-PA、n2=PC-PA,則旋轉(zhuǎn)矩陣的旋轉(zhuǎn)分量為:
(11)
其中:“×”表示向量之間的叉乘關(guān)系,r1為直線l1和l2的方向向量,r2為直線l1指向直線l2的方向向量,r3為直線l1和l2組成的平面的法向量。
由于機(jī)器人基坐標(biāo)系在直線坐標(biāo)系{l1}上X軸坐標(biāo)為0,所以直線坐標(biāo)系{l1}在機(jī)器人基坐標(biāo)系上的位置等價(jià)于原點(diǎn)在該直線上的垂足在機(jī)器人基坐標(biāo)系上的位置,如圖7所示,令點(diǎn)A位置坐標(biāo)為(x1,y1,z1)、點(diǎn)B位置坐標(biāo)為(x2,y2,z2),直線外一點(diǎn)即機(jī)器人基坐標(biāo)系坐標(biāo)為(0,0,0),則位置矩陣參數(shù)為:
圖7 點(diǎn)到直線垂足示意圖
(12)
式中,
(13)
根據(jù)式(11)、(12)得到直線坐標(biāo)系{l1}相對于機(jī)器人基坐標(biāo)系上的轉(zhuǎn)換關(guān)系bTl1,反之則可以得到機(jī)器人基坐標(biāo)系相對于直線坐標(biāo)系{l1}上的轉(zhuǎn)換關(guān)系為Tl1:
Tl1=bTl1-1
(14)
由于直線l1與l2相互平行,若兩條直線間的距離為d,則可以得到機(jī)器人基坐標(biāo)系相對于直線坐標(biāo)系{l2}上的轉(zhuǎn)換關(guān)系為:
Tl2=transl(0,±d,0)·Tl1
(15)
其中:transl()為平移變換函數(shù)。
至此,手眼關(guān)系矩陣以及機(jī)器人基坐標(biāo)系在對應(yīng)的兩條直線上的位姿矩陣的初步標(biāo)定完成。初步標(biāo)定方法簡單快捷,不需要復(fù)雜的運(yùn)算。由于該運(yùn)算方法未曾考慮機(jī)器人運(yùn)動學(xué)誤差的影響,計(jì)算出的結(jié)果與實(shí)際有所偏差。因此,需要考慮機(jī)器人運(yùn)動學(xué)誤差的影響,建立誤差辨識的模型,通過修正手眼關(guān)系誤差、機(jī)器人運(yùn)動學(xué)誤差以及機(jī)器人基坐標(biāo)系在M型標(biāo)準(zhǔn)塊上的直線的位姿誤差,從而使標(biāo)定的手眼關(guān)系更加準(zhǔn)確。
得到參數(shù)Tl、Ts的初值之后,考慮到機(jī)器人存在運(yùn)動學(xué)參數(shù)誤差,因此,需要建立誤差辨識的模型如式(16)所示:
Xl+ΔXl=(Tl+ΔTl)(Tf+ΔTf)(Ts+ΔTs)Xs
(16)
消去其中的高階項(xiàng),僅保留低階項(xiàng),可以得到式(17):
ΔXl=
ΔTlTfTsXs+TlΔTfTsXs+TlTfΔTsXs
(17)
根據(jù)微分運(yùn)動學(xué)原理:
ΔT=TδT
(18)
(19)
(20)
結(jié)合式(17)、(20)的可以得到誤差辨識的公式如式(21)所示:
Ax=b
(21)
其中:
(22)
其中:ni是3×1的向量,m是機(jī)器人的轉(zhuǎn)軸數(shù)量,m=6,但由于單條直線的約束對于坐標(biāo)系{Tl}的姿態(tài)僅可以確定其X軸的方向,Y、Z軸的方向依然可以繞X軸旋轉(zhuǎn),所以,單條直線的約束不能確定坐標(biāo)系{Tl},因此本文以兩條直線作為約束建立最小二乘模型,這不僅可以提高手眼標(biāo)定的精度,還可以確定坐標(biāo)系{Tl}的位姿。
對式(22)作如下處理:
1)標(biāo)定方法是以直線作為約束,因此不存在X軸方向上的約束,需要刪去矩陣A、b的第一行;
2)機(jī)器人基坐標(biāo)系{Tb}相對于坐標(biāo)系{Tl1}、{Tl2}姿態(tài)不變,在Y軸上位置存在差異,在X、Z上位置不變,且在X軸上的位置為0,因此刪去參數(shù)x中的Δxl,改Δyl為Δyl1、Δyl2,然后對矩陣A作相應(yīng)的更改;
3)考慮到x冗余參數(shù)的影響,需要去除冗余參數(shù),可通過QR分解辨識出冗余參數(shù)。
經(jīng)過以上三點(diǎn)的修改之后,A、b、x的參數(shù)如式(23)所示:
(23)
綜上,多次改變位姿測量M型標(biāo)準(zhǔn)塊,獲得試塊直線的點(diǎn)云坐標(biāo),經(jīng)式(17)~(23)建立最小二乘式如(24)所示:
Ux=V
(24)
通過最小二乘法求解出誤差參數(shù)x的值之后,將誤差補(bǔ)償進(jìn)標(biāo)定模型中,然后再次進(jìn)行誤差辨識,不斷迭代,直至辨識出的誤差參數(shù)x小于閾值,算法流程如圖8所示。
圖8 標(biāo)定算法流程圖
閾值一般取接近0的數(shù),經(jīng)過測試,本文仿真及實(shí)驗(yàn)中取閾值為10-10即可得到滿足要求的標(biāo)定結(jié)果。
分別建立本文以M型標(biāo)準(zhǔn)塊為標(biāo)定物的方法和傳統(tǒng)以標(biāo)準(zhǔn)球?yàn)闃?biāo)定物的方法的的數(shù)學(xué)模型。
兩條的仿真直線參數(shù)分別為:
(25)
式中,PL1和PL2分別為直線上一點(diǎn),VL為直線方向向量。
將線結(jié)構(gòu)光傳感器坐標(biāo)系的XOZ平面用點(diǎn)坐標(biāo)PP、法向量VP并表示,則每次設(shè)定機(jī)器人姿態(tài)和位置后得到的目標(biāo)點(diǎn)坐標(biāo)計(jì)算方法如式(26)、(27)所示:
Px=PL+k*VL
(26)
k*VL·VP=(PP-PL)·VP
(27)
為了研究誤差對該模型的影響,對機(jī)器人的運(yùn)動學(xué)模型添加表1所示的系統(tǒng)誤差以模擬實(shí)際模型參數(shù)。然后給機(jī)器人手眼關(guān)系的6個(gè)參數(shù)分別添加0.01 rad和0.1 mm的角度誤差和位置誤差作為驗(yàn)證本文誤差辨識算法時(shí)轉(zhuǎn)換矩陣Ts的初值。同理,給Tl添加相同的角度誤差和位置誤差。其中Δα0、Δɑ0、Δθ1、Δd1四個(gè)參數(shù)會與Tl的參數(shù)冗余,本文系統(tǒng)模型無法將其辨識出來,所以進(jìn)行仿真實(shí)驗(yàn)將不會對其施加系統(tǒng)誤差。
表1 機(jī)器人運(yùn)動學(xué)仿真系統(tǒng)誤差設(shè)定值
經(jīng)過給機(jī)器人標(biāo)定模型僅施加系統(tǒng)誤差的仿真實(shí)驗(yàn),得到的運(yùn)動學(xué)誤差辨識結(jié)果如表2所示,其驗(yàn)證了本文算法的正確性,其中Δd2的誤差會被其它運(yùn)動學(xué)參數(shù)補(bǔ)償?shù)?,不會影響機(jī)器人末端的位姿,Δθ6、Δd6的誤差會被手眼關(guān)系矩陣Ts的參數(shù)冗余,在實(shí)際的標(biāo)定過程中也無法標(biāo)定出它的誤差,但其不影響工業(yè)機(jī)器人的工作。因此,主要第1個(gè)關(guān)節(jié)的參數(shù)無法標(biāo)定出來,且會對機(jī)器人的工作造成一些影響。需要后續(xù)進(jìn)行更加深入的研究。
表2 機(jī)器人運(yùn)動學(xué)誤差仿真分析辨識結(jié)果
為了驗(yàn)證本文算法擁有更優(yōu)秀的性能,對每次調(diào)整機(jī)器人后的的機(jī)器人末端位置的x、y、z方向施加符合高斯分布N(0,σ2)的隨機(jī)誤差。同理,建立以標(biāo)準(zhǔn)球?yàn)槟繕?biāo)約束的誤差模型,施加同樣的隨機(jī)誤差。比較兩種算法的參數(shù)辨識結(jié)果。
通過圖9可以得出,相較于以標(biāo)準(zhǔn)球?yàn)闃?biāo)定物的標(biāo)定方法,采用以M型標(biāo)準(zhǔn)塊為標(biāo)定物的標(biāo)定方法可以有效提高標(biāo)定精度。從圖(a)和圖(c)姿態(tài)偏差的對比可知,本文方法對噪聲敏感性極低,標(biāo)定的效果有顯著的提高;從圖(b)和圖(d)位置偏差的對比可知,本文方法的優(yōu)勢不是十分顯著。產(chǎn)生這種結(jié)果的原因?yàn)椋?1)本文標(biāo)定方法以兩條直線作為約束,直線的方向包含在約束關(guān)系之中;而標(biāo)準(zhǔn)球的方法以球心作為約束,無法確定球心的姿態(tài),因此易受到噪聲的影響。(2)雖然兩種方法的位置偏差對比不明顯,但造成偏差的原因不相同,本文方法是由于經(jīng)式(20)至式(21)的變化之后,少了dx的約束;而標(biāo)準(zhǔn)球方法是單點(diǎn)約束,其檢測結(jié)果更易受噪聲影響。
圖9 σ由0.01至0.05 mm時(shí)的偏差
對40個(gè)不同機(jī)器人位姿狀態(tài)下采集的數(shù)據(jù)施加σ=0.05 mm的隨機(jī)誤差,然后進(jìn)行標(biāo)定,依次進(jìn)行100組標(biāo)定,每次完成后,比較標(biāo)定出誤差與設(shè)定誤差,結(jié)果如圖10所示。
圖10 100組仿真各項(xiàng)偏差計(jì)算結(jié)果(σ=0.05 mm)
由圖10可得,可以得出結(jié)論:(1)無論是從手眼關(guān)系姿態(tài)還是機(jī)器人末端的姿態(tài),本文方法的重復(fù)性及精度均明顯優(yōu)于標(biāo)準(zhǔn)球的的方法;(2)從機(jī)器人末端位置偏差來看,標(biāo)定誤差主要集中在0~5 mm范圍,標(biāo)準(zhǔn)差分別為1.601 mm和5.468 mm;從手眼關(guān)系位置偏差來看,標(biāo)定誤差主要集中在0~1 mm范圍,標(biāo)準(zhǔn)差分別為0.335 mm和0.480 mm;所以本文方法有更好的重復(fù)性精度。
為驗(yàn)證本文手眼標(biāo)定算法的有效性,建立了機(jī)器人手眼標(biāo)定系統(tǒng)。如圖11(a)該系統(tǒng)主要由ABB 機(jī)器人 IRB6700-155/2.85、基恩士 LJ-X8000線結(jié)構(gòu)光傳感器(傳感器的精度優(yōu)于0.02 mm)以及上位機(jī)組成。標(biāo)準(zhǔn)球的直徑約為50.697 mm,同時(shí)采用的M型標(biāo)準(zhǔn)塊實(shí)物如圖11(b)所示.,其兩條脊線間距為39.93 mm。
圖11 機(jī)器人手眼標(biāo)定系統(tǒng)及標(biāo)定物
在完成標(biāo)定計(jì)算后,為驗(yàn)證算法有效性,針對某精加工平面進(jìn)行測量實(shí)驗(yàn),該精加工平面的平面度誤差約為0.01 mm。當(dāng)手眼標(biāo)定算法存在誤差時(shí),機(jī)器人視覺系統(tǒng)測量得到的平面點(diǎn)云偏離實(shí)際平面,表現(xiàn)出類似于存在平面度誤差的現(xiàn)象。本文參照平面度誤差評定方法,提出了一種以點(diǎn)云到擬合平面距離的均方根誤差(RMSE,root mean square error)作為手眼標(biāo)定算法性能的評價(jià)依據(jù)。均方根誤差指點(diǎn)云觀測值與真值偏差d的平方和與點(diǎn)云數(shù)量n比值的平方根,均方根誤差計(jì)算方法為:
(28)
在機(jī)器人手持線結(jié)構(gòu)光傳感器掃描空間合適的范圍內(nèi)放置M型標(biāo)準(zhǔn)塊。首先,調(diào)整機(jī)器人掃描試塊上一點(diǎn),以此方式獲得3組機(jī)器人末端位姿及對應(yīng)的線結(jié)構(gòu)光傳感器掃描點(diǎn)云數(shù)據(jù),以此計(jì)算機(jī)器人手眼關(guān)系Ts初值。然后,調(diào)整機(jī)器人掃描M型標(biāo)準(zhǔn)塊,共采集40組數(shù)據(jù),其中選擇兩組用作Tl1、Tl2的初值計(jì)算。最后,用這40組數(shù)據(jù)進(jìn)行機(jī)器人運(yùn)動學(xué)和手眼標(biāo)定的參數(shù)誤差辨識。
標(biāo)定完成后,將精加工平面放置于適當(dāng)位置,不斷調(diào)整機(jī)器人,采集多組數(shù)據(jù),使用本文標(biāo)定方法和標(biāo)準(zhǔn)球的標(biāo)定方法的標(biāo)定誤差分別來計(jì)算這多組點(diǎn)云在機(jī)器人基坐標(biāo)下的位置,然后進(jìn)行平面擬合,計(jì)算精加工平面的均方根誤差[21-22]。比較使用這兩種方法標(biāo)定之后的點(diǎn)云到平面的距離誤差及均方根誤差,然后改變精加工平面位置,再次測量其誤差,一共測量10次,圖12展示前4次測量所有有效點(diǎn)云的誤差,圖13表示10次改變平面位置測量的均方根誤差。
圖12 標(biāo)定后4次測量的點(diǎn)云距離誤差
圖13 標(biāo)定后10次測量的均方根誤差對比圖
通過圖12展示的點(diǎn)云誤差對比可知,本文方法相較于使用標(biāo)準(zhǔn)球標(biāo)定的方法,有效的減少了點(diǎn)云到理想平面的誤差。由圖13可知,采用標(biāo)準(zhǔn)球的標(biāo)定方法與本文方法標(biāo)定后對精加工平面測量10次得到的均方根誤差的平均值分別為0.152 mm和0.080 mm,說明本文方法的絕對精度更高;而測量10次得到的均方根誤差的標(biāo)準(zhǔn)差分別為0.043 mm和0.005 mm,說明本文方法重復(fù)性精度更高,與仿真結(jié)果相匹配。
本文針對使用標(biāo)準(zhǔn)球標(biāo)定精度不高、魯棒性弱等缺陷,設(shè)計(jì)了一種M型標(biāo)準(zhǔn)塊作為標(biāo)定物的標(biāo)定方法,M型標(biāo)準(zhǔn)塊相較于標(biāo)準(zhǔn)球成本更低且易于控制機(jī)器人采集其點(diǎn)云數(shù)據(jù)。使用該模塊頂端兩條平行直線作為約束,建立手眼標(biāo)定誤差、機(jī)器人運(yùn)動學(xué)參數(shù)誤差以及模塊直線坐標(biāo)系誤差模型,通過最小二乘法不斷迭代更新誤差模型,最后得到準(zhǔn)確的標(biāo)定參數(shù)誤差。
同時(shí),本文提出以均方根誤差作為評估標(biāo)定精度的方法,該方法以線結(jié)構(gòu)光傳感器采集的某精加工平面進(jìn)行均方根誤差計(jì)算,間接評價(jià)機(jī)器人運(yùn)動學(xué)參數(shù)及手眼標(biāo)定參數(shù)辨識的效果。
最后,本文通過仿真分析,人為地對建立的運(yùn)動學(xué)參數(shù)和手眼關(guān)系的模型添加系統(tǒng)誤差及隨機(jī)噪聲,與以標(biāo)準(zhǔn)球?yàn)闃?biāo)定物的標(biāo)定方法進(jìn)行對比,本文方法具有更高的精度、重復(fù)性和魯棒性,尤其在姿態(tài)誤差測量上具有顯著的優(yōu)勢。通過實(shí)驗(yàn)分析,使用均方根誤差進(jìn)行評估,相較于以標(biāo)準(zhǔn)球?yàn)闃?biāo)定物的手眼標(biāo)定方法,本文方法的均方根誤差由0.152 mm減少到0.080 mm,均方根誤差的標(biāo)準(zhǔn)差由0.043 mm減少到0.005 mm,實(shí)驗(yàn)結(jié)果與方政結(jié)果相匹配,驗(yàn)證了本文方法的有效性與優(yōu)越性。