邰承岳,諶業清,李昊冉,張烈山
(1.浙江理工大學 機械工程學院,杭州 310018;2.浙江理工大學 信息科學與工程學院,杭州 310018)
隨著智能制造戰略的不斷推進,工業機器人已成為現代智能生產線上具有標志性的重要裝備。視覺傳感器與工業機器人手眼協同技術正在悄然改變傳統的機械制造業,基于視覺傳感器的機器人系統使得制造、裝配等工藝活動更加具有柔性和環境適應性。一般地,機器人視覺系統采用非接觸式測量技術作為工業機器人的“眼睛”來獲取目標的空間位置,而線結構光傳感器[1-2]由于具有抗干擾能力強、精度高等優點被廣泛應用于焊接[3]、研磨[4]、銑削[5]、抓取[6]等加工生產領域中。為了獲得被測物在機器人基坐標系下的坐標數據,需要確定機器人末端坐標系與傳感器坐標系之間的坐標變換關系,該過程稱之為手眼標定,而手眼標定的精度影響著整個機械制造工藝過程的精度。
目前,手眼標定算法的理論已經有了很多前人的研究基礎[7-8]。手眼標定算法一般是通過多次改變機器人位姿,觀測一個已知結構的靶標,建立約束關系來求解手眼關系矩陣。機器人的視覺傳感器按照測量維度分為2D和3D傳感器兩種[9-10]。對于3D傳感器,典型方法為采用攝像機作為傳感器且以棋盤格作為靶標的標定方法,該方法根據約束關系建立型如AX=XB的齊次方程[11-12],然而,該方法計算復雜,標定精度較低、魯棒性低。同時,3D視覺傳感器普遍測量精度較低,不能滿足工業機器人柔性焊接、打磨等高精度作業的要求。對于2D傳感器即主要為線結構光掃描視覺傳感器,主要采取的方法是以標準球作為靶標,獲取標準球球心位置作為約束,從而建立數學模型求出手眼關系的矩陣[13]。為了提高手眼標定結果的精度,Xie[14]等人基于線結構光傳感器建立了包含6自由度機器人運動學參數及手眼標定參數的誤差模型,機器人的標定精度得到顯著提高;高金鋒[15]等人提出一種采用標準圓柱中軸線作為約束的手眼標定方法,該方法利用粒子群優化算法(PSO)及廣義拉格朗日乘子法的融合算法求解標定矩陣;孫煒[16]等人提出一種基于階梯形標定物手眼標定方法,該標定方法具有較高的精度和穩定性;He Xie[17]等人提出一種使用任意曲面作為標定物的標定方法,該方法同時標定機器人幾何參數和手眼標定參數,具有較好的精度、重復度和魯棒性;Amy[18]使用迭代的方法進行手眼關系的校準,極大的提高了校準精度;Sharifzadeh[19]基于一個單平面進行手眼標定,該方法具有成本低、制作簡單、精度較高等優點。雖然學者們對機器人的標定做了大量的研究,提出了許多有效提高標定精度的標定方法,但這些方法往往極大地提高了標定的成本或復雜性,不能適應實際工業生產中復雜環境。因此,一個低成本、標定方法方便快捷、可以適應復雜環境的標定方法的研究是十分有必要的。
基于上述問題,本文針對6自由度機器人搭載線結構光傳感器的機器人系統,提出一種以M型標準塊作為靶標的手眼標定方法。該方法通過改變機器人末端位姿,每次可采集出試塊的一條M型截面輪廓,該輪廓由4條呈現M型的直線組成,左右兩組直線的相交就可以得到一對M型標準塊脊線上的點,結合機器人運動學模型[20],以點云到兩條平行直線的距離為約束,同時辨識出機器人運動學及手眼關系矩陣的參數誤差。為了驗證標定方法的有效性,提出以某精加工平面為基準,利用標定后的機器人系統對該平面進行點云采集,以實測點云到最小二乘擬合面距離的均方根值作為手眼標定算法的評價依據。該方法操作簡單,能有效提高機器人手眼標定的精度,可以適應工業生產中復雜的環境。
機器人手眼標定常規方法以標準球為標定物,其標定系統示意圖如圖1所示,主要由工業機器人、線結構光傳感器和標定物組成。

圖1 以標準球約束標定系統示意圖
將線結構光傳感器搭載在機器人末端,多次改變機器人位姿掃描空間中一固定點位置,可以得到該點在線結構光傳感器坐標系下的位置Xs與其在機器人基坐標系下的位置Xb的轉換關系,其轉換關系為:
Xb=Tf·Ts·Xs
(1)
其中:矩陣Tf為機器人末端坐標系相對于基坐標系的轉換矩陣;矩陣Ts為線結構光傳感器坐標系相對于機器人末端坐標系的轉換矩陣即手眼關系矩陣。
目前,工程上測量空間固定點的方法主要為掃描一個已知半徑為R的標準球來獲得球心坐標Xs(xs,ys,zs),若線結構光傳感器掃描所得弧狀點云擬合圓的坐標為Xc(xc,yc,zc),半徑為r,所求球心在線結構光傳感器坐標系下的位置為:
(2)
式中,ys的符號需要根據傳感器與標準球的相對位置來確定。
對于以標準球為目標的手眼標定方法,主要存在以下幾個問題:第一,對于每次掃描求得的球心坐標都需要人為判斷Y軸方向上的正負,當掃描圓心與球心接近時,極易判斷錯誤,這將導致手眼標定無法進行或標定結果錯誤;第二,每次采集數據后結算球心坐標時都需要圓擬合等算法求解Y軸方向上坐標,會增大Y軸方向上的噪聲,魯棒性較差;第三,以標準球作為測量對象,算法的精度嚴重依賴球的加工精度,通常來說球的制造精度不易控制,不僅提高了系統成本,也難以保證標定效果。因此,采用以標準球為目標的手眼標定方法精度和穩定性都不是十分理想
本文設計了一種M型標準塊,其截面形狀呈現M型。該M型標準塊在標定時主要用到了上部呈現屋脊狀的4個平面,以這4個屋脊面構建兩條平行的脊線作為手眼標定算法的約束。M型標準塊如圖2所示。

圖2 M型標準塊模型圖
設計M型標準塊頂端兩條脊線上分別存在坐標系{l1}、{l2},兩坐標系滿足以下條件:
1)坐標系{l1}、{l2}之間沒有姿態的變化;
2)坐標系{l1}、{l2}的X軸分別與對應直線重合;
3)坐標系{l2}相對于{l1}只存在Y軸方向上的位置變化;
4)機器人基坐標系相對于坐標系{l1}、{l2}在X軸方向上的坐標為0。
以上條件可以確定坐標系{l1}、{l2}的位姿。對應的標定系統如圖3所示,則可以重新構建數學模型如式(3)所示:

圖3 以M型標準塊約束標定系統示意圖

(3)
其中:Xl1、Xl2表示直線l1、l2上點云在坐標系{l1}、{l2}上的位置,Tl1、Tl2為機器人基坐標系{b}相對于直線坐標系{l1}、{l2}的轉換矩陣。在無噪聲影響下,對于直線坐標系{l}上的點云坐標Xl上理論上滿足約束條件:yl=zl=0。但由于實際測量時,必定存在噪聲的影響,所以目標方程為:
(4)
式中,d為直線點云到直線的距離。
相較于標準球,M型標準塊具有易于加工、加工精度高的特點;同時,消除了使用標準球標定時因判斷球心在線結構光傳感器上的位置的Y軸坐標的正負導致無法標定的情況;采用M型標準塊標定時,有著更大的機器人姿態變換范圍,這將易于標定數據的采集并且提高標定的精度和魯棒性。
如圖4所示,改變機器人姿態使得掃描儀每次能夠同時獲得直線l1與l2上的點。

圖4 采集點云數據圖
每次采集的掃描儀點云數據呈現“M”型,將點云數據擬合成4條直線,直線間兩兩相交得到的2個交點即為M型標準塊脊線上的目標點,線結構光傳感器采集脊線點云的處理過程如圖5所示。其中,每組掃描儀采集點云還有有效點約750個,細線為擬合出來的4條直線,兩個“*”點為直線交點。因為加工工藝的限制,M型標準塊的理想脊線并不存在,需要通過直線交點計算來得到一對脊線上的點,因此需要通過多次掃描測量,再通過直線擬合來間接得到脊線點云。

圖5 直線交點提取示意圖
該方法的重點為線結構光傳感器一次掃描得到的點云中4條直線的分類提取,本文提取方法如下:
1)初始化數據,令距離閾值d=0.01 mm,采集點云數據,記為Data數組;
2)初始化適用于擬合直線模型點云數據,記為Model,為Data數組的序號第10至第30的點云數據;
3)使用數據Model擬合直線,獲得直線參數:斜率k和截距b;
4)計算數據Data中每個點至直線距離ddata,更新數據Model為小于距離閾值d的點云數據;
5)重復步驟3)、4),若Model不再更新,則輸出直線參數k、b;
6)計算Model中最高的點云序數pmax,刪去點云數據Data第1至pmax的點云;
7)重復步驟2)~6),直至得到4條直線的參數。
提取出線結構光傳感器點云數據中的4條直線之后,進行直線交點的計算,令兩條直線的的斜率分別為k1、k2,截距分別為b1、b2,其交點坐標為(xp,yp),則可以得到如式(5)所示的型如Ax=b的公式。
(5)
最小二乘式的求解方法如(6)所示:
x=(ATA)-1ATb
(6)
1)手眼關系初值計算:
在M型標準塊上任一直線上標記一點,不斷控制機器人掃描該點,獲取該點在線結構光傳感器下的坐標以及對應的機器人末端位姿,建立式(1)所示的模型,即為式(7)所示:
[xb,yb,zb]T=
RfRs[xs,ys,zs]T+Rfts+tf
(7)
式中,ys=0,Rf、tf分別為工業機器人末端的姿態和位置,Rs、ts分別是手眼關系的旋轉矩陣和位置矩陣。
采集n組數據之后,可以得到式(8):
Rf1Rs[xs1,0,zs1]T+Rf1ts+tf1=
RfiRs[xsi,0,zsi]T+Rfits+tfi
i=2,3…n
(8)
化簡得:
(9)
式(9)中,r是旋轉矩陣Rs的3個旋轉分量。即Rs=[r1r2r3]。通過最小二乘法求解出r1、r3以及ts之后,根據右手定則,可以得出:
r2=r3×r1
(10)
通過式(7)、(8)的方法可以計算機器人在不考慮運動學誤差的情況下的手眼關系,以其作為本文標定的一個初值。
2)M型標準塊位姿初值計算:
按如圖6所示采集M型標準塊兩條脊線上A、B、C三個點,通過公式(1)的轉換關系得到這3個點在機器人基坐標系下的坐標位置。
假設點A、B、C的位置坐標為PA、PB、PC,令n1=PB-PA、n2=PC-PA,則旋轉矩陣的旋轉分量為:
(11)
其中:“×”表示向量之間的叉乘關系,r1為直線l1和l2的方向向量,r2為直線l1指向直線l2的方向向量,r3為直線l1和l2組成的平面的法向量。
由于機器人基坐標系在直線坐標系{l1}上X軸坐標為0,所以直線坐標系{l1}在機器人基坐標系上的位置等價于原點在該直線上的垂足在機器人基坐標系上的位置,如圖7所示,令點A位置坐標為(x1,y1,z1)、點B位置坐標為(x2,y2,z2),直線外一點即機器人基坐標系坐標為(0,0,0),則位置矩陣參數為:

圖7 點到直線垂足示意圖

(12)
式中,
(13)
根據式(11)、(12)得到直線坐標系{l1}相對于機器人基坐標系上的轉換關系bTl1,反之則可以得到機器人基坐標系相對于直線坐標系{l1}上的轉換關系為Tl1:
Tl1=bTl1-1
(14)
由于直線l1與l2相互平行,若兩條直線間的距離為d,則可以得到機器人基坐標系相對于直線坐標系{l2}上的轉換關系為:
Tl2=transl(0,±d,0)·Tl1
(15)
其中:transl()為平移變換函數。
至此,手眼關系矩陣以及機器人基坐標系在對應的兩條直線上的位姿矩陣的初步標定完成。初步標定方法簡單快捷,不需要復雜的運算。由于該運算方法未曾考慮機器人運動學誤差的影響,計算出的結果與實際有所偏差。因此,需要考慮機器人運動學誤差的影響,建立誤差辨識的模型,通過修正手眼關系誤差、機器人運動學誤差以及機器人基坐標系在M型標準塊上的直線的位姿誤差,從而使標定的手眼關系更加準確。
得到參數Tl、Ts的初值之后,考慮到機器人存在運動學參數誤差,因此,需要建立誤差辨識的模型如式(16)所示:
Xl+ΔXl=(Tl+ΔTl)(Tf+ΔTf)(Ts+ΔTs)Xs
(16)
消去其中的高階項,僅保留低階項,可以得到式(17):
ΔXl=
ΔTlTfTsXs+TlΔTfTsXs+TlTfΔTsXs
(17)
根據微分運動學原理:
ΔT=TδT
(18)
(19)
(20)
結合式(17)、(20)的可以得到誤差辨識的公式如式(21)所示:
Ax=b
(21)
其中:
(22)
其中:ni是3×1的向量,m是機器人的轉軸數量,m=6,但由于單條直線的約束對于坐標系{Tl}的姿態僅可以確定其X軸的方向,Y、Z軸的方向依然可以繞X軸旋轉,所以,單條直線的約束不能確定坐標系{Tl},因此本文以兩條直線作為約束建立最小二乘模型,這不僅可以提高手眼標定的精度,還可以確定坐標系{Tl}的位姿。
對式(22)作如下處理:
1)標定方法是以直線作為約束,因此不存在X軸方向上的約束,需要刪去矩陣A、b的第一行;
2)機器人基坐標系{Tb}相對于坐標系{Tl1}、{Tl2}姿態不變,在Y軸上位置存在差異,在X、Z上位置不變,且在X軸上的位置為0,因此刪去參數x中的Δxl,改Δyl為Δyl1、Δyl2,然后對矩陣A作相應的更改;
3)考慮到x冗余參數的影響,需要去除冗余參數,可通過QR分解辨識出冗余參數。
經過以上三點的修改之后,A、b、x的參數如式(23)所示:
(23)

綜上,多次改變位姿測量M型標準塊,獲得試塊直線的點云坐標,經式(17)~(23)建立最小二乘式如(24)所示:
Ux=V
(24)

通過最小二乘法求解出誤差參數x的值之后,將誤差補償進標定模型中,然后再次進行誤差辨識,不斷迭代,直至辨識出的誤差參數x小于閾值,算法流程如圖8所示。

圖8 標定算法流程圖
閾值一般取接近0的數,經過測試,本文仿真及實驗中取閾值為10-10即可得到滿足要求的標定結果。
分別建立本文以M型標準塊為標定物的方法和傳統以標準球為標定物的方法的的數學模型。
兩條的仿真直線參數分別為:
(25)
式中,PL1和PL2分別為直線上一點,VL為直線方向向量。
將線結構光傳感器坐標系的XOZ平面用點坐標PP、法向量VP并表示,則每次設定機器人姿態和位置后得到的目標點坐標計算方法如式(26)、(27)所示:
Px=PL+k*VL
(26)
k*VL·VP=(PP-PL)·VP
(27)
為了研究誤差對該模型的影響,對機器人的運動學模型添加表1所示的系統誤差以模擬實際模型參數。然后給機器人手眼關系的6個參數分別添加0.01 rad和0.1 mm的角度誤差和位置誤差作為驗證本文誤差辨識算法時轉換矩陣Ts的初值。同理,給Tl添加相同的角度誤差和位置誤差。其中Δα0、Δɑ0、Δθ1、Δd1四個參數會與Tl的參數冗余,本文系統模型無法將其辨識出來,所以進行仿真實驗將不會對其施加系統誤差。

表1 機器人運動學仿真系統誤差設定值
經過給機器人標定模型僅施加系統誤差的仿真實驗,得到的運動學誤差辨識結果如表2所示,其驗證了本文算法的正確性,其中Δd2的誤差會被其它運動學參數補償掉,不會影響機器人末端的位姿,Δθ6、Δd6的誤差會被手眼關系矩陣Ts的參數冗余,在實際的標定過程中也無法標定出它的誤差,但其不影響工業機器人的工作。因此,主要第1個關節的參數無法標定出來,且會對機器人的工作造成一些影響。需要后續進行更加深入的研究。

表2 機器人運動學誤差仿真分析辨識結果
為了驗證本文算法擁有更優秀的性能,對每次調整機器人后的的機器人末端位置的x、y、z方向施加符合高斯分布N(0,σ2)的隨機誤差。同理,建立以標準球為目標約束的誤差模型,施加同樣的隨機誤差。比較兩種算法的參數辨識結果。
通過圖9可以得出,相較于以標準球為標定物的標定方法,采用以M型標準塊為標定物的標定方法可以有效提高標定精度。從圖(a)和圖(c)姿態偏差的對比可知,本文方法對噪聲敏感性極低,標定的效果有顯著的提高;從圖(b)和圖(d)位置偏差的對比可知,本文方法的優勢不是十分顯著。產生這種結果的原因為:(1)本文標定方法以兩條直線作為約束,直線的方向包含在約束關系之中;而標準球的方法以球心作為約束,無法確定球心的姿態,因此易受到噪聲的影響。(2)雖然兩種方法的位置偏差對比不明顯,但造成偏差的原因不相同,本文方法是由于經式(20)至式(21)的變化之后,少了dx的約束;而標準球方法是單點約束,其檢測結果更易受噪聲影響。

圖9 σ由0.01至0.05 mm時的偏差
對40個不同機器人位姿狀態下采集的數據施加σ=0.05 mm的隨機誤差,然后進行標定,依次進行100組標定,每次完成后,比較標定出誤差與設定誤差,結果如圖10所示。

圖10 100組仿真各項偏差計算結果(σ=0.05 mm)
由圖10可得,可以得出結論:(1)無論是從手眼關系姿態還是機器人末端的姿態,本文方法的重復性及精度均明顯優于標準球的的方法;(2)從機器人末端位置偏差來看,標定誤差主要集中在0~5 mm范圍,標準差分別為1.601 mm和5.468 mm;從手眼關系位置偏差來看,標定誤差主要集中在0~1 mm范圍,標準差分別為0.335 mm和0.480 mm;所以本文方法有更好的重復性精度。
為驗證本文手眼標定算法的有效性,建立了機器人手眼標定系統。如圖11(a)該系統主要由ABB 機器人 IRB6700-155/2.85、基恩士 LJ-X8000線結構光傳感器(傳感器的精度優于0.02 mm)以及上位機組成。標準球的直徑約為50.697 mm,同時采用的M型標準塊實物如圖11(b)所示.,其兩條脊線間距為39.93 mm。

圖11 機器人手眼標定系統及標定物
在完成標定計算后,為驗證算法有效性,針對某精加工平面進行測量實驗,該精加工平面的平面度誤差約為0.01 mm。當手眼標定算法存在誤差時,機器人視覺系統測量得到的平面點云偏離實際平面,表現出類似于存在平面度誤差的現象。本文參照平面度誤差評定方法,提出了一種以點云到擬合平面距離的均方根誤差(RMSE,root mean square error)作為手眼標定算法性能的評價依據。均方根誤差指點云觀測值與真值偏差d的平方和與點云數量n比值的平方根,均方根誤差計算方法為:
(28)
在機器人手持線結構光傳感器掃描空間合適的范圍內放置M型標準塊。首先,調整機器人掃描試塊上一點,以此方式獲得3組機器人末端位姿及對應的線結構光傳感器掃描點云數據,以此計算機器人手眼關系Ts初值。然后,調整機器人掃描M型標準塊,共采集40組數據,其中選擇兩組用作Tl1、Tl2的初值計算。最后,用這40組數據進行機器人運動學和手眼標定的參數誤差辨識。
標定完成后,將精加工平面放置于適當位置,不斷調整機器人,采集多組數據,使用本文標定方法和標準球的標定方法的標定誤差分別來計算這多組點云在機器人基坐標下的位置,然后進行平面擬合,計算精加工平面的均方根誤差[21-22]。比較使用這兩種方法標定之后的點云到平面的距離誤差及均方根誤差,然后改變精加工平面位置,再次測量其誤差,一共測量10次,圖12展示前4次測量所有有效點云的誤差,圖13表示10次改變平面位置測量的均方根誤差。

圖12 標定后4次測量的點云距離誤差

圖13 標定后10次測量的均方根誤差對比圖
通過圖12展示的點云誤差對比可知,本文方法相較于使用標準球標定的方法,有效的減少了點云到理想平面的誤差。由圖13可知,采用標準球的標定方法與本文方法標定后對精加工平面測量10次得到的均方根誤差的平均值分別為0.152 mm和0.080 mm,說明本文方法的絕對精度更高;而測量10次得到的均方根誤差的標準差分別為0.043 mm和0.005 mm,說明本文方法重復性精度更高,與仿真結果相匹配。
本文針對使用標準球標定精度不高、魯棒性弱等缺陷,設計了一種M型標準塊作為標定物的標定方法,M型標準塊相較于標準球成本更低且易于控制機器人采集其點云數據。使用該模塊頂端兩條平行直線作為約束,建立手眼標定誤差、機器人運動學參數誤差以及模塊直線坐標系誤差模型,通過最小二乘法不斷迭代更新誤差模型,最后得到準確的標定參數誤差。
同時,本文提出以均方根誤差作為評估標定精度的方法,該方法以線結構光傳感器采集的某精加工平面進行均方根誤差計算,間接評價機器人運動學參數及手眼標定參數辨識的效果。
最后,本文通過仿真分析,人為地對建立的運動學參數和手眼關系的模型添加系統誤差及隨機噪聲,與以標準球為標定物的標定方法進行對比,本文方法具有更高的精度、重復性和魯棒性,尤其在姿態誤差測量上具有顯著的優勢。通過實驗分析,使用均方根誤差進行評估,相較于以標準球為標定物的手眼標定方法,本文方法的均方根誤差由0.152 mm減少到0.080 mm,均方根誤差的標準差由0.043 mm減少到0.005 mm,實驗結果與方政結果相匹配,驗證了本文方法的有效性與優越性。