余永維,徐 維
(重慶理工大學(xué)機(jī)械工程學(xué)院,重慶 400054)
目前,企業(yè)現(xiàn)場獲取工件尺寸信息,仍采用檢具、卡尺等傳統(tǒng)接觸式手工測量裝配零件尺寸,不僅測量的尺寸數(shù)據(jù)存在偏差,且存在不能滿足工業(yè)生產(chǎn)實時測量要求的問題等[1-2]。為此,需要采用更加高效而又準(zhǔn)確的非接觸式測量方法,如單雙目立體視和結(jié)構(gòu)光視覺等測量方法,不僅能降低了工人的作業(yè)強(qiáng)度,還能提高工件尺寸檢測效率等[3-5]。丁海洋等[6]通過單目視覺,提出先測量后建模的思想,在一定范圍內(nèi)可以實現(xiàn)其他未知圓形物體的直徑尺寸測量。王凱等[7]提出基于最小二乘法橢圓邊緣擬合算法,實現(xiàn)了零件的圓孔內(nèi)外徑無損自動測量。李鵬陽等[8]采用方格圖計算像素當(dāng)量法進(jìn)行相機(jī)標(biāo)定和灰度矩亞像素邊緣定位法來提高測量精度,并完成了圓盤零件的直徑和圓度的幾何尺寸測量。張俊勇等[9]通過雙目視覺,提出極線閾值約束的灰度相關(guān)匹配方法,獲取零件輪廓點云圖完成零件關(guān)鍵尺寸檢測。上述大部分都是基于圖像來獲取目標(biāo)物體的尺寸信息,但是無法獲取目標(biāo)物體的深度信息,同時對相機(jī)像素要求較高,圖像噪聲和光照條件等因素,都容易導(dǎo)致測量結(jié)果存在較大偏差。
為提高目標(biāo)物體的檢測效率和質(zhì)量,本文以機(jī)床法蘭盤裝配件為研究對象,設(shè)計了一種基于點云三維重建的測量方法,結(jié)合六軸工業(yè)機(jī)器人對裝配件進(jìn)行無損測量。首先重建被測物體的點云模型,再利用改進(jìn)RANSAC算法提高掃描物體平面特征的提取效率和準(zhǔn)確率,并剔除異常數(shù)據(jù)點,同時使用最小二乘法對剩余有效點進(jìn)行擬合,計算模型參數(shù)值,最后實現(xiàn)了法蘭盤和其他工件的關(guān)鍵尺寸的實時測量,通過實驗數(shù)據(jù)的對比證明了該方法具有一定的可行性,對工件的實時檢測具有重要意義。
RANSAC算法[10](隨機(jī)一致算法)通過迭代計算點云數(shù)據(jù)集方式刪除異常數(shù)據(jù)點(即局外點),構(gòu)建僅有局內(nèi)點組成的點云集,最終得出最佳模型。傳統(tǒng)RANSAC算法在隨機(jī)抽樣階段采用完全隨機(jī)的方式,并未進(jìn)行初始判斷,導(dǎo)致隨機(jī)采集點云不是局內(nèi)點也會進(jìn)行余下的算法,直到算法運行最后結(jié)果不符合要求才舍棄該組點云并重新隨機(jī)選擇下一組點云,這種隨機(jī)選擇點云的方式增加了算法運行時間,本文進(jìn)行了以下的優(yōu)化與改進(jìn)。
針對傳統(tǒng)算法存在運行效率低,本文采用隨機(jī)抽取的3點之間存在的內(nèi)在約束作為先驗信息引導(dǎo)算法的隨機(jī)抽樣過程,同時點間間距與閾值的關(guān)系能保證隨機(jī)抽取的3點構(gòu)成平面的要求。以隨機(jī)抽取的3點為頂點所構(gòu)成的三角形邊長為Li(i=1,2,3),對三角形內(nèi)所包含的點云進(jìn)行判斷,設(shè)三角形內(nèi)包含的點云個數(shù)為m,若滿足點到平面距離小于設(shè)置的距離的點云個數(shù)n0大于預(yù)設(shè)值N0,則繼續(xù)運行下一步算法,反之則重新隨機(jī)選擇3點。雖然看似多了一步預(yù)判斷,但若選取的點不是局內(nèi)點,就會省去剩余點云集的點到平面距離判斷時間;同時為了提高工件的測量精度,本文在點到擬合平面距離判斷后添加了點云的點法向量和擬合平面法向量的夾角同閾值比較,能進(jìn)一步判斷該點是否為局內(nèi)點,從而得到最佳平面的點云集,再利用最小二乘法對含有最優(yōu)有效數(shù)據(jù)點進(jìn)行平面重新擬合,本文通過設(shè)定選取點與點間的距離L值進(jìn)行搜索和法向量夾角閾值判斷,所增加的時間遠(yuǎn)遠(yuǎn)小于前者。
假設(shè)點云集中任意一點到擬合平面的距離所需時間為t0,任意一點的法向量與擬合平面法向量夾角和閾值比較所需時間為t1,點云集中共包含點云的數(shù)量為q,剩余點云中滿足點到平面閾值判斷的點云的數(shù)量為m1(m1?q),隨機(jī)抽取到滿足要求的三點所需次數(shù)為ψ,則通過傳統(tǒng)算法計算所有的點云到擬合平面距離所需時間為:
Ttra=ψ(q-3)t0
(1)
本文改進(jìn)算法所需時間為:
Timp=ψmt0+(q-3-m)t0+m1t1
(2)
則本文改進(jìn)算法所節(jié)約的時間為:
T=Ttra-Timp=
ψ(q-3)t0-[ψmt0+(q-3-m)t0+m1t1]=
(3)
由于q≥m+m1+3,m1?q,同時t0、t1很小且相近,由式(3)可知,只有當(dāng)ψ<3時,傳統(tǒng)算法用時會比本文改進(jìn)算法用時少一點。而RANSAC算法運行時,不能保證一開始就能隨機(jī)抽取到符合條件的三點,而需要經(jīng)過若干次隨機(jī)選擇才能成功,隨著抽取的次數(shù)ψ增加,本文改進(jìn)算法優(yōu)勢就越明顯,所節(jié)約的時間也越多同時也提高平面擬合準(zhǔn)確度。
針對處理后的復(fù)雜點云模型采用傳統(tǒng)算法進(jìn)行平面擬合效率低,而本文改進(jìn)算法不僅能減少算法本身運行時間還能提高平面特征的提取效率和準(zhǔn)確率。改進(jìn)算法流程如圖1所示,改進(jìn)算法步驟如下:
圖1 本文方法流程圖
步驟1:在Pi(i=1,2,3)平面區(qū)域中隨機(jī)抽取點云{p1,p2,p3};
步驟2:通過計算抽取點云間間距Li(i=1,2,3),得到的間距與閾值比較,如果都大于該閾值L0且小于2倍該閾值則轉(zhuǎn)向步驟3,反之轉(zhuǎn)向步驟1;
步驟5:重復(fù)步驟1~4K次,選擇包含最多的局內(nèi)點的平面模型數(shù)據(jù),并加載到最小二乘法算法中進(jìn)行平面擬合得到最優(yōu)模型參數(shù)值,其中K可以計算得到。
在滿足指定置信度情況下,基于子集最小抽樣數(shù)T與至少取得一個合格采樣子集的概率Pn滿足如下關(guān)系式:
1-Pn=(1-τn)T
(4)
最小迭代次數(shù)為:
(5)
式中,Pn表示經(jīng)過K次迭代過程中出現(xiàn)最優(yōu)平面數(shù)據(jù)的概率(取值為0.9~0.99);τ表示位于所選最優(yōu)平面的數(shù)據(jù)是局內(nèi)點的概率;n表示模型參數(shù)中最少數(shù)據(jù)點。
點云數(shù)據(jù)的特征提取、曲面分割等幾何特征,都依賴表面法向量的準(zhǔn)確估算,所以法向量計算是點云必不可少的屬性之一[11-12]。平面提取中點云的點法向量可以通過局部平面擬合的方式求得[13]。點云的點法向量計算過程:隨機(jī)選擇點云Pi中的一點p0,從以pi為中心點,R0為半徑的空間球內(nèi)選擇點pi周圍的點云集N(pi),通過該點云集擬合局部平面T從而求得法向量n。
(6)
式中,dTpi表示平面截距。
通過協(xié)方差矩陣的特征值和特征向量能得出式(6)中法向量n值,每個點pi對應(yīng)的協(xié)方差矩陣M:
(7)
M·vj=λj·vj,j∈{0,1,2}
(8)
工件表面的基準(zhǔn)面是通過點云平面擬合算法擬合得到的,而偏離基準(zhǔn)面的點云坐標(biāo)最大特征為工件表面的平整度,即工件表面的變形程度[14]。通過本文方法能擬合得到基準(zhǔn)平面:Axi+Byi+Czi+D=0,而偏離擬合平面的點云集Ni(xi,yi,zi)(i=0,..,n)到擬合的工件基準(zhǔn)面的距離和表面平整度分別為:
(9)
Tpi=|di|max
(10)
工件高度測量是通過提取同法向量方向的不同平面,計算平行平面間的距離作為工件的高度。針對不同高度的平面擬合時,通過預(yù)設(shè)高度閾值進(jìn)行平面分割,并將點云坐標(biāo)偏離未擬合平面的距離作為擬合平面的參考量。設(shè)工作平臺為工件高度測量的參考平面表示Ax+By+Cz+D=0,則工件參考面之上的平面為:
Ax+By+Cz+Dx=0
(11)
式中,A、B、C表示基準(zhǔn)平面方向;Dx為待求值,Dx值是通過點云坐標(biāo)偏離待擬合平面的目標(biāo)函數(shù)最小值求得,即:
(12)
平行平面的間距為工件某位置的高度h:
(13)
三維點云中圓孔直徑測量是通過將加工孔投影到擬合平面,并將投影區(qū)域的邊界點作為加工孔的邊緣特征點,再通過形態(tài)學(xué)算子對邊界點進(jìn)行提取以及加工孔邊緣特征的隨機(jī)三點,確定唯一空間圓形模型,從而得到加工孔的幾何信息[15]。擬合平面圓孔特征的點云集Ci(xi,yi,zi)(i=0,…,n),圓心軸上的方向向量n(ai,bi,zi)(i=0,…,n),擬合平面的圓孔曲線方程及最小二乘法目標(biāo)函數(shù)為:
(14)
(15)
式(15)的最小值約束條件可以計算出圓的圓心(a,b)和半徑R,所以圓孔孔間距為:
(16)
本系統(tǒng)的工作原理是通過深度視覺相機(jī)對裝配件進(jìn)行點云數(shù)據(jù)采集與處理、平面特征提取,完成裝配件高度、孔徑等尺寸測量,最后分揀出檢測不合格的工件。系統(tǒng)軟件實驗是在Windows10系統(tǒng)Intel(R) Core(TM) i3-9100F CPU @ 3.60 GHz硬件環(huán)境下,VS2017平臺上采用C++語言實現(xiàn)傳統(tǒng)算法、本文方法以及裝配件的尺寸測量;硬件部分由VST-sur200深度相機(jī)、6軸工業(yè)機(jī)器人和PC上位機(jī)構(gòu)等組成。
為了驗證本文方法在工件尺寸檢測系統(tǒng)平面特征提取中的有效性,分別選用模擬仿真平面數(shù)據(jù)(3000點云量)和采集的標(biāo)準(zhǔn)工件(7萬點云量)作為三維點云平面提取實驗對象,并通過與傳統(tǒng)RANSAC算法進(jìn)行比較分析。
(a) 不含噪聲的云數(shù)據(jù) (b) 含噪聲的云數(shù)據(jù)
表1 未加入異常值得仿真實驗參數(shù)估值
表2 加入30個異常值得仿真實驗參數(shù)估值
由表1和表2可知,各平面擬合方法在相同實驗條件下,傳統(tǒng)RANSAC方法、本文改進(jìn)RANSAC方法、本文方法在無噪聲點干擾時,各方法擬合的平面參數(shù)值都接近預(yù)設(shè)參數(shù)值,而本文通過改進(jìn)RANSAC方法預(yù)處理后,再通過最小二乘法進(jìn)行平面擬合運行時間相對于傳統(tǒng)RANSAC平面擬合用時較短,標(biāo)準(zhǔn)差δ最低、平面擬合效果最好,說明進(jìn)行平面擬合前對點云數(shù)據(jù)進(jìn)行粗剔除是很有必要的;加入噪聲點后,傳統(tǒng)RANSAC方法和本文改進(jìn)RANSAC方法得到的平面估計參數(shù)值與預(yù)設(shè)參數(shù)值間存在較大誤差,而本文方法的δ值5.050×10-3遠(yuǎn)遠(yuǎn)低于傳統(tǒng)RANSAC方法的δ值,而且平面擬合參數(shù)估計值與預(yù)設(shè)值最接近,平面擬合效果最佳,因此可知本文方法具有較好魯棒性和平面擬合精度。
為進(jìn)一步驗證本文方法在點云平面擬合中的可行性,通過3D雙目結(jié)構(gòu)光相機(jī)掃描采集標(biāo)準(zhǔn)工件(長50 mm,寬20 mm,高15 mm)的點云數(shù)據(jù)進(jìn)行驗證,如圖3所示。本文方法對標(biāo)準(zhǔn)件的平面擬合結(jié)果如圖4所示。
(a) 標(biāo)準(zhǔn)工件實物 (b) 標(biāo)準(zhǔn)工件點云
(a) 標(biāo)準(zhǔn)件提取平面 (b) 工作平臺點云提取平面
表3是傳統(tǒng)RANSAC方法、本文改進(jìn)RANSAC方法與本文方法運行結(jié)果的對比。
表3 不同方法提取標(biāo)準(zhǔn)工件點云平面結(jié)果比較
在萬級點云數(shù)據(jù)中,傳統(tǒng)RANSAC方法、本文改進(jìn)RANSAC方法與本文方法運行的時間分別為6.4 s、3.7 s、4.2 s。本文方法平面提取精度較傳統(tǒng)RANSAC算法平面提取精度較好,用時較短,擬合平面參數(shù)更加接近真實值。
實驗測量的法蘭盤裝配件實物圖和通過深度相機(jī)掃描獲得的法蘭盤裝配件的三維點云圖如圖5a和圖5b所示。在獲得法蘭盤工件的三維模型后,通過本文方法獲取法蘭盤裝配件的參考平面(底面)以及同法向量方向的不同平面,結(jié)合測量系統(tǒng)計算出不同平面與參考平面的距離,得出法蘭盤的高度值,計算偏離基準(zhǔn)平面的點云坐標(biāo)最大特征得到工件表面的平整度,通過最小二乘法圓擬合來獲取圓孔幾何尺寸,每次工件尺寸測量實驗完成時間約5.6 s,經(jīng)過多次實驗測量后,結(jié)果如圖6、表4所示。圖6a、圖6b和圖6c表示的是通過對重建的點云處理處理后,采用本文改進(jìn)算法對點云數(shù)據(jù)中的平面進(jìn)行擬合效果,從圖6中可以看出經(jīng)過優(yōu)化后的RANSAC算法進(jìn)行點云數(shù)據(jù)篩選后,再經(jīng)過最小二乘法對含有最優(yōu)有效數(shù)據(jù)點進(jìn)行平面重新擬合效果較好,說明進(jìn)行平面擬合前對點云數(shù)據(jù)進(jìn)行粗篩選是很有必要的。
(a) 法蘭盤裝配件實物 (b) 法蘭盤裝配件點云
(a) 工作平臺點云提取平面 (b) 法蘭盤裝配件提取平面
表4 測量結(jié)果
由表4中法蘭盤工件三維尺寸的測量數(shù)據(jù)對比可知,使用3D雙目結(jié)構(gòu)光測量值與千分卡尺測量值之間的誤差不超過0.30 mm之內(nèi),測量精度基本保證在±0.1%以內(nèi),測量標(biāo)準(zhǔn)誤差在±0.16 mm以內(nèi),該測量精度能滿足某公司提供的法蘭盤工件尺寸參數(shù)誤差要求,說明本文搭建基于點云三維重建在線測量系統(tǒng)具有較好的檢測精度。
(1)三維點云平面提取實驗證明采用隨機(jī)抽取的點與點間存在內(nèi)在約束作為先驗信息引導(dǎo)算法的初始判斷能減少算法迭代時間,相比傳統(tǒng)算法運行時間大大減少,表明此方法在保證提取效果的前提下可以大幅度提高平面提取速度及平面擬合精度。
(2)通過改進(jìn)RANSAC算法對獲取點云進(jìn)行粗點云篩選,剔除一部分點云數(shù)據(jù),再通過最小二乘法對剔除后的點云數(shù)據(jù)進(jìn)行平面擬合,實驗表明通過粗點云數(shù)據(jù)剔除后,能減少后續(xù)算法運行時間并增強(qiáng)魯棒性效果。
(3)通過實驗證明了3D雙目結(jié)構(gòu)光點云的工件三維重建測量方法可以滿足工業(yè)對法蘭盤的實時檢測的要求、符合裝配件的尺寸測量精度要求以及具有良好的普適性,因此可以廣泛應(yīng)用到相應(yīng)批量生產(chǎn)裝配件幾何尺寸測量生產(chǎn)線中。