張 旭 賈君慧 張 剛
1.上海大學(xué)機電工程與自動化學(xué)院,上海,200072 2.華中科技大學(xué)無錫研究院機器人技術(shù)中心,無錫,214147
在機器人視覺控制領(lǐng)域里,手眼視覺系統(tǒng)是實現(xiàn)主動視覺的主要設(shè)備,把視覺傳感器獲取的位置信息轉(zhuǎn)換到工具坐標系下需要求出視覺傳感器坐標系相對于機器人工具坐標系的位姿關(guān)系,即機器人的手眼關(guān)系。
傳統(tǒng)的機器人手眼關(guān)系標定方法[1]根據(jù)參照物的幾何特征,利用幾何約束把所有待求變量一起求出。XU等[2]基于TCP提出了一種將標準球作為標定物的標定方法,用3D掃描儀掃描標準球擬合出球心,在計算平移矩陣時需要用旋轉(zhuǎn)矩陣的結(jié)果,類似于兩步法,但操作復(fù)雜。LI等[3]提出了一種用標準球標定機器人和掃描儀之間關(guān)系的手眼標定方法,但球的擬合誤差沒有討論,并且實驗設(shè)備復(fù)雜。楊廣林等[4]通過控制機器人做2次平移運動和1次旋轉(zhuǎn)運動,由場景中的2個特征點獲得所需的手眼關(guān)系,但機器人運動所造成的誤差無法避免。程玉立[5]提出了一種在線自動化手眼標定方法,但精度較差。張召瑞等[6]提出了一種融合旋轉(zhuǎn)平移矩陣對約束信息進行求解的方法,但操作繁瑣。
手眼標定的難點在于“眼”看不到“手”,即相機看不到機器人末端執(zhí)行器。根據(jù)鏡面反射定律,實物和鏡中虛像具有一致性,因此平面鏡具有轉(zhuǎn)換相機視場的功能。通過平面鏡,組成手眼視覺系統(tǒng)的相機可以看到末端執(zhí)行器。目前已經(jīng)有多名學(xué)者對相機鏡面反射問題進行了研究,RUI等[7]認為在平面鏡反射引起的N個虛擬視圖之間的剛性運動已知時,可以估計出相機的位姿和平面鏡的位置。HESCH等[8]提出,相機通過平面鏡拍攝至少有3個相對位置已知的物體時,改變平面鏡姿態(tài),可求出物體與相機之間的位姿關(guān)系以及平面鏡與相機之間的位置信息。
本文針對Eye-on-Hand機器人手眼系統(tǒng),設(shè)計出一種基于平面鏡反射的手眼標定系統(tǒng)。由于機器人末端執(zhí)行器特征較少,因此將連接標定板作為輔助特征。相機拍攝到平面鏡中的標定板圖像后,根據(jù)鏡面標定方法來求解相機與標定板之間的位姿關(guān)系,通過輔助相機確定末端執(zhí)行器坐標系和標定板坐標系的轉(zhuǎn)換矩陣,最終確定相機坐標系和機器人末端執(zhí)行器坐標系的位姿關(guān)系,完成手眼標定。
手眼標定的目的是確定相機坐標系相對于機器人末端執(zhí)行器坐標系的關(guān)系。傳統(tǒng)的手眼標定方法[9]是:相機固定在機器人末端,在相機視野范圍內(nèi)放置一塊標定板,通過移動機器人,在不同位置獲取標定板的圖片,通過張正友標定法[10]標定出相機的內(nèi)外參數(shù);機器人在移動前后的位姿由機器人控制器讀取,通過計算獲得相機坐標系相對于機器人工具坐標系的位姿。傳統(tǒng)標定方法需要機器人和相機同步運動,并且通過機器人參數(shù)和相機標定參數(shù)耦合求解,標定過程較為繁瑣。鏡面位姿標定法則只需平面鏡連接相機和機器人末端執(zhí)行器的視場,標定過程不需要機器人本體參數(shù)參與。
確定相機坐標系和機器人末端執(zhí)行器位姿關(guān)系的鏡面位姿標定方法主要包括如下三步:①以平面鏡為橋梁,連接相機和末端執(zhí)行器;②通過輔助相機求出標定板坐標系和機器人末端執(zhí)行器之間的轉(zhuǎn)換矩陣;③求解得到相機坐標系和機器人末端執(zhí)行器之間的位姿關(guān)系。末端執(zhí)行器上特征點較少,不足以估計其位姿,因此在末端執(zhí)行器吸附標定板,由鏡面位姿標定法獲得相機坐標系和標定板坐標系的位姿關(guān)系。
圖1所示為待求解的“手眼”系統(tǒng),求解過程是:先根據(jù)鏡面標定方法得出相機坐標系{C}與標定板坐標系{O}之間的相對位姿;再根據(jù)坐標系{O}與機器人末端執(zhí)行器坐標系{E}之間的相對位姿,計算坐標系{C}與坐標系{E}之間的相對位姿;最后由單目相機模擬雙目相機完成三維重建。機器人末端執(zhí)行器是一個圓形吸盤,其坐標系{E}建立在吸盤中心,機器人基坐標系為{B}。
求解過程可分為三步:①相機坐標系與標定板坐標系之間的位姿關(guān)系的求解;②標定板坐標系與吸盤坐標系之間的位姿關(guān)系的求解;③單目相機模擬雙目視覺系統(tǒng)實現(xiàn)三維重建及抓取。
圖1 ‘手眼’系統(tǒng)示意圖Fig.1 ‘Hand-eye’system diagram
(1)相機坐標系與標定板坐標系之間的位姿關(guān)系的求解。如圖1所示,相機無法直接拍攝到吸附在吸盤上的標定板。若在合適的位置放置一塊平面鏡,則相機可以通過平面鏡拍攝到標定板在平面鏡中的虛像。采用這種方式來標定相機坐標系{C}和標定板坐標系{O}時,要求相機通過平面鏡必須能夠拍攝到標定板,且只需將鏡面位姿改變3次,通過線性算法求解即可獲得相機和標定板的位姿關(guān)系,同時也可以獲得相機的內(nèi)參數(shù)。標定過程中,平面鏡的位姿可以隨意改變,并且不需要改變機器人的位置和姿態(tài)。
(2)標定板坐標系與吸盤坐標系之間的位姿關(guān)系的求解。經(jīng)過鏡面位姿求解,可以確定相機坐標系{C}和標定板坐標系{O}之間的旋轉(zhuǎn)矩陣和平移矩陣。一般情況下,標定板坐標系原點與吸盤坐標系的原點并不重合,故還需要經(jīng)過位姿變換才能求解出相機坐標系{C}和吸盤坐標系{E}之間的位姿關(guān)系。由于吸盤和標定板表面重合,因此可以建立圖像平面到標定板平面的映射關(guān)系,根據(jù)此映射關(guān)系求解吸盤中心和標定板坐標系的偏移量,從而求解出吸盤坐標系和相機坐標系的位姿關(guān)系。
(3)用單目實現(xiàn)三維重建及抓取。在標定完成后,系統(tǒng)就可以實現(xiàn)對物體的抓取,首先通過單目相機模擬雙目視覺系統(tǒng)實現(xiàn)對物體的三維重建[11-12]。相機帶動機器人平移,在兩個位置獲取物體的圖像,通過兩個不同位置的相機構(gòu)建雙目視覺系統(tǒng)。該雙目視覺的外參數(shù)可以直接從機器人運動參數(shù)中讀取得到。根據(jù)物體在兩幅圖像中的對應(yīng)點,利用三角法計算出物體在相機坐標系下的三維信息,經(jīng)過位姿變換將三維信息變換到機器人末端執(zhí)行器坐標系下,從而驅(qū)動機器人實現(xiàn)對物體的抓取。
手眼標定過程主要包括兩方面:通過鏡面標定得出相機坐標系與標定板坐標系之間的位姿關(guān)系;通過輔助相機得出標定板坐標系與吸盤坐標系之間的位姿關(guān)系。
如圖2所示,假設(shè)標定板上點p在{O}中的坐標已知,由幾何學(xué)可知p在{C}中的坐標描述:
式中,Cp′為 p點在平面鏡中的虛像 p′在相機坐標系下的平移矩陣;Cp為點 p相對于相機坐標系的平移矩陣;n為平面鏡在相機坐標系中的法線,用矩陣描述;L為相機到平面鏡的距離;Lp為點 p到平面鏡的距離(距離L和距離Lp都是沿著平面鏡的法線方向)。
圖2 鏡面反射示意圖Fig.2 Mirror reflection schematic diagram
由點 p在兩坐標系中的變換可知:
式中,Op為點 p相對于標定板坐標系的坐標,用矩陣描述;COR為坐標系{O}相對于坐標系{C}的旋轉(zhuǎn)矩陣;CTO為坐標系{O}相對于坐標系{C}的偏移矩陣。
把式(2)、式(3)代入式(1),得
寫成齊次坐標的形式:
相機獲取點Cp在平面鏡中的反射點為Cp′,通過這種鏡面反射模型來描述該測量系統(tǒng);,CTO}表示未知的相機到機器人末端執(zhí)行器的變換,{n,L}為平面鏡相對于相機的未知配置參數(shù)。由式(5)知,影響平面鏡到相機的位姿變換結(jié)果的參數(shù)是n和L,其中,平面鏡法線n有2個自由度,加上標量L,共有3個未知量。
由圖1可知,相機無法直接拍攝到標定板,但借助平面鏡,相機就可以拍攝到標定板在平面鏡中的虛像。相機拍攝虛擬標定板,通過相機標定得到相機與虛擬標定板之間的旋轉(zhuǎn)矩陣和平移矩陣。如圖2所示,{Cˇ}為右手坐標系姿態(tài)的虛擬相機坐標系,{C*}為左手坐標系姿態(tài)的虛擬相機坐標系。{C*}隱藏在平面鏡后,以左手坐標系的姿態(tài)獲取真實點 p,其Y軸為圖2右側(cè)的Y′。兩個坐標系的 X軸和Z軸相同,而Y軸沿相反的方向。
簡單的齊次變換公式為
式(5)描述了鏡面反射后的齊次變換。為了把式(5)轉(zhuǎn)換成類似式(6)的形式,假設(shè)平面鏡反射前后的坐標系之間有以下關(guān)系:
其中,T表示虛擬標定板在真實相機中的位姿與真實標定板在虛擬相機坐標系中的位姿之間的關(guān)系矩陣,為四階單位陣。
把左手坐標系姿態(tài)的虛擬相機轉(zhuǎn)換到右手坐標系,并依據(jù)式(5)和式(7)得
式(8)描述了右手坐標系姿態(tài)時的虛擬相機坐標系{Cˇ}與標定板坐標系{O}之間的關(guān)系。通過平面鏡鏡像原理即可得出真實相機坐標系{C}與標定板坐標系{O}之間的關(guān)系,該過程需兩步:①把右手坐標系姿態(tài)的虛擬相機變換為左手坐標系姿態(tài)的虛擬相機;②把虛擬相機轉(zhuǎn)換到真實相機坐標系。
式中,A為右手坐標系姿態(tài)的虛擬標定板坐標系相對于相機坐標系的旋轉(zhuǎn)矩陣;b為右手坐標系姿態(tài)的虛擬標定板坐標系的原點到相機坐標系原點的偏移矩陣。
由式(5)、式(8)可以得到
將平面鏡任意改變3次位姿,便可以獲得3個鏡面反射圖像。對于每一幅鏡面反射圖像,確定的參數(shù)用 Aj、Aj′、bj、bj′描述,j,j′∈{1,2,3} 。定義單位向量 mjj′與 nj和 nj′均垂直,即 nj?mjj′=nj′?mjj′=0 。根據(jù)式(10)可得
因此,通過計算出的單位特征值所對應(yīng)的特征向量 m是特殊的正交矩陣,有2個共軛特征值,還有一個特征值為1),再根據(jù)特征向量的叉積,可以得到
其中,m13為特征值為1時所對應(yīng)的特征向量;m12為特征值為1時所對應(yīng)的特征向量;m21為特征值為1時所對應(yīng)的特征向量;m23為特征值為1時所對應(yīng)的特征向量。
一旦計算出對應(yīng)于3個鏡面的單位矩陣,旋轉(zhuǎn)矩陣就可以從3組方程中單獨地計算出:
在理想狀態(tài)下,Rj應(yīng)該是相等的,但由于噪聲的存在,Rj并不相等。為了盡可能減小誤差,可以從三組方程中計算COR的平均值。
其中,(?)0.5表示矩陣中元素開方操作。計算得到旋轉(zhuǎn)矩陣和平面鏡的法線nj,未知量[CTOL1L2L3]Τ可以根據(jù)式(11)構(gòu)建的線性方程求解,即
其中,D是9×6的已知系數(shù)矩陣;c是9×1的已知矩陣;x是6×1的未知矩陣。 x可以表示為線性x=D?c,其中,D?為 D的廣義逆矩陣。至此,不在相機視野范圍內(nèi)的真實標定板與相機的位姿可以通過線性求解得出。
圖3中,吸盤圓心與標定板中心點在X、Y方向的偏移值分別由lx、ly表示,lz為標定板厚度。
圖3 吸盤中心坐標求解Fig.3 Solution of sucker center coordinate
標定板和吸盤在同一平面上,可以認為標定板坐標系與相機坐標系之間的旋轉(zhuǎn)矩陣和吸盤坐標系與相機坐標系之間的旋轉(zhuǎn)矩陣是一樣的,只要求解平移矩陣即可。根據(jù)標定板的角點坐標和標定板角點在圖像平面的像素坐標的對應(yīng)性,確定標定板平面到圖像平面的映射關(guān)系,然后得出坐標系{E}原點在相機坐標系下的坐標CTE,即有
相機拍攝物體只能得到物體的二維信息,三維重建時,通常會采用多目相機獲取被測物體的多個視角圖像,通過三角法重建物體三維信息。本文采用單目相機,通過機器人平移相機構(gòu)建雙目視覺系統(tǒng),相機在2個不同的位置采集物體圖像。2個相機之間的位姿關(guān)系可從機器人運動姿態(tài)數(shù)據(jù)中讀出。當(dāng)機器人只有平移運動時,構(gòu)成雙目視覺系統(tǒng)的相機旋轉(zhuǎn)矩陣為單位陣,平移矩陣為機器人的平移量。相應(yīng)地,基線長度也是機器人的平移量。根據(jù)同一目標點在兩幅圖像中的像素差,可以得到該目標點處對應(yīng)的視差。根據(jù)下式:
式中,b為基線長度;d為視差;(u0,v0)為圖像中心坐標;f為相機的焦距。
通過目標點圖像坐標(u,v)到相機坐標(XC,YC,ZC)的轉(zhuǎn)換,獲得物體在相機坐標系下的三維信息,并根據(jù)求解得到的相機坐標系和機器人末端執(zhí)行器的位姿關(guān)系實現(xiàn)機器人抓取。
實驗采用ABB2600機器人,末端執(zhí)行器吸盤吸住標定板,將平面鏡放在合適的位置,使相機可以通過平面鏡拍攝到標定板。采用Basler2500-14gm相機拍攝經(jīng)過平面鏡反射的標定板圖像(稱為虛擬標定板圖像)。采用Halcon標定板,圓直徑為2 mm,間距4 mm,圓標志點行數(shù)、列數(shù)均為7,見圖4。
圖4 鏡面標定實驗Fig.4 Mirror calibration experiment
實驗中,保持相機和機器人末端執(zhí)行器不動,平面鏡位姿改變3次,通過相機拍攝獲取標定板在鏡面中的虛像,如圖4b所示。通過標定得到平面鏡中的虛擬相機與真實標定板的位姿關(guān)系或平面鏡中的虛擬標定板在相機坐標系下的外參數(shù),包括旋轉(zhuǎn)矩陣和平移矩陣。根據(jù)式(10)得出3個平面鏡位姿的法線的方向矩陣:
根據(jù)平面鏡法線的單位矩陣便可求出標定板與相機之間的旋轉(zhuǎn)矩陣,根據(jù)式(15)求的均值
來抑制噪聲。
由式(16)、式(17)可以得出標定板與相機之間的平移矩陣以及平面鏡與相機的3個距離(單位為mm,下同):
如圖5所示,在求解機器人末端執(zhí)行器和相機坐標系的位姿關(guān)系時,根據(jù)前面求解得到的標定板坐標系和機器人坐標系的位姿關(guān)系,借助輔助相機,通過橢圓檢測確定吸盤的中心,得到吸盤中心點O1的像素坐標,然后根據(jù)標定板4個角A、B、C、D的像素坐標確定標定板的中心點O2的像素坐標。標定板4個角的像素坐標分別為A(519,855)、B(1 389,924)、C(666,1 178)、D(1 439,1 240),計算得出標定板中心點O2的像素坐標O2(1 003.25,1 049.25)。根據(jù)擬合橢圓得到吸盤中心點 O1的像素坐標(996.53,1 059.17),此時可計算得出吸盤中心點O1與標定板中心點O2的像素偏移值(6.71,-9.92)。然后求解標定板平面到圖像平面的映射關(guān)系,可以確定吸盤圓心相對于標定板中心的偏移量。根據(jù)A、B、C、D 4點在標定板上的坐標(0,0)、(63,0)、(0,63)、(63,63)以及它們在圖像平面上的像素坐標,得到映射關(guān)系并計算吸盤圓心與標定板中心點在X、Y方向的偏移值lx=-0.765 9,ly=-2.113 6。 lz為標定板厚度,其值為6。根據(jù)式(17)可得
CTE=[-1.314 9 129.6215 75.973 6]Τ
圖5 標定板原點與吸盤中心的偏移量Fig.5 Offset between calibration board origin and sucker center coordinate
為驗證結(jié)果的正確性,將本文方法與Halcon的手眼標定算法得到的標定結(jié)果進行對比。Hal?con的手眼標定算法流程為:①標定相機獲得相機內(nèi)參數(shù);②改變機器人位姿,拍攝標定板圖像,并通過機器人控制器記錄此時機器人工具坐標系在基坐標系中的位姿,重復(fù)此過程10次;③對第②步中獲取的標定板圖像進行標定,得到每張標定板相對于相機坐標系的位姿關(guān)系,并根據(jù)標定板相對于相機坐標系的位姿關(guān)系以及相對應(yīng)的工具坐標系在基坐標系中的位姿關(guān)系,用Halcon的calibrate_hand_eye算子計算得到最終的相機坐標系{C}相對于工具坐標系{E′}的位姿關(guān)系=[-1.716 77 129.999 9 75.590 7]Τ。相機坐標系原點與吸盤坐標系原點之間偏移值(x,y)的設(shè)計尺寸為(0,130)。Z方向偏移值為吸盤平面到相機坐標系原點的垂直距離,可以通過測量得到。在相機視野中放置標定板,移動吸盤至標定板所在面,記錄Z方向的坐標值。將機器人沿標定板和吸盤平面的法線方向平移至最佳拍攝位置,記錄機器人移動的距離參數(shù),并獲得標定板在相機坐標系下的位姿,將該位姿的Z方向的偏移量減去機器人移動的距離即為吸盤與相機在Z方向的偏移量,計算得出Z方向的偏移量為76.052 4。最后比較兩結(jié)果并分別計算兩結(jié)果與設(shè)計參數(shù)的平均誤差,由計算可知:本文方法得到的結(jié)果與設(shè)計值的平均誤差為0.590 7,而Halcon的手眼標定算法得到的結(jié)果與設(shè)計值的平均誤差為0.726 2,本文提出的方法在精度方面要優(yōu)于Hal?con手眼標定算法。
通過相機平移構(gòu)建雙目三維重建系統(tǒng),如圖6所示。圖6b為相機在兩個位置拍攝的物體圖像,根據(jù)式(18)得到目標物體中心點相對于相機坐標系的位置[45.256 8 2.969 5 412.09]T。根據(jù)前面得到的手眼關(guān)系可以求出目標點相對于吸盤坐標系的位置[62.886 1-124.938 9-344.224 3]T。抓取結(jié)果如圖6c所示,驗證了該方法的正確性?;阽R面反射的手眼標定方法操作簡便,不需要改變機器人的姿態(tài),并且實驗設(shè)備簡單,只需要一塊標定板和一個平面鏡,就能完成實驗。
圖6 驗證結(jié)果Fig.6 Verification result
本文利用鏡面位姿標定法標定相機和工具坐標系的位姿關(guān)系,通過相機平移構(gòu)建雙目視覺系統(tǒng),實現(xiàn)對物體的三維重建,根據(jù)標定的結(jié)果,實現(xiàn)對物體的抓取。鏡面位姿標定只需要3次改變平面鏡的姿態(tài)即可完成,并且能夠同時獲得相機內(nèi)參數(shù)以及相機坐標系和工具坐標系的位姿關(guān)系。標定過程中無需限制平面鏡的姿態(tài),可以確保選取最佳的拍攝位置而獲得高質(zhì)量的圖片,有利于提高標定精度,且無需改變機器人的位姿,操作簡單,易于實現(xiàn)。最后通過實驗與Halcon標定算法進行對比,驗證了所提方法的可行性。
[1] 王敏,王萬俊,黃心漢.空間物體定位的機器人手眼視覺標定方法[J].華中科技大學(xué)學(xué)報(自然科學(xué)版),2001,29(3):45-47.WANG Min,WANG Wanjun,HUANG Xinhan.Cali?bration Method of Robotic Hand-eye Vision for Object Orientation[J].Journal of Huazhong University of Sci?ence and Technology(Natural Science),2001,29(3):45-47.
[2] XU Xiaohu,ZHU Dahu,ZHANG Haiyang,et al.TCP-based Calibration in Robot-assisted Belt Grinding of Aero-engine Blades Using Scanner Measurements[J].The International Journal of Advanced Manufacturing Technology,2016,90(1/4):1-13.
[3] LI Jianfeng,ZHU Jianhua,GUO Yongkang,et al.Cali?bration of a Portable Laser 3-D Scanner Used by a Ro?bot and Its Use in Measurement[J].Optical Engineer?ing,2008,47(1):10.1117/1.2829766.
[4] 楊廣林,孔令富,王潔.一種新的機器人手眼關(guān)系標定方法[J].機器人,2006,28(4):400-405.YANG Guanglin,KONG Lingfu,WANG Jie.A New Calibration Approach to Hand-Eye Relation of Manipu?lator[J].Robot,2006,28(4):400-405.
[5] 程玉立.面向工業(yè)應(yīng)用的機器人手眼標定與物體定位[D].杭州:浙江大學(xué),2016.CHENG Yuli.Hand-Eye Calibration and Object Local?ization for Industrial Robotic Application[D].Hang?zhou:Zhejiang University,2016.
[6] 張召瑞,張旭,鄭澤龍,等.融合旋轉(zhuǎn)平移信息的機器人手眼標定方法[J].儀器儀表學(xué)報,2015,36(11):2443-2450.ZHANG Zhaorui,ZHANG Xu,ZHENG Zelong,et al.Hand-Eye Calibration Method Using Rotational and Translational Constraint Information[J].Chinese Jour?nal of Scientific Instrument, 2015, 36 (11) :2443-2450.
[7] RUI R,JO?O P B,URBANO N.Camera Pose Estima?tion Using Images of Planar Mirror Reflections[C]//Eu?ropean Conference on Computer Vision.Berlin,2010:382-395.
[8] HESCH J A,MOURIKIS A I,ROUMELIOTIS S I.Mir?ror-based Extrinsic Camera Calibration[M]//Algorith?mic Foundation of RoboticsⅧ.Berlin:Springer,2009:285-299.
[9] TSAI R Y,LENZ R K.A New Technique for Fully Au?tonomous and Efficient 3D Robotics Hand/Eye Calibra?tion[J].IEEE Transactions on Robotics and Automa?tion,1989,5(3):345-358.
[10] ZHANG Zhengyou.A Flexible New Technique for Camera Calibration[J].IEEE Transactions on Pat?tern Analysis and Machine Intelligence,2000,22(11):1330-1334.
[11] 林育斌.基于計算機視覺的三維重建技術(shù)研究[D].天津:天津大學(xué),2010.LIN Yubin.Research of 3D Reconstruction Based on Computer Vision[D].Tianjin:Tianjin University,2010.
[12] 杜歆,徐鋼梅,朱云芳,等.一種基于單相機三維重建的簡單方法[J].傳感技術(shù)學(xué)報,2007,20(8):1917-1920.DU Xin,XU Gangmei,ZHU Yunfang,et al.A Simple 3D Reconstruction Method Based on Single Camera[J].Chinese Journal of Sensors and Actuators,2007,20(8):1917-1920.