喬赫廷,張然,王黠
(沈陽工業(yè)大學 機械工程學院,沈陽 110870)
在焊接機器人焊縫檢測與焊縫識別領域,結構光視覺因其結構簡單、精度高、實時性好等特點得到了廣泛應用[1],已成為重要的三維成像技術。目前,結構光視覺測量主要有兩種結構:立體結構光視覺和單目結構光視覺。立體結構光視覺需要多臺相機同時對激光條紋拍攝,采用立體視覺匹配算法計算特征點的三維坐標。這種方法雖能準確獲得特征點的坐標,但存在耗時長、成本高、結構復雜的缺點。單目結構光視覺克服了立體結構的不足,在焊縫檢測與焊縫識別領域被廣泛應用[2-5]。
結構光視覺系統(tǒng)對焊縫檢測的精度直接影響焊縫成形的質量。單目線結構光視覺系統(tǒng)標定主要分為兩部分:一是針對工業(yè)相機的內置參數(shù),二是針對傳感器進行的。如今,相機部分的研究已相對完善,其中以張正友標定法[6]和Tisa兩步標定法[7]的應用最為廣泛。線結構光標定無法直接獲得被檢測物體的三維坐標與光平面空間方程之間的關系。目前從標定靶標形式上分為二維靶標[8-9]和三維靶標[10-11]。解則曉等[12]提出基于共面法的高精度標定方法。陳天飛等[13]提出一種基于共面靶標的標定方法,通過多次移動靶標計算不同方向激光條紋直線的消隱點,根據(jù)交比不變原理計算共面靶標上標定點間的距離完成標定。
本文提出一種基于共面靶標的線結構光視覺標定方法,包括相機的內、外參數(shù)標定,相機坐標系下線結構光平面方程的標定方法。確定棋盤格標定板上多條激光條紋與棋盤格交點的世界坐標,并將這些特征點轉換到相機坐標系下,擬合出光平面方程。實現(xiàn)以CMOS工業(yè)相機、線激光發(fā)射器組成的視覺系統(tǒng),進行了實驗驗證。
單目相機成像模型如圖1所示,世界坐標系中有點P,經(jīng)過相機坐標系(即鏡頭),投射在像素坐標系上,則世界坐標系下的齊次坐標PW可轉換至相機坐標系下的齊次坐標PC。
圖1 單目相機成像模型
在成像過程中,世界坐標系(XW,YW,ZW)上的一個三維空間點P,根據(jù)小孔成像原理,經(jīng)過相機坐標系(XC,YC,ZC),反射投影在工業(yè)相機感光芯片上形成像素坐標系uov,根據(jù)式(1)將點P在世界坐標系下的PW轉換成相機坐標系下的PC,即
通過相機與像素兩個不同參考系的轉換過程,將PC變換為二維坐標PC′ =[x,y,1]T,即
式中,f為相機的焦距。
改寫成矩陣形式為
此時對圖像坐標系下的成像平面上對像進行采樣和量化,設像素坐標在u軸上縮放了α倍,在v軸上縮放了β倍。同時,原點平移了[cx,cy]T,則PC′的坐標與像素坐標[u,v]T的關系為:
代入式(2)得:
把αf合并成fx,βf合并成fy,得:
式中:設圖像x方向每米有α個像素,y方向每米有β個像素,所以α和β的單位為pixel/m,f的單位為m,所以fx、fy和cx、cy的單位為pixel。
把式(6)寫成矩陣形式為
式中,K為內參矩陣。
結構光立體視覺將主動光源與相機結合,將光源映射到工件表面,利用三角測量原理對物體進行檢測。線結構光成像模型如圖2所示。
圖2 線結構光成像模型
設在相機坐標系下的光平面方程為
式中,A、B、C為光平面系數(shù)。已知有點P(xC,yC,zC)為相機坐標系下的位于激光條紋上的焊縫特征點,該點P′(u,v)也出現(xiàn)在圖像中,兩點滿足內參模型,將其代入得:
而P點也位于結構光平面上,滿足以下光平面方程:
結合以上兩個公式,利用光平面系數(shù)與相機內參得出P點相機坐標為:
基于共面靶標標定原理,建立如圖3(a)所示的世界坐標系(xw,yw,zw)。z軸沿平面方向向下。
圖3 共面靶標標定
本文采用的線結構光視覺系統(tǒng)以相機參數(shù)標定時使用的平面棋盤格標定板作為標定對象,將激光投射到棋盤格標定板上,根據(jù)Otsu[14]算法對圖像二值化,利用高斯擬合法提取激光條紋中心線與棋盤格黑色部分交點的像素坐標,以這些交點作為特征點,求出直線方程及這些特征點在相機坐標系下的位置坐標,如圖3(b)所示。
相機在某一姿態(tài)下拍攝到的標定板圖像如圖4(a)所示,P1、P2、P3、P4為標定時標定板四周角點,4個點的像素坐標可以在上節(jié)相機標定的過程中得到。P1、P2、P3、P4四個點所在區(qū)域的寬可以確定,如圖4(b)所示,記為w。
圖4 共面靶標標定原理
求解P點yw坐標值時,以一種微分的思路去逼近yw的真實值。首先在像素坐標系下,將線段P1P4和P2P3等距分割成x份,并將分割的每一點連接,得到x條線段;然后得出特征點P在像素坐標系下與每一條線段的不同距離,將距離最短的線段記為第i條線段。則P點yw的坐標值計算公式為
由此可得到P點在世界坐標系下的坐標(xw,yw,0)。每一張參與標定的圖片都可得到一系列的點P,記為P1…Pn,根據(jù)式(11)將這些點組成超定方程組,即
對上述超定方程組做最小二乘求出結構光平面方程的參數(shù)A、B、C。
為了驗證標定方法的準確性,對其進行實驗驗證,實驗硬件設施如圖5所示。采用ABB-1200機器人、Basler 工業(yè)相機、TZ650AL1670GD-0030線激光器。
圖5 線結構光視覺系統(tǒng)
標定板是帶有固定間距的黑白棋盤格,采用7×10的棋盤格標定板,棋盤格外形為邊長10 mm的正方形。標定板如圖6所示。
圖6 標定板
焊接機器人采用眼在手上的安裝方式,完成對標定圖像的采集。設置5個固定點,位置如圖7所示。機器人依次從點1至點5開始運動,在每個固定點做旋轉運動,對標定板進行拍攝。當?shù)竭_固定點時,先繞z軸旋轉5°,繞x軸旋轉-5°,采集第1張圖像,再繞x軸旋轉5°,獲取第2張圖像,再以初始位姿為基準,繞z軸旋轉-5°,繞y軸旋轉-5°,獲取第3張圖像,再繞y軸旋轉5°獲取第4張圖像。
圖7 固定點示意圖
然后再以初始位姿移動到固定點2,重復上述運動方式,對標定板圖像進行采集。每個固定點采集4張圖像,得到20張不帶激光條紋的標定圖像和20張帶有激光條紋的圖像,如圖8所示。
圖8 相機標定圖片與線結構光標定圖片
基于OpenCV函數(shù)庫,對采集到的不帶激光條紋的圖像進行標定,求解出相機的內參數(shù)及每張標定圖片對應的外參矩陣,標定結果如表1所示。
表1 相機內參標定結果
對每幅帶有激光條紋的標定圖片進行二值化,進一步凸顯激光條紋與黑色棋盤格交點,如圖9(a)所示。
圖9 提取標定點坐標
對激光條紋部分提取中心線,進一步確定特征點的像素坐標,如圖9(b)所示。可以得到特征點T1的像素坐標。通過1.2節(jié)的方法得到該特征點在世界坐標系下的坐標(xw,yw,zw),首先因為激光條紋上的點在棋盤格標定板所在的平面上,所以zw=0。特征點是與黑色棋盤格部分的交點,所以其xw=0。
如圖10(a)所示,確定特征點T1的yw的值時,在標定過程中可以得到標定板四周角點P1、P2、P3、P4的像素坐標,沿著線段P1P4和P2P3方向對圖像進行細化。
圖10 細分標定圖像
在圖像細分過程中,理論上x的值越大,yw越接近準確,但為了節(jié)省計算資源,令圖像細分的份數(shù)x=10000,如圖10(b)所示。
根據(jù)上述已得出特征點T1的像素坐標,計算特征點T1與細分圖像線段的距離,得出最短距離,如圖11(a)所示。計算得出i=8322時,特征點T1距離第8322條線段的距離最短,誤差僅為0.019 1 mm,滿足工程需求。
圖11 擬合光平面
由式(13)可得yw=41.61 mm。所以,特征點T1的世界坐標為(0,41.61,0)。重復上述過程可求出T2、T3、T4、T5、T6、T7的世界坐標,并根據(jù)外參可得到對應相機坐標系下的像極坐標。結果如表2所示。
表2 image1標定特征點坐標
每張圖片至少可提取5個這樣的標定特征點,按照上述方法,得到20張圖片的100個標定特征點,求出其在相機坐標系下的坐標。圖11(b)為選取的標定特征點在相機坐標系下的位置。
通過式(1)求得每張圖片中特征點在相機坐標系下特征點坐標。根據(jù)式(14)構建100×3的超定方程i組,求最小二乘解,求得光平面方程為
為驗證得到的線結構光平面方程的準確性,將圖12中的P1、P2兩點的像素坐標代入式(12)中得到P1、P2兩點在相機坐標系下的坐標值,并計算兩點之間的距離為79.884 3 mm,兩點之間的實際距離為80 mm,相對誤差為0.14%。
圖12 驗證P1到P2的距離
本文基于單目相機成像模型和結構光平面方程,提出了一種簡便、高效、高精度的線結構光視覺系統(tǒng)標定方法。利用微分的思想去逼近世界坐標系下標定特征點縱坐標的實際值,實現(xiàn)了標定特征點數(shù)據(jù)的高效采集,并利用最小二乘法作參數(shù)估計,得到了視覺系統(tǒng)的結構光平面方程,并進行試驗驗證。實驗結果表明,該標定方法測量得出的相對誤差為0.14%,能夠滿足焊接機器人視覺測量系統(tǒng)的精度要求。