姚安慶, 徐建明
(浙江工業(yè)大學(xué) 信息工程學(xué)院,浙江 杭州 310023)
為了實(shí)現(xiàn)快速、低成本及精確電動汽車充電孔的位姿識別[1,2],本文提出一種基于雙目視覺的電動汽車充電孔識別定位系統(tǒng)。用Halcon軟件實(shí)現(xiàn)攝像機(jī)標(biāo)定、雙目系統(tǒng)的標(biāo)定、手眼標(biāo)定,通過選取充電孔中心孔洞的輪廓作為透視可變型模板進(jìn)行模板匹配將充電孔與背景分離,結(jié)合雙目視覺中的立體匹配、三維定位和坐標(biāo)變換完成了充電孔的三維位姿估計(jì)。在實(shí)驗(yàn)平臺上進(jìn)行了電動車汽車充電孔的位姿估計(jì)和充電對接實(shí)驗(yàn),該系統(tǒng)具有良好的識別定位精度。
基于雙目視覺的電動汽車充電孔識別與定位系統(tǒng)由大族六軸協(xié)作機(jī)器人Elfin10、邁德威視千兆網(wǎng)500萬像素工業(yè)相機(jī)、電動汽車充電設(shè)備(包括充電槍頭、充電孔)及上位機(jī)等組成,如圖1所示??傮w上,充電孔的識別與定位系統(tǒng)分為視覺系統(tǒng)和機(jī)器人系統(tǒng)兩部分。視覺系統(tǒng)由邁德威視CCD相機(jī)和上位機(jī)組成,其中,相機(jī)采用雙目“眼在手”的配準(zhǔn)方法,完成圖像的采集、相機(jī)標(biāo)定、手眼標(biāo)定、充電孔的匹配識別、充電孔的三維定位及位姿估計(jì)等功能,各功能算法在MVTesc公司Halcon軟件基礎(chǔ)上進(jìn)行開發(fā)設(shè)計(jì)完成。系統(tǒng)工作流程圖如圖2所示。
圖1 實(shí)驗(yàn)設(shè)備
圖2 系統(tǒng)結(jié)構(gòu)框圖
系統(tǒng)采用了平行雙目視覺[3,4]設(shè)計(jì)。對于充電孔在復(fù)雜背景下的識別定位,可以簡化為4個部分,即標(biāo)定、充電孔識別、三維定位和坐標(biāo)轉(zhuǎn)換。
相機(jī)標(biāo)定包括攝像機(jī)標(biāo)定[5]、雙目標(biāo)定[6]、手眼標(biāo)定[7]。
2.1.1 攝像機(jī)標(biāo)定
攝像機(jī)所拍攝到的圖像與三維空間中的物體之間存在一種線性關(guān)系:[像]=M[物],矩陣M可以看成是攝像機(jī)成像的幾何模型。M中的參數(shù)就是攝像機(jī)參數(shù),這個求解參數(shù)的過程就稱為攝像機(jī)標(biāo)定。根據(jù)針孔成像模型[8],空間任一點(diǎn)P其圖像投影點(diǎn)(u,v)與其在世界坐標(biāo)系坐標(biāo)(Xw,Yw,Zw)的關(guān)系為
(1)
式中k為比例系數(shù);dX,dY分別為每一個像素在x軸和y軸方向上的物理尺寸;(u0,v0)為圖像的中心點(diǎn)坐標(biāo);f為焦距;R為攝像機(jī)坐標(biāo)系轉(zhuǎn)換為世界坐標(biāo)系的旋轉(zhuǎn)陣;T為攝像機(jī)坐標(biāo)系轉(zhuǎn)換為相機(jī)坐標(biāo)系的平移向量。
根據(jù)針孔成像模型,本文采用張正友教授提出的單平面棋盤格的攝像機(jī)標(biāo)定法[8]。讓攝像機(jī)從不同方位拍10~20張棋盤格標(biāo)定板圖片,運(yùn)用張正友標(biāo)定法求出式(1)中各個參數(shù)值,完成攝像機(jī)標(biāo)定。
2.1.2 雙目標(biāo)定
雙目標(biāo)定是指在攝像機(jī)參數(shù)標(biāo)定后求解兩個相機(jī)之間的旋轉(zhuǎn)和平移參數(shù)R和T的過程,一般在標(biāo)定單獨(dú)標(biāo)定好兩個相機(jī)的參數(shù)之后,再進(jìn)行雙目標(biāo)定。由攝像機(jī)標(biāo)定可求出左右相機(jī)的外部參數(shù)分別為Rl,Tl與Rr,Tr(Rl,Tl,Rr,Tr分別為左右攝像機(jī)相對于世界坐標(biāo)系的位置)。對任意一點(diǎn),假設(shè)它在世界坐標(biāo)系、左攝像機(jī)坐標(biāo)系和右攝像機(jī)坐標(biāo)系下的非齊次坐標(biāo)分別為xw,xl,xr,則
x1=R1xw+T1,xr=Rrxw+Tr
(2)
根據(jù)式(2)消去xw可得
(3)
因此,兩個攝像機(jī)之問的幾何關(guān)系R,T可以用以下公式計(jì)算
(4)
2.1.3 手眼標(biāo)定
手眼標(biāo)定是為了確定像素坐標(biāo)系和空間機(jī)器人坐標(biāo)系的坐標(biāo)轉(zhuǎn)換關(guān)系。根據(jù)手眼標(biāo)定的基本方程式[9]
AX=XB
(5)
式中A,X,B均為4×4 矩陣,表示某兩個坐標(biāo)系之間的轉(zhuǎn)換關(guān)系。X為待求參數(shù),A為由攝像機(jī)標(biāo)定給出的外參數(shù)得到的,B為由機(jī)器人控制器給出的。由式(5)可知,機(jī)器人帶動攝像機(jī)移動3次(旋轉(zhuǎn)軸不相互平行的平移運(yùn)動)拍照,可將X解出。實(shí)際計(jì)算時根據(jù)攝像機(jī)標(biāo)定時拍攝的10~20組圖片和對應(yīng)的機(jī)器人位姿多次求解,根據(jù)最小二乘法確定誤差最小的一組解作為待求參數(shù)X的終解。
由圖3(a)充電孔的圖片可知,充電孔中心孔洞區(qū)域的特征比較明顯,故本文研究采取基于局部特征匹配的模板匹配方式來實(shí)現(xiàn)充電孔的識別。
用Halcon中的ROI提取助手選中中心孔洞區(qū)域,用reduce_domain()算子對該區(qū)域截圖;再用創(chuàng)建模板算子creat_palnar_uncalib_deformable_model( )算子對截取的圖片建立線性非標(biāo)定可變型模板,用get_deformable_model_contours()得到中心區(qū)域輪廓圖,如圖3(b)所示。用模板尋找算子find_palnar_uncalib_deformable_model()算子在采集的圖像中搜尋并顯示充電孔輪廓的位置,實(shí)現(xiàn)充電孔的識別,如圖3(c)所示,同時得到充電孔相對于相機(jī)坐標(biāo)系的姿態(tài)偏移,即充電孔在相機(jī)坐標(biāo)系下的方向。
圖3 局部特征匹配的充電孔識別
2.3.1 雙目定位原理
雙目視覺三維定位是基于視差原理。通過建立兩個攝像機(jī)的圖像平面與三維空間中目標(biāo)物體之間的三角幾何關(guān)系模型,通過特征點(diǎn)匹配關(guān)系和三角法原理進(jìn)行物體在三維空間上信息的獲取,雙目視覺視差原理圖如圖4所示。
圖4 雙目視差原理
其中基線距B等于兩攝像機(jī)的投影中心連線的距離,相機(jī)焦距為f。設(shè)兩攝像機(jī)在同一時刻觀看空間物體的同一特征點(diǎn)P(Xc,Yc,Zc),它們在左右相機(jī)中的圖像坐標(biāo)分別為Pl=(Xl,Yl),Pr=(Xr,Yr)。
現(xiàn)兩攝像機(jī)的圖像在同一個平面上,則特征點(diǎn)P的圖像坐標(biāo)Y坐標(biāo)相同,即Yl=Yr=Y,則由三角幾何關(guān)系得到
Xl=fXc/Zc,Xr=f(Xc-B)/Zc,Y=fYc/Zc
(6)
則視差為:Disparity=Xl-Xr。由此可計(jì)算出特征點(diǎn)P在相機(jī)坐標(biāo)系下的三維坐標(biāo)為
(7)
由此可知,只要左相機(jī)上的任一點(diǎn)只要能在右相機(jī)上找到對應(yīng)的匹配點(diǎn),就可以確定出該點(diǎn)的三維坐標(biāo)。
2.3.2 充電孔定位
先將左右相機(jī)采集圖像進(jìn)行極線校正[10],將雙目立體視覺系統(tǒng)變成理想的平行雙目視覺系統(tǒng),使左右圖像的對應(yīng)點(diǎn)像素行對準(zhǔn),減少計(jì)算量并降低匹配難度。
由圖3(b)可知充電孔是一個規(guī)則對稱的圖形,其中心孔洞的質(zhì)心位置可視為充電孔在三維坐標(biāo)系中的坐標(biāo)。先用模板匹配找到并在左右圖像中顯示充電孔特征輪廓,如圖5(a)所示;用sort_contour_xld()算子、select_obj()算子提取出中心孔洞的輪廓,如圖5(b)所示;再用fit_circle_contour_xld()算子對中心孔洞輪廓進(jìn)行擬合,如圖7(c)所示;最后用area_center_xld()算子得到輪廓中心點(diǎn)在左右相機(jī)坐標(biāo)系中的像素坐標(biāo)Pl(u1,v1)和Pr(u2,v2),基于視差原理用intersect_lines_of_sight()算子得到輪廓中心點(diǎn)在相機(jī)坐標(biāo)系中的三維坐標(biāo)(x,y,z),進(jìn)而實(shí)現(xiàn)了充電孔的三維定位。
圖5 模板處理
(8)
式(8)表示出最終需要的充電孔位姿,得到這個位姿便可以給機(jī)器人發(fā)送運(yùn)動指令,控制機(jī)械臂完成充電操作。
進(jìn)行了10次雙目識別定位實(shí)驗(yàn)。首先在不用視覺的情況下,對接好機(jī)械臂末端與充電孔,讀取機(jī)械臂末端此時的姿態(tài),此時機(jī)械臂末端的位姿為(860.599,39.067,465.651,271.625,2.099,267.621),以此坐標(biāo)為充電孔在機(jī)器人基坐標(biāo)系下的實(shí)際位姿;然后使用充電孔識別定位系統(tǒng),讓攝像機(jī)處于不同的空間位置拍攝充電孔,如圖6所示,求取充電孔在雙目視覺系統(tǒng)驗(yàn)證下的位姿,驗(yàn)證系統(tǒng)的可行性,雙目系統(tǒng)測量的部分實(shí)驗(yàn)數(shù)據(jù)如表1所示。將雙目視覺系統(tǒng)測得的位姿與實(shí)際位姿進(jìn)行對比、誤差分析,如表2所示。
圖6 雙目相機(jī)采集
表1 測量結(jié)果
表2 位姿估計(jì)誤差
基于現(xiàn)有的充電方式,本文提出基于雙目視覺的電動汽車充電孔的識別定位系統(tǒng),通過Halcon軟件完成視覺算法的編寫,雙目視覺系統(tǒng)的標(biāo)定等工作。通過雙目系統(tǒng)測量位姿與實(shí)際位姿的比較驗(yàn)證了基于雙目視覺的新能源電動車充電孔的識別與定位系統(tǒng)的可行性,效果較好,但該系統(tǒng)的精度仍然有待提高。