潘海鴻,王耀瑋,徐大斌,李睿亮,陳 琳
(廣西大學(xué)機(jī)械工程學(xué)院,廣西南寧530000)
檢測技術(shù)在管控產(chǎn)品質(zhì)量的過程中扮演著重要的角色,隨著現(xiàn)代工業(yè)制造技術(shù)的不斷發(fā)展,對于檢測技術(shù)提出的要求也越來越高[1-2]。線結(jié)構(gòu)光測量系統(tǒng)作為一種非接觸式檢測手段,在近幾年取得了突飛猛進(jìn)的發(fā)展,目前已經(jīng)廣泛地應(yīng)用于三維重建、三維測量及無損缺陷檢測中。線結(jié)構(gòu)光測量系統(tǒng)主要由計算機(jī)、相機(jī)和線結(jié)構(gòu)光光源組成,檢測效率高、精度高、量程大[3-4]。該系統(tǒng)的測量精度與相機(jī)標(biāo)定、結(jié)構(gòu)光平面標(biāo)定有著直接的聯(lián)系[5]。
近年來對結(jié)構(gòu)光平面標(biāo)定方法的研究有很多。陳等[6]設(shè)計出一種三維立柱陣列靶標(biāo),將結(jié)構(gòu)光投影在立柱端面上,再根據(jù)不同立柱之間的旋轉(zhuǎn)、平移矩陣以及端面光條坐標(biāo)完成線結(jié)構(gòu)光平面標(biāo)定,相對誤差為0.57%。Liu等[7]提出使用球形靶標(biāo),利用空間圓錐和空間球交會的方法進(jìn)行光平面標(biāo)定,精度約為0.09 mm。Wei等[8]提出的三維平行線靶標(biāo),利用已知等距平行線求取平面消隱線的原理完成光平面標(biāo)定,精度約為0.12 mm。這些方法都需要制作特制的三維靶標(biāo)完成結(jié)構(gòu)光平面標(biāo)定。Xu[9]等利用六軸機(jī)器人將線結(jié)構(gòu)光投影在標(biāo)記點(diǎn)上,基于機(jī)器人的手眼標(biāo)定算法構(gòu)造并求解多次標(biāo)定方程組,最后使用最小二乘法對該標(biāo)定方程組進(jìn)行優(yōu)化,標(biāo)定精度大約為0.2 mm。這種方法需要使用六軸機(jī)器人且需要對機(jī)器人各關(guān)節(jié)的轉(zhuǎn)角值進(jìn)行正逆運(yùn)動學(xué)求解,從而增加了標(biāo)定復(fù)雜度。有些研究者提出使用二維靶標(biāo)完成標(biāo)定。Wang[10]等使用平面棋盤格靶標(biāo),不斷變換機(jī)器人姿態(tài)的同時進(jìn)行拍照,共計在6個姿態(tài)下拍攝16張照片,再利用手眼矩陣以及相機(jī)參數(shù)完成結(jié)構(gòu)光平面標(biāo)定。這種方法僅使用棋盤格上的88個角點(diǎn)坐標(biāo)完成標(biāo)定,標(biāo)定精度大約為0.4 mm。Li等[11]將結(jié)構(gòu)光投影在棋盤格靶標(biāo)邊緣,通過改變激光器與相機(jī)的相對距離以及激光的投影方向,增加擬合點(diǎn)的數(shù)量,并使用RANSAC算法提升標(biāo)定精度,標(biāo)定精度約為0.25 mm。邱[12]等使用平面靶標(biāo),拍攝22~28張靶標(biāo)照片,利用三線共面條件和結(jié)構(gòu)光直線方程完成結(jié)構(gòu)光平面標(biāo)定,精度為0.1 mm。
上述標(biāo)定方法需要制作二維或三維的特制靶標(biāo),增加了標(biāo)定的復(fù)雜度。在缺少特制靶標(biāo)的情況下,如何實現(xiàn)結(jié)構(gòu)光平面的高精度標(biāo)定成為一個急需解決的問題。為此,本文基于立體視覺原理和平面擬合算法提出一種結(jié)構(gòu)光平面標(biāo)定方法。該方法使用簡易靶標(biāo)(如工作中的易得物品)獲取多組靶標(biāo)姿態(tài)下線結(jié)構(gòu)光平面上的點(diǎn)云集,利用擬合算法擬合多組點(diǎn)云集完成結(jié)構(gòu)光平面方程的參數(shù)標(biāo)定。對5種不同尺寸工件進(jìn)行測量,驗證了所提出標(biāo)定方法的可行性。
線結(jié)構(gòu)光測量系統(tǒng)主要由相機(jī)以及激光器組成。激光器投射一條線結(jié)構(gòu)光在被測物體上,再由相機(jī)進(jìn)行圖像采集,如圖1所示。其中點(diǎn)P為線結(jié)構(gòu)光上一點(diǎn),它在相機(jī)坐標(biāo)系Oc-XcYcZc下的坐標(biāo)為(xc,yc,zc)。點(diǎn)P在相機(jī)成像平面上映射的像點(diǎn)為p,其像素坐標(biāo)系坐標(biāo)為(u,v),圖像坐標(biāo)系下坐標(biāo)為(x,y)。
圖1 結(jié)構(gòu)光測量系統(tǒng)模型Fig.1 Model of structural light measurement system
根據(jù)相機(jī)的成像原理,其成像模型為小孔成像模型,則有:
式中:dx,dy分別為圖像x和y方向單位像素的物理距離;(u0,v0)為圖像中心在像素坐標(biāo)系下的坐標(biāo);f為相機(jī)的焦距。因被測物體上點(diǎn)P在線結(jié)構(gòu)光平面Axc+Byc+Czc+D=0上,得到:
聯(lián)立式(1)與式(2)可以得到線結(jié)構(gòu)光投影在被測物體上的任意點(diǎn)P(xc,yc,zc)位置,如下:
綜上所述,若已知相機(jī)的內(nèi)外參數(shù)以及線結(jié)構(gòu)光平面參數(shù)A,B,C,D,通過式(3)可求出線結(jié)構(gòu)光投影在被測物體上任意一點(diǎn)的坐標(biāo)。
基于立體視覺獲取相機(jī)坐標(biāo)系下任意點(diǎn)坐標(biāo)的原理如圖2所示,系統(tǒng)由相機(jī)1和相機(jī)2組成。
圖2 視差法求解空間坐標(biāo)Fig.2 Parallax method for spatial coordinates
線結(jié)構(gòu)光在靶標(biāo)上的投影記為線段S,點(diǎn)P為線結(jié)構(gòu)光投影S上一點(diǎn),它在相機(jī)1坐標(biāo)系O1-X1Y1Z1下的坐標(biāo)為(xc,yc,zc),對應(yīng)像點(diǎn)在相機(jī)1圖像坐標(biāo)系下的坐標(biāo)為P1(x1,y1),在相機(jī)2圖像坐標(biāo)系下的像點(diǎn)坐標(biāo)為P2(x2,y2)。
根據(jù)相似三角形原理可得:
式中:b為兩個相機(jī)之間的基線距離,左右視差d=x1?x2。
計算線結(jié)構(gòu)光在靶標(biāo)上投影點(diǎn)P在左相機(jī)坐標(biāo)系O1-X1Y1Z1下的坐標(biāo),即有:
(1)將線結(jié)構(gòu)光投影在靶標(biāo)上,使用公式(5)計算出線結(jié)構(gòu)光投影在靶標(biāo)上形成的點(diǎn)云集C1;
(2)調(diào)整靶標(biāo)至另一位姿,計算點(diǎn)云集C2;
(3)不斷調(diào)整靶標(biāo)姿態(tài)直至獲取k(建議k>10)個點(diǎn)云集Ck。因點(diǎn)云集C1至Ck中的點(diǎn)都處于同一個結(jié)構(gòu)光平面上,擬合所有點(diǎn)云得到結(jié)構(gòu)光平面。
結(jié)構(gòu)光平面擬合過程如下:
最后,根據(jù)式(6)計算擬合值a0,a1,a2得到:
式中n為所用擬合平面的離散點(diǎn)云個數(shù)。由此確定結(jié)構(gòu)光平面。
搭建驗證所提出標(biāo)定方法的測試平臺,測量系統(tǒng)由計算機(jī)、兩臺CCD相機(jī)、濾光片和線結(jié)構(gòu)光光源組成,如圖3(a)所示。計算機(jī)CPU型號為Intel(R)Core(TM)i7-8750H,工作頻率為2.20 GHZ;兩臺相機(jī)型號均為映美精DFK33GP?006,分辨率為2 592×1 944 pixel,幀率為14幀/秒;線結(jié)構(gòu)光發(fā)生器型號為富喆FU650AB100-GC16。將結(jié)構(gòu)光測量系統(tǒng)安裝在六軸機(jī)器人上,如圖3(b)所示,相機(jī)及激光器接通電源。相機(jī)鏡頭前安裝濾光片以減少環(huán)境光的影響,所拍攝照片通過網(wǎng)線傳輸至計算機(jī)。
其中,相機(jī)1的內(nèi)參矩陣為:
相機(jī)2的內(nèi)參矩陣為:
相機(jī)1與相機(jī)2的外參矩陣為:
相機(jī)標(biāo)定結(jié)果通常使用重投影誤差進(jìn)行評估,重投影誤差是指根據(jù)標(biāo)定結(jié)果所計算的像點(diǎn)理論值與像點(diǎn)實際值之間的誤差,本系統(tǒng)的平均重投影誤差為0.081 pixel。由于拍攝距離大約為200 mm,在這個拍攝距離下,由重投影誤差計算相機(jī)系統(tǒng)的誤差大約為0.008 6 mm。
實驗測試1:使用人體手臂充當(dāng)靶標(biāo),將手臂置于結(jié)構(gòu)光平面上(圖4)獲得點(diǎn)云(使用藍(lán)色標(biāo)出點(diǎn)云),采用3.2節(jié)中的標(biāo)定步驟,調(diào)整靶標(biāo)姿態(tài)20次,獲取k=20個點(diǎn)云集(共計13 689個點(diǎn)),使用式(7)擬合出的平面方程系數(shù),擬合出結(jié)構(gòu)光平面方程1為:
實驗測試2:使用304鋼板充當(dāng)靶標(biāo),將它放置在結(jié)構(gòu)光平面上(圖5),調(diào)整靶標(biāo)姿態(tài)20次,使用20個點(diǎn)云集共計14 315個點(diǎn)進(jìn)行擬合,使用式(7)擬合出的平面方程2為:
圖4 使用手臂充當(dāng)靶標(biāo)Fig.4 Using arm as target
圖5 使用304鋼板充當(dāng)靶標(biāo)Fig.5 Using 304 steel plate as target
無論是使用人體手臂還是使用304鋼板充當(dāng)靶標(biāo),所得到的結(jié)構(gòu)光平面方程的系數(shù)值非常相近。這是因為在實驗過程中,結(jié)構(gòu)光平面相對于相機(jī)位置并未發(fā)生改變,表明采用非特制靶標(biāo)能夠標(biāo)定結(jié)構(gòu)光平面系數(shù)。
以制造精度為0.01 mm,邊長為50,45,40,35和30 mm 5種正方形工件為測試對象(圖6),驗證由304鋼板充當(dāng)靶標(biāo)所標(biāo)定的結(jié)構(gòu)光平面方程2的測試精度。
圖6 五種尺寸的正方形工件Fig.6 Square work pieces of five sizes
圖7 工件尺寸測量Fig.7 Workpiece dimension measurement
精度實驗測試過程如下:將結(jié)構(gòu)光投影在所測量工件的邊緣處,記所投影工件尺寸的標(biāo)稱值為N,計算此時形成的兩個特征點(diǎn)Q1和Q2的坐標(biāo)(圖7),分別為(x1,y1,z1),(x2,y2,z2),并計算Q1與Q2之間的距離此時工件邊緣與線結(jié)構(gòu)光已經(jīng)重合,可認(rèn)為測量誤差E=|D?N|。
對這5種尺寸的工件均測量5次,獲得Q1和Q2在相機(jī)坐標(biāo)系下的坐標(biāo)見表1,將每次測量后計算的D值與工件尺寸標(biāo)稱值N進(jìn)行比較,結(jié)果見表2。
表1 不同工件的Q1,Q2坐標(biāo)測量結(jié)果Tab.1 Measurement results for Q1 and Q2 coordinates of different workpieces
表2 工件尺寸D與誤差的計算結(jié)果Tab.2 Calculation values of workpiece size D and error(mm)
因坐標(biāo)精度取決于激光條紋的亞像素提取精度,亞像素提取算法的精度極限約為0.16 pix?el[13],所以Q1,Q2的提取精度也為0.16 pixel。本文中拍攝距離大約為200 mm,則相機(jī)的空間分辨率約為0.16×200/f≈0.02 mm,由表2可知各工件的尺寸測量結(jié)果與工件實際尺寸的誤差均在0.1 mm以內(nèi),總體平均誤差約為±0.056 mm,由此可以認(rèn)為該方法的標(biāo)定精度滿足系統(tǒng)的理論測量精度。此外,在測量30,35,40和45 mm工件時,即使測量工件尺寸發(fā)生變化,測量工件的相對誤差也一直在0.12%~0.15%內(nèi),未發(fā)生明顯變化;在測量50 mm工件時,測量相對誤差降為0.12%;5次測量的平均標(biāo)準(zhǔn)差為0.046 83。這些結(jié)果表明標(biāo)定方法具有較好的可重復(fù)性與穩(wěn)定性。
為解決線結(jié)構(gòu)光平面標(biāo)定需要使用特制靶標(biāo)的問題,本文基于立體視覺原理提出一種使用非特制靶標(biāo)的線結(jié)構(gòu)光平面標(biāo)定方法。在相機(jī)坐標(biāo)系下搭建出線結(jié)構(gòu)光測量系統(tǒng),建立線結(jié)構(gòu)光標(biāo)定數(shù)學(xué)模型。該方法利用立體視覺原理獲取線結(jié)構(gòu)光投影在靶標(biāo)上的點(diǎn)云集,使用擬合算法對點(diǎn)云集進(jìn)行平面擬合獲得線結(jié)構(gòu)光平面的系數(shù),最終完成平面標(biāo)定。使用人體手臂和304鋼板充當(dāng)靶標(biāo),利用該方法完成結(jié)構(gòu)光平面標(biāo)定。最后,利用304鋼板所標(biāo)定平面測量5種正方形工件尺寸進(jìn)行標(biāo)定精度驗證,實驗結(jié)果表明該方法的測試精度約為±0.056 mm,相對誤差約為0.15%,能夠滿足使用要求。