安麒睿,周志峰
(201620 上海市 上海工程技術(shù)大學(xué) 機(jī)械與汽車工程學(xué)院)
隨著我國制造業(yè)的快速發(fā)展,越來越多的檢測技術(shù)開始應(yīng)用在航天、船舶、汽車等領(lǐng)域。國內(nèi)外相關(guān)檢測領(lǐng)域的科研人員對三維檢測技術(shù)給予了極高關(guān)注。三維檢測技術(shù)一般是利用條紋投影的光學(xué)方法獲得待測物體的三維形貌信息的手段。一般情況下,三維檢測技術(shù)分為測量時與待測物體有接觸的接觸式測量和測量時與待測物體無接觸的非接觸式測量。接觸式測量主要以三坐標(biāo)測量機(jī)為代表,精度高,但是測量效率相對較低,而且對環(huán)境要求較高,測針容易與待測物體發(fā)生干涉;非接觸測量技術(shù)是以光學(xué)為基礎(chǔ),對待測物體進(jìn)行光學(xué)掃描、三維重建,特點是對待測物體無損傷,測量速度快、效率高[1]。本文通過結(jié)構(gòu)光技術(shù),實現(xiàn)了其在距離檢測和平面度檢測的應(yīng)用。
在三維檢測領(lǐng)域中,結(jié)構(gòu)光技術(shù)是一種重要的非接觸式檢測技術(shù),又稱非接觸式三角法測量技術(shù)。其基本原理是通過激光發(fā)射器將各種形式的光柵條紋圖案投射到待測物體表面,再由相機(jī)捕捉拍攝在待測物體表面發(fā)生變形的光柵條紋圖案,計算光柵條紋圖案上像素點的灰度值變化后,即可獲得待測物體空間位置坐標(biāo),從而生成待測物表面的點云數(shù)據(jù)。在當(dāng)前研究成果中,結(jié)構(gòu)光的主要形式分類為:點結(jié)構(gòu)光、線結(jié)構(gòu)光和面結(jié)構(gòu)光[2]。在三維檢測技術(shù)中采用結(jié)構(gòu)光技術(shù),是因為結(jié)構(gòu)光具有快速采集到待測物體的表面信息,得到點云數(shù)據(jù),并且其精度較高的優(yōu)點。
線結(jié)構(gòu)光是激光器向待測物體投射片狀光束,與待測物體表面形成明亮的交叉線,如圖1 所示。通常,線結(jié)構(gòu)光只需采用一維機(jī)械掃描系統(tǒng)即可完成,將激光器垂直固定于平面試驗臺,將待測物體置于步進(jìn)電機(jī)上,通過步進(jìn)電機(jī)的滑動實現(xiàn)線結(jié)構(gòu)光的三維掃描。系統(tǒng)結(jié)構(gòu)及掃描成像過程如圖2所示。
圖1 線結(jié)構(gòu)光的掃描原理Fig.1 Scanning principle of line structured light
圖2 線結(jié)構(gòu)光掃描的平臺以及掃描成像過程Fig.2 Line structured light scanning platform and scanning imaging process
面結(jié)構(gòu)光是將二維圖形投射到待測物體表面,并在物體表面上形成調(diào)制圖案,如圖3 所示。常見的面結(jié)構(gòu)光是幾何光柵投影,包括條紋光柵、正交光柵和交叉線等。面結(jié)構(gòu)光的成像采集只需要將待測物體放在一定完成標(biāo)定的雙目相機(jī)下,即可完成圖像采集[3]。本文將采用面結(jié)構(gòu)光采集點云數(shù)據(jù),然后結(jié)合MATLAB 和C++進(jìn)行平面度檢測。
圖3 面結(jié)構(gòu)光掃描原理Fig.3 Principle of surface structured light scanning
無論是線結(jié)構(gòu)光還是面結(jié)構(gòu)光,當(dāng)被用來測量待測物體的三維形貌時,激光發(fā)射器、待測物體以及CCD 相機(jī)之間正好形成三角形,當(dāng)激光掃描儀與感光元件位置固定時,物距、相距、焦距參數(shù)也確定,結(jié)合空間幾何位置推導(dǎo)光點成像位置關(guān)系,求得待測零件表面的變化情況,由相似三角形原理求出Z 軸的具體深度信息,這就是激光三角法。
以線結(jié)構(gòu)光成像原理為例,如圖4 所示,激光器將結(jié)構(gòu)光投射到待測物體表面A1B1,線段A1A2與B1B2相交于O 點,線激光掃描儀的量程范圍為
圖4 激光三角測距原理圖Fig.4 Principle diagram of laser triangulation ranging
感光元件上對應(yīng)的距離為
B3、B4為過B1、B2點作A1、A2的垂線所得的交點,根據(jù)相似三角形定理可得:
將式(4)代入式(3)可得:
即可得到激光掃描儀、感光元件、感光透鏡與線激光掃描儀量程范圍的距離關(guān)系。
由凸透鏡成像公式可得:
式中:u——物距;v——像距;f——焦距。
當(dāng)光點在A1所在的參考平面時,此時u=h1,v=h2,代入式(6)可得:
將式(7)代入式(5)可得:
當(dāng)激光掃描儀與感光元件的位置確定時,其物距u,像距v,焦距f 可推導(dǎo)求得,通過感光元件也可獲得h3的值,由此代入式(8)可求出Δh 的值,即為激光傳感器的量程范圍。
已知激光傳感器的量程范圍為Δh,假設(shè)物體表面上的某個點i 處于A1、B1中間的Zi點,其在A2、B2上對應(yīng)的點為,則由相似三角形原理可得:
以B1所在平面為參考平面,則Δh 為物體表面某點i 的Z 軸深度信息,即所需獲取的高精度Z 軸方向的點云數(shù)據(jù)。以上為激光三角測距原理的數(shù)學(xué)表達(dá)。
工件的距離測量原理大致分為2 種,第1 種是求得2 條直線的表達(dá)式,根據(jù)表達(dá)式計算2 條直線的距離;第2 種是檢測出圖像的角點,計算角點之間的距離。檢測工件如圖5。
圖5 待測物體Fig.5 Object to be measured
檢測工件的工作臺使用的是線陣激光掃描儀(圖6 所示),線激光發(fā)射器固定在垂直升降臺上,將工件放在移動滑臺上,移動滑臺的移動是通過步進(jìn)電機(jī)控制的。通過步進(jìn)電機(jī)推進(jìn)控制滑臺的移動,由線陣激光掃描儀采集每時每刻的點云數(shù)據(jù),形成待測工件的三維表面信息。由于本次試驗只是測工件的長度,所以只需要掃工件的一長條點云數(shù)據(jù)。由于使用線陣激光進(jìn)行掃描,為了使測量精度盡可能高,所以一長條采集點云數(shù)據(jù)時間較長,但是測量效率相較于點結(jié)構(gòu)光有很大提升。
圖6 線陣激光掃描儀Fig.6 Linear laser scanner
本次距離測量主要使用兩直線的距離測量方法(直線測量)。采用的方法為最小二乘法。其基本思想是尋找一條直線使得這些求得的數(shù)據(jù)與實際數(shù)據(jù)之間的誤差的平方和為最小。
總誤差的平方:
求函數(shù)S(a,b),a與b 取何值時有maxS(a,b),即:
由式(11)可求得a,b的值,然后求得直線方程。獲得2 個邊緣的直線方程之后,就可以通過2 直線之間的距離計算公式求得待測長度。
通過計算,所測得的工件長度為158.21 mm,而工件為圖紙給出的距離為158.10 mm。由此,測量精度可以達(dá)到0.1 mm。
線結(jié)構(gòu)光相較于結(jié)構(gòu)光技術(shù)中的點結(jié)構(gòu)光,檢測效率有較大的提升,精度也有所上升。但是其缺點也暴露無遺,線結(jié)構(gòu)光激光照射范圍較??;提取點云數(shù)據(jù)后如果有需要,需進(jìn)行大量的點云拼接,也許會增加不必要的誤差。
平面度檢測主要是指被測實際表面對其理想平面的變動量。傳統(tǒng)平面度檢測的方法有:平晶干涉法、打表測量法、液平面法、光束平面法[5-6]。了解面結(jié)構(gòu)光技術(shù)后,擬采用面結(jié)構(gòu)提取待測物體表面點云信息,再進(jìn)行有效點的提取。由于做平面度檢測需要求得待測工件表面的理想平面,針對這一問題,本文采用SVD 分解求擬合平面,利用MATLAB 進(jìn)行理想平面的擬合。本文所使用的是由線激光相機(jī)、高精度運動滑臺、可升降絲桿、運動電機(jī)控制模塊和光學(xué)精密阻尼隔振平臺組成的三維點云掃描檢測系統(tǒng)。
為了保證測量數(shù)據(jù)的完整性與準(zhǔn)確性,在掃描開始之前,需要對線陣激光掃描儀進(jìn)行精度標(biāo)定,標(biāo)定結(jié)果對測量的數(shù)據(jù)準(zhǔn)確性有很大影響。采用平面棋盤標(biāo)定法,并將待測物體墊高與工作臺,方便點云成像后的有效圖像提取。
由于待測物體表面比較反光,所以本試驗對光線要求比較高,盡量采用自然光。通過反復(fù)調(diào)試,采集到的點云數(shù)據(jù)如圖7 所示。
圖7 采集工件表面點云數(shù)據(jù)Fig.7 Collected point cloud data on workpiece surface
為了檢測整個工件的平面度,需要進(jìn)行點云數(shù)據(jù)處理,提取所有的輪廓。利用PCL 庫中快速點特征直方圖(FPFH)[7],可將整個待測物體表面上筋的點云數(shù)據(jù)提取出來。之后,在筋上進(jìn)行點的選取,為了提高精度,取點應(yīng)盡量多。本試驗選取了100 個點,記錄了100 個點的三維坐標(biāo)。取點擬合平面后,還需將偏離理想平面過于遠(yuǎn)的點作為無效點刪除,再進(jìn)行擬合,以保證理想平面正確擬合。
SVD 分解[8]求擬合平面的原理:已知若干三維點坐標(biāo)(xi,yi,zi)擬合出的平面方程為
使得該平面到所有點的距離之和最小。
推導(dǎo)過程如下:
理想情況下,所取點都在平面上,式(16)必然成立。實際情況是,部分點都會與理想平面發(fā)生偏移,擬合的目的是使得平面距離所有點的距離之和盡量小,所以目標(biāo)函數(shù)為
式中:D——對角矩陣;U,V——酉矩陣。
因為在SVD 分解中,D 的對角元素為奇異值,假設(shè)最后一個對角元素為最小奇異值,則當(dāng)且僅當(dāng)
所以,目標(biāo)函數(shù)在約束條件下的最優(yōu)解為
綜上所述,協(xié)方差矩陣的SVD 變換中,最小奇異值對應(yīng)的奇異向量就是平面的方向。將所取點的三維坐標(biāo)儲存成矩陣形式,通過MATLAB 編寫SVD分解求擬合平面的代碼并繪制擬合平面,如圖8所示。
圖8 SVD 分解擬合平面Fig.8 SVD decomposition fitting plane
將已取點和求得的理想平面求點到平面的距離,即可得到平面度誤差。本試驗取35 組平面度誤差,共有{-0.099,-0.043,0.049,0.031,0.071,0.226,0.141,-0.069,-0.175,0.353,-0.042,-0.046,0.012,0.046,0.336,0.138,-0.167,0.082,0.109,0.066,-0.027,-0.146,-0.014,0.034,0.062,0.006,0.139,-0.007,0.045,-0.130,-0.025,-0.186,0.071,-0.019,0.078}。
本試驗使用線陣激光掃描儀進(jìn)行待測物體表面三維掃描,利用MATLAB 和C++進(jìn)行理想平面擬合和平面度誤差計算。此試驗使用時間很短,精度達(dá)到了0.01 mm,精度較高。本文介紹了結(jié)構(gòu)光的兩種分類以及結(jié)構(gòu)光掃描的測量原理:激光三角測距原理。進(jìn)行了兩個檢測:線結(jié)構(gòu)光進(jìn)行的距離檢測和面結(jié)構(gòu)光進(jìn)行的平面度檢測。通過應(yīng)用最小二乘法、SVD 分解擬合平面法,對待測物體進(jìn)行測量。實現(xiàn)了結(jié)構(gòu)光技術(shù)在檢測技術(shù)方面的一些應(yīng)用。以結(jié)構(gòu)光技術(shù)為基礎(chǔ)的檢測設(shè)備擁有效率高、精度高、不損壞被測物等特點,是未來的非接觸式三維精密檢測中重要發(fā)展方向之一。