莊志煒,田 威+,李 波,石瀚斌,杜興華
(1.南京航空航天大學(xué) 機(jī)電學(xué)院,江蘇 南京 210016;2.中國(guó)空間技術(shù)研究院 北京衛(wèi)星制造廠有限公司,北京 100094)
在產(chǎn)品數(shù)字化設(shè)計(jì)與制造過程中,數(shù)控系統(tǒng)根據(jù)產(chǎn)品的理論數(shù)學(xué)模型進(jìn)行加工,但由于加工制造及工裝定位等各方面的誤差,被加工工件與其理論數(shù)模的一致性往往難以保證,因此若僅依靠理論數(shù)模來定位加工孔位,精度將不能滿足裝配要求。在實(shí)際加工過程中,需要根據(jù)工件的實(shí)際安裝位置對(duì)加工孔位進(jìn)行位置與法矢修正。例如在飛機(jī)部件自動(dòng)化裝配中,產(chǎn)品表面通常開設(shè)有若干組基準(zhǔn)孔,作為產(chǎn)品定位的參考,在加工之前需要自動(dòng)測(cè)量出基準(zhǔn)孔的實(shí)際位置,從而實(shí)現(xiàn)飛機(jī)部件的精確定位[1-4]。準(zhǔn)確識(shí)別和定位產(chǎn)品上的基準(zhǔn)孔是自動(dòng)化裝配系統(tǒng)的關(guān)鍵技術(shù)之一,目前,多數(shù)裝備采用工業(yè)相機(jī)或者2D激光輪廓儀進(jìn)行孔位檢測(cè)。
基于單目視覺的孔位檢測(cè)技術(shù)已較為成熟,設(shè)備簡(jiǎn)單,且算法容易實(shí)現(xiàn)。楊小丹等[5]采用視覺系統(tǒng)進(jìn)行機(jī)器人制孔設(shè)備的基準(zhǔn)孔找正,但該方法只適用于檢測(cè)孔在X、Y方向上的位置,在深度Z方向上的檢測(cè)精度不高,且不能測(cè)量出孔的軸線方向(即孔的法矢)。例如在飛機(jī)自動(dòng)鉆鉚過程中,在將鉚釘自動(dòng)插入曲面上的一個(gè)鉚釘孔時(shí),需要同時(shí)測(cè)量出該鉚釘孔的位置和法矢信息,才能精確地將鉚釘插入孔中,因此基于單目視覺的孔位檢測(cè)技術(shù)便不再適用。Electroimpact與Boeing共同研制了機(jī)器人自動(dòng)制孔系統(tǒng)ONCE(one-sided cell end effector), 用于F/A-18E/F超級(jí)大黃蜂機(jī)翼后緣襟翼蒙皮到底座的連接制孔,其采用相機(jī)視野中心十字準(zhǔn)線與基準(zhǔn)孔對(duì)齊來完成定位,但檢測(cè)過程需人工干預(yù)[6]。而其第二代產(chǎn)品則實(shí)現(xiàn)了對(duì)基準(zhǔn)孔特征的自動(dòng)識(shí)別,并計(jì)算基準(zhǔn)孔實(shí)際位置與理論位置的偏差從而進(jìn)行修正[7],但該方法容易受環(huán)境光源的干擾,從而導(dǎo)致測(cè)量結(jié)果不準(zhǔn)確。
為了更精確地檢測(cè)孔的位置,出現(xiàn)了基于2D激光掃描的孔位檢測(cè)技術(shù)。將2D激光輪廓儀安裝在直線運(yùn)動(dòng)機(jī)構(gòu)上即可獲取到孔周邊的三維點(diǎn)云,對(duì)點(diǎn)云進(jìn)行一定的處理可計(jì)算出孔的位置和法矢信息。孫海龍等[8]利用2D激光輪廓儀掃描得到待測(cè)平面的點(diǎn)云,通過設(shè)置所有點(diǎn)云數(shù)據(jù)點(diǎn)到擬合平面的距離閾值達(dá)到濾除孔邊緣噪聲點(diǎn)的目的,該濾波算法只適用于平面,不適用于曲面。另外,他通過在X、Y方向上提取孔的邊緣點(diǎn),最終擬合出孔位圓并計(jì)算出孔中心坐標(biāo),這種基于邊緣檢測(cè)的孔識(shí)別算法只有在2D激光輪廓儀能掃描出理想的點(diǎn)云時(shí)才能適用,當(dāng)點(diǎn)云有瑕疵時(shí),不能很好地識(shí)別出孔特征。將三維點(diǎn)云與二維圖像相結(jié)合是計(jì)算機(jī)視覺領(lǐng)域中一個(gè)很有前景的方法[9],譚小群等[10]提出一種基于線激光掃描與圖像處理結(jié)合的基準(zhǔn)孔檢測(cè)方法,將線激光掃描獲取的三維點(diǎn)云數(shù)據(jù)轉(zhuǎn)換為二維灰度圖,再使用邊緣檢測(cè)算子提取輪廓,從而獲得基準(zhǔn)孔的中心位置。但該方法同樣僅適用于理想情況下無表面缺陷的點(diǎn)云,當(dāng)出現(xiàn)大面積噪點(diǎn)時(shí),邊緣提取算法無法識(shí)別出基準(zhǔn)孔的邊緣,只能通過手動(dòng)選取感興趣區(qū)域,以提高孔的識(shí)別度,因此該算法無法滿足自動(dòng)化裝配的需求。
隨著復(fù)合材料在飛機(jī)上的大面積使用,自動(dòng)鉆鉚系統(tǒng)對(duì)孔位檢測(cè)提出了更高的要求[11]。采用2D激光掃描孔時(shí),由于復(fù)合材料的強(qiáng)吸光特性,掃描得到的待測(cè)表面點(diǎn)云存在大面積瑕疵,傳統(tǒng)的基于邊緣檢測(cè)的孔位檢測(cè)算法已無法在復(fù)合材料飛機(jī)部件上使用。另外,目前基于2D激光掃描的孔位檢測(cè)技術(shù)只能用于孔的位置測(cè)量,還不能測(cè)量出孔的法矢,必須采用一種新的算法來精確檢測(cè)出孔的位置和法矢。
針對(duì)上述問題,本文提出一種基于模板匹配的孔位與法矢檢測(cè)算法。首先利用2D激光輪廓儀掃描獲取待測(cè)平面的初始點(diǎn)云信息,接著采用改進(jìn)型中值濾波算子對(duì)獲取的點(diǎn)云進(jìn)行濾波降噪等預(yù)處理,然后將點(diǎn)云的z坐標(biāo)值二值化,自適應(yīng)構(gòu)造出孔模板,并執(zhí)行模板匹配以識(shí)別出孔特征,最后計(jì)算出孔的位置和法矢。
本文主要有以下創(chuàng)新點(diǎn):
(1)提出采用模板匹配法進(jìn)行三維點(diǎn)云中孔的識(shí)別定位,并利用感興趣區(qū)域(Regions of Interest ,ROI)進(jìn)行孔特征最終判別,提高了孔的識(shí)別率;將三維點(diǎn)云進(jìn)行二值化處理,簡(jiǎn)化了模板匹配的計(jì)算,提高了匹配效率。
(2)提出孔模板自適應(yīng)構(gòu)造算法,算法可根據(jù)實(shí)際掃描得到的點(diǎn)云特征以及給定的孔徑自適應(yīng)構(gòu)造孔的模板,省去了人為構(gòu)造孔模板的繁瑣程序,提高了孔的匹配度。
(3)采用奇異值分解(Singular Value Decomposition,SVD)的方法擬合孔鄰域內(nèi)的點(diǎn)云,以鄰域平面的法向作為孔的法矢,實(shí)現(xiàn)了孔的法矢測(cè)量,利用改進(jìn)型中值濾波算子對(duì)孔邊緣進(jìn)行降噪處理,提高了孔的法矢測(cè)量精度。
利用2D激光輪廓儀對(duì)孔進(jìn)行掃描,如圖1所示。2D激光輪廓儀搭載在直線電機(jī)上,可沿著X方向以速度V勻速直線運(yùn)動(dòng),通過電機(jī)編碼器的數(shù)值可計(jì)算得到X方向的位移x。輪廓儀可以測(cè)量出到被測(cè)表面的距離信息(Z方向)以及沿著激光線的位置信息(Y方向),以輪廓儀發(fā)射中心為原點(diǎn)的二維坐標(biāo)系內(nèi),輪廓儀測(cè)量輸出一組二維坐標(biāo)值(y,z)。同時(shí),采集直線電機(jī)編碼器數(shù)值與輪廓儀測(cè)量數(shù)值,便可掃描得到被測(cè)表面的三維點(diǎn)云的坐標(biāo)(x,y,z),最終可得到3個(gè)row×col的矩陣X0、Y0、Z0(其中row為矩陣行數(shù),即每條線輪廓采集的點(diǎn)數(shù);col為矩陣列數(shù),即采樣次數(shù)),分別記錄了點(diǎn)云在X、Y、Z三個(gè)方向的位置。對(duì)點(diǎn)云進(jìn)行處理,可得到孔在輪廓儀坐標(biāo)系下的位置和法矢信息,通過坐標(biāo)變換,可計(jì)算出孔在機(jī)器人基坐標(biāo)系下的位姿,從而控制機(jī)器人運(yùn)動(dòng)到指定的位置。
以兩種不同材料的待測(cè)工件為例,分別對(duì)這兩種工件的表面進(jìn)行掃描,其中工件1為表面噴漆的材料,工件2為表面鋪設(shè)銅網(wǎng)的復(fù)合材料,掃描兩種工件表面得到的原始點(diǎn)云數(shù)據(jù)如圖2所示。
由于測(cè)得的點(diǎn)云數(shù)據(jù)密度高、數(shù)量大,且存在大量的無效點(diǎn),針對(duì)這類點(diǎn)云數(shù)據(jù)首先要進(jìn)行簡(jiǎn)化即去除無效點(diǎn)[12]。由圖2c可以看出,工件1的表面點(diǎn)云較完整,僅在凹坑、裂縫處存在一些無效點(diǎn),而工件2由于復(fù)合材料對(duì)激光的吸收率高,表面僅在銅網(wǎng)區(qū)域有反光,工件2的點(diǎn)云存在大面積的無效點(diǎn),最終掃描得到的點(diǎn)云呈現(xiàn)網(wǎng)格狀,如圖2d所示。另外,由于孔邊緣存在毛刺,以及基于三角法測(cè)量原理的2D激光輪廓儀的測(cè)量特點(diǎn),不可避免地會(huì)掃描到孔的內(nèi)壁部分區(qū)域,因此孔邊緣會(huì)存在一些噪點(diǎn)和離群點(diǎn),這些噪點(diǎn)會(huì)為孔的位置和法矢檢測(cè)精度帶來較大的影響。
為了提高孔的位置與法矢測(cè)量精度,必須先對(duì)點(diǎn)云進(jìn)行預(yù)處理,以去除無效點(diǎn)和離群點(diǎn)。無效點(diǎn)的z坐標(biāo)值默認(rèn)為0,在實(shí)際測(cè)量時(shí),無效點(diǎn)處雖然也存在y值,但此時(shí)的y值并非真實(shí)值,應(yīng)將其去除。由于無效點(diǎn)的z坐標(biāo)值都為0,根據(jù)該條件便可以將無效點(diǎn)的y值置零,去除無效點(diǎn)的方式如下:
(1)
采用中值濾波可以有效去除脈沖噪聲,同時(shí)又能保留點(diǎn)云的邊緣細(xì)節(jié)?;谥兄禐V波原理創(chuàng)建一個(gè)改進(jìn)型中值濾波器F,濾波器內(nèi)核B為矩形形狀,核的尺寸為15×3。濾波器F的作用就是將點(diǎn)云S與核B進(jìn)行卷積,對(duì)點(diǎn)云S的每個(gè)點(diǎn)進(jìn)行逐一掃描。例如,當(dāng)掃描到第i行、第j列的點(diǎn)P時(shí),在點(diǎn)云S中取出以P點(diǎn)為中心的15×3鄰域內(nèi)的所有有效點(diǎn)(即z坐標(biāo)值不為零的點(diǎn)),統(tǒng)計(jì)該鄰域有效點(diǎn)的數(shù)量m,以及這些有效點(diǎn)的z坐標(biāo)值的中值z(mì)m,然后求出Z0(i,j)與zm的差值的絕對(duì)值Zd=|Z0(i,j)-zm|。點(diǎn)P鄰域內(nèi)的有效點(diǎn)數(shù)量m的大小可用于判斷點(diǎn)P是否為孤立點(diǎn),在本例中,當(dāng)m≤10時(shí),該點(diǎn)判定為孤立點(diǎn);Zd的大小反映了點(diǎn)P在Z方向上的離群程度,點(diǎn)P偏離群體越遠(yuǎn),Zd的值越大,當(dāng)Zd≥0.05mm時(shí),該點(diǎn)判定為離群點(diǎn)。濾波器F的工作過程即為將孤立點(diǎn)和離群點(diǎn)的z值置零的過程,如下所示:
(2)
以工件1和工件2為例,去除無效點(diǎn)和離群點(diǎn)后的點(diǎn)云如圖3所示。對(duì)比圖2的原始點(diǎn)云與圖3預(yù)處理后的點(diǎn)云可以看出,采用本文的預(yù)處理方法,可有效濾除基準(zhǔn)孔邊緣的噪點(diǎn)和離群點(diǎn)。
二值化是圖像分割的一種方法,可以將灰度圖像轉(zhuǎn)換成二值圖像。將大于某個(gè)臨界灰度值的像素灰度設(shè)為灰度極大值,將小于這個(gè)值的像素灰度設(shè)為灰度極小值,從而實(shí)現(xiàn)二值化。
在執(zhí)行孔掃描時(shí),2D激光輪廓儀的激光發(fā)射方向與被測(cè)表面法向的夾角較小,即被測(cè)表面點(diǎn)云的z坐標(biāo)值分布在一個(gè)較小范圍內(nèi)??蓪Ⅻc(diǎn)云的z坐標(biāo)值進(jìn)行二值化處理,即將空間三維點(diǎn)云投影到XY平面上。通過二值化處理,便將三維空間中的點(diǎn)云配準(zhǔn)問題轉(zhuǎn)化為二維平面的點(diǎn)云配準(zhǔn)問題,降低了匹配復(fù)雜度,提高了計(jì)算效率。二值化處理方式如下:
(3)
以工件1和工件2為例,二值化后的點(diǎn)云如圖4所示。
模板匹配是一種最原始、最基本的模式識(shí)別方法,研究某一特定對(duì)象物的圖案在圖像中的位置,進(jìn)而識(shí)別對(duì)象物,這就是一個(gè)匹配問題[13]。它是圖像處理中最基本、最常用的匹配方法。模板就是一副已知的小圖像,而模板匹配就是在一副大圖像中搜尋目標(biāo),已知該圖中有要找的目標(biāo),且該目標(biāo)同模板有相同的尺寸、方向和圖像元素,通過一定的算法可以在圖中找到目標(biāo),確定其坐標(biāo)位置[14]。對(duì)z坐標(biāo)值進(jìn)行二值化處理后的點(diǎn)云,可以看作是一幅二值化后的平面圖像,應(yīng)用模板匹配的方法可以找出孔的位置。
進(jìn)行模板匹配之前,首先要構(gòu)造孔的模板。在本例中,孔的形狀為圓形,故構(gòu)造的模板為外方內(nèi)圓的形狀,由m行n列的點(diǎn)構(gòu)成,即模板尺寸為(m,n)。模板的自適應(yīng)構(gòu)造過程,即為確定模板尺寸(m,n)并構(gòu)造出內(nèi)圓外方形狀的點(diǎn)云模板的過程。
圖5為2D激光輪廓儀測(cè)量范圍示意圖,2D激光輪廓儀的激光光束為發(fā)散式,發(fā)散角約為12.9°,由于激光線上采集點(diǎn)的數(shù)量為固定值row,測(cè)量距離DL越大,測(cè)量范圍WL也越大,相鄰兩個(gè)采集點(diǎn)的間隔Δy也相應(yīng)增大,即采集點(diǎn)越稀疏。對(duì)于同一尺寸的孔(本文例子中孔的直徑為D=4 mm),測(cè)量距離DL越大,孔所包含的采集點(diǎn)的數(shù)量越少,孔模板的尺寸(m,n)也越小,在執(zhí)行模板匹配之前,需要根據(jù)實(shí)測(cè)值計(jì)算出(m,n)。例如,在執(zhí)行孔檢測(cè)時(shí),本文選用的輪廓儀Z方向量程為53 mm~78 mm,為使被測(cè)表面盡可能地落入測(cè)量量程內(nèi),將測(cè)量距離DL設(shè)定為65 mm。但由于存在工件安裝誤差和機(jī)器人運(yùn)動(dòng)誤差,2D激光輪廓儀無法準(zhǔn)確運(yùn)動(dòng)到距離被測(cè)表面65 mm的位置,測(cè)量距離難免存在一偏差,因此待測(cè)孔所包含的采集點(diǎn)數(shù)量也會(huì)相應(yīng)地發(fā)生變化。為了構(gòu)造出與基準(zhǔn)孔實(shí)際尺寸相匹配的模板,需要知道X和Y方向上相鄰采集點(diǎn)的距離Δx和Δy,其計(jì)算方法如下:
X方向:Δx=(X0L-X0R)/(col-1),
(4)
Y方向:Δy=(Y0U-Y0D)/(row-1)。
(5)
其中,X0L為第一列點(diǎn)云的x值;X0R為最后一列點(diǎn)云的x值;Y0U為第一行點(diǎn)云的非零y值的平均值;Y0D為最后一行點(diǎn)云的非零y值的平均值;col為點(diǎn)云的列數(shù);row為點(diǎn)云的行數(shù)。則待測(cè)孔包含的點(diǎn)云的行數(shù)Hrow和列數(shù)Hcol分別為:
Hrow=D/Δy,
(6)
Hcol=D/Δx。
(7)
其中D為待測(cè)孔直徑。
所構(gòu)造的模板為外方內(nèi)圓的形狀,外邊方形的尺寸略大于內(nèi)圓的尺寸,外邊方形的尺寸(m,n)即為模板的尺寸。模板的尺寸在保證能囊括孔的前提下,應(yīng)盡可能的小,若模板尺寸設(shè)定過大,測(cè)量曲面上的孔時(shí),與之匹配位置的曲面已經(jīng)不能近似作為平面處理,后續(xù)進(jìn)行法向計(jì)算時(shí)精度將降低。本文根據(jù)點(diǎn)云的密度,將模板尺寸設(shè)定為:
m=Hrow+6,
(8)
n=Hcol+2。
(9)
為方便處理,將模板的尺寸調(diào)整為奇數(shù),調(diào)整方法如下:
(10)
(11)
當(dāng)被測(cè)表面為平面,且與激光發(fā)射方向垂直時(shí),被測(cè)表面上的圓孔經(jīng)過z坐標(biāo)二值化后仍然是圓形;而當(dāng)被測(cè)表面為平面但與激光發(fā)射方向不垂直時(shí),或者被測(cè)表面為曲面時(shí),被測(cè)表面上的圓孔經(jīng)過z坐標(biāo)二值化后可能變?yōu)闄E圓或者不規(guī)則的橢圓,如圖6所示。為了構(gòu)造與之匹配的孔模板,需要先計(jì)算出被測(cè)表面的法向,根據(jù)該法向數(shù)值在三維空間中構(gòu)造孔模板,該孔模板與被測(cè)表面平行。構(gòu)造好三維孔模板后,再將孔模板進(jìn)行z坐標(biāo)二值化處理,轉(zhuǎn)化為二維的孔模板,此時(shí)的孔模板便能夠適應(yīng)傾斜平面(傾斜角度小于60°)和曲面(曲率半徑至少為待測(cè)孔半徑的10倍,且待測(cè)孔法向與激光的夾角小于45°)的測(cè)量要求??紤]到實(shí)際應(yīng)用中,輪廓儀激光束與被測(cè)面法向的最大夾角一般要求小于45°,本文的算法已經(jīng)可以滿足實(shí)際需求。
采用最小二乘法或者SVD法擬合平面即可求出被測(cè)表面的法向。由于參與擬合點(diǎn)云的數(shù)量較多,導(dǎo)致計(jì)算量偏大,需要先對(duì)點(diǎn)云進(jìn)行降采樣。將點(diǎn)云沿X、Y方向均分為10等分,利用拉丁超立方采樣,既可以保證采樣的隨機(jī)性,又能避免采樣點(diǎn)過于聚集的問題。采樣完成后,利用采樣點(diǎn)擬合出平面并計(jì)算該平面的單位法向N(a0,b0,c0),并構(gòu)造m×n三維平面狀點(diǎn)云作為模板,該模板的法向?yàn)镹(a0,b0,c0)。然后去除離模板中心點(diǎn)的距離小于基準(zhǔn)孔半徑的點(diǎn),最后將該三維孔模板進(jìn)行z坐標(biāo)二值化處理,轉(zhuǎn)化為二維的孔模板。以工件2為例分別掃描水平平面、傾斜平面和曲面上的一個(gè)待測(cè)孔,根據(jù)上述方法自適應(yīng)構(gòu)造的待測(cè)孔的模板T(m,n)如圖7所示,模板尺寸(m,n)分別為(59,17)、(45,17)和(53,17)。可見,在不同傾斜表面上相同尺寸和形狀的待測(cè)孔,構(gòu)造出來的孔模板的尺寸和形狀并不相同,待測(cè)孔所處表面的斜度越大,孔模板的尺寸越小,且孔的形狀越扁平。
其中E(i,j)最小值處即為匹配到的目標(biāo)孔的位置。模板越大,匹配速度越慢;否則,匹配速度越快。以工件2為例,待測(cè)孔的匹配結(jié)果如圖8b所示,匹配率K越高,說明匹配的可信度越高。模板匹配的匹配率K:
(13)
由于待測(cè)孔邊緣和表面難免存在一些缺陷,掃描得到的待測(cè)孔點(diǎn)云不可能與模板100%匹配,通常需要設(shè)定一個(gè)模板匹配率閾值Kt。在執(zhí)行模板匹配過程中,首先找出匹配率K最高的位置,然后判斷K是否大于所設(shè)定的模板匹配率閾值Kt,只有滿足K>Kt時(shí)才認(rèn)為檢測(cè)到了孔特征。在實(shí)際掃描測(cè)量時(shí),如果待測(cè)孔的表面質(zhì)量很穩(wěn)定,可以將閾值Kt設(shè)定為90%以上,從而降低誤識(shí)別的可能性。但在本例中,工件2的表面點(diǎn)云存在大量瑕疵,孔特征匹配率K≈60%~80%,非孔特征匹配率K≈0%~65%,孔特征與非孔特征的界線模糊,若模板匹配率閾值Kt設(shè)置過大,則孔特征容易被誤判為非孔特征;否則,則容易將非孔特征誤判為孔特征。以工件2為例,將Kt設(shè)定為70%時(shí),孔特征的誤判率高達(dá)35%,因此無法單純地通過設(shè)定模板匹配率閾值的方法判斷待測(cè)區(qū)域是否有孔特征。
分析孔特征與非孔特征的點(diǎn)云特點(diǎn)可以發(fā)現(xiàn),孔特征的點(diǎn)云在中心圓形區(qū)域內(nèi)為空集,而非孔特征的點(diǎn)云在中心圓形區(qū)域內(nèi)存在采集點(diǎn),將待測(cè)孔模板T(m,n)的中心圓形區(qū)域設(shè)定為感興趣區(qū)域(ROI),計(jì)算ROI的匹配率Kr。以工件2為例,孔特征的ROI匹配率Kr≈90%~100%,非孔特征的ROI匹配率Kr≈0%~45%,孔特征和非孔特征的ROI匹配率Kr有明顯的區(qū)別。通過設(shè)定ROI匹配率的閾值Krt可有效地判別孔特征,將模板匹配率閾值Kt與ROI匹配率的閾值Krt同時(shí)作為孔特征的判別條件,可準(zhǔn)確地檢測(cè)出孔特征。以工件2為例,Kt設(shè)定為60%,Krt設(shè)定為85%,可將孔特征的誤判率降低到1%以下。
模板匹配只是找出了待測(cè)孔在被測(cè)面點(diǎn)云上所處的序列位置(i,j),待測(cè)孔的具體空間坐標(biāo)值C(xC,yC,zC)還是個(gè)未知數(shù)。匹配位置下的子圖Sij(m,n)中心位置的坐標(biāo)值即為孔中心的坐標(biāo)值,但由于待測(cè)孔內(nèi)部不存在采集點(diǎn)數(shù)據(jù),即匹配位置(i,j)處并不存在點(diǎn)云,無法直接讀出(i,j)處的坐標(biāo),需通過子圖Sij(m,n)間接計(jì)算出圓心的坐標(biāo),將子圖Sij(m,n)上的所有點(diǎn)的坐標(biāo)值的平均值作為圓心的坐標(biāo)C(xC,yC,zC):
(14)
式中N為子圖Sij(m,n)包含的有效采集點(diǎn)的數(shù)量。
當(dāng)遇到不理想的網(wǎng)格狀點(diǎn)云時(shí),匹配位置下的子圖Sij(m,n)存在點(diǎn)云殘缺的情況,按式(14)計(jì)算出來的圓心坐標(biāo)將會(huì)向點(diǎn)云較多的方向偏移,導(dǎo)致較大的測(cè)量誤差,因此,需要對(duì)該方法作進(jìn)一步優(yōu)化。如圖9所示,首先以子圖Sij(m,n)的中心為原點(diǎn)建立一個(gè)坐標(biāo)系OC-XCYCZC,方向與點(diǎn)云的坐標(biāo)系方向一致;接著以XC軸為對(duì)稱軸對(duì)子圖Sij(m,n)中的點(diǎn)進(jìn)行篩選,只有關(guān)于XC軸對(duì)稱的一對(duì)點(diǎn)能夠保留,利用該條件得到新的子圖S′ij(m,n);然后以YC軸為對(duì)稱軸對(duì)子圖S′ij(m,n)中的點(diǎn)進(jìn)行篩選,只有關(guān)于YC軸對(duì)稱的點(diǎn)云對(duì)能夠保留,利用該條件得到新的子圖S″ij(m,n);最后再利用式(14)計(jì)算出圓心坐標(biāo)C(xC,yC,zC)。經(jīng)過篩選后,子圖S″ij(m,n)中的點(diǎn)云呈中心對(duì)稱分布,對(duì)稱中心即為圓心,因此可以利用式(14)準(zhǔn)確計(jì)算出圓心坐標(biāo)。
被測(cè)表面可能為平面,也可能為曲面,但由于孔尺寸較小,曲面曲率較小,可將孔鄰域的曲面近似看作平面。采用SVD分解可利用子圖Sij(m,n)上的點(diǎn)擬合出一個(gè)平面,協(xié)方差矩陣的SVD變換中,最小奇異值對(duì)應(yīng)的奇異向量就是該平面的單位法向向量M(a,b,c)。以該平面的單位法向向量近似代替待測(cè)孔的法矢。
綜上所述,待測(cè)孔在2D激光輪廓儀坐標(biāo)系下的位姿為P(xC,yC,zC,a,b,c),以工件2為例,計(jì)算得到的待測(cè)孔位姿如圖10所示。
為驗(yàn)證本文提出的孔位與法矢檢測(cè)算法的可行性和測(cè)量精度,搭建了孔位檢測(cè)實(shí)驗(yàn)平臺(tái),如圖11所示。平臺(tái)由2D激光輪廓儀(也稱為外輪廓傳感器)和西門子伺服電機(jī)等組成,其中,2D激光輪廓儀的型號(hào)為米銥scanCONTROL 2900-25,激光線可采集320個(gè)點(diǎn)。西門子伺服電機(jī)與精密絲杠組成的直線運(yùn)動(dòng)機(jī)構(gòu),其定位精度可達(dá)5 μm,因此,在本實(shí)驗(yàn)中,運(yùn)動(dòng)機(jī)構(gòu)的精度對(duì)孔位測(cè)量結(jié)果的影響可以忽略不計(jì)。然而,伺服電機(jī)編碼器的采樣周期直接影響X方向上的孔位測(cè)量精度,采樣周期越短,點(diǎn)云越密集,相應(yīng)的測(cè)量精度越高。但隨著點(diǎn)云數(shù)量的增多,計(jì)算量將成倍增加,導(dǎo)致計(jì)算效率下降,因此在實(shí)際應(yīng)用時(shí),應(yīng)根據(jù)測(cè)量精度需求合理設(shè)置采樣周期。實(shí)驗(yàn)中,設(shè)置伺服電機(jī)的速度V=100 mm/min,2D激光輪廓儀的采樣周期設(shè)置為T=0.15 s,每間隔0.15 s同時(shí)采集2D激光輪廓儀的數(shù)值和伺服電機(jī)編碼器的數(shù)值,通過編碼器的數(shù)值可計(jì)算得到X方向的位移,最終可得到3個(gè)row×col的矩陣X0、Y0、Z0(其中row為矩陣行數(shù),即每條線輪廓采集的點(diǎn)數(shù);col為矩陣列數(shù),即采樣次數(shù)),分別記錄點(diǎn)云在X、Y、Z三個(gè)方向的位置。
在工件2上鉆出2列10行共20個(gè)孔,每行的2個(gè)孔為一組,孔的直徑為4 mm,孔間距為10 mm,如圖12所示。首先用中心距游標(biāo)卡尺測(cè)量出每一組2個(gè)孔的中心距L。接著將工件2固定在實(shí)驗(yàn)平臺(tái)上,分別對(duì)每一行孔進(jìn)行掃描,可得到10組點(diǎn)云數(shù)據(jù)Ai(i=1,2,…,10)。然后在工件2的表面噴涂顯影劑(噴涂顯影劑可有效改善工件表面光澤,掃描得到的點(diǎn)云完整無瑕疵),并分別對(duì)每一行孔進(jìn)行掃描,可得到10組點(diǎn)云數(shù)據(jù)Bi(i=1,2,…,10)。最后,采用傳統(tǒng)的基于邊緣檢測(cè)的孔位檢測(cè)算法和本文提出的基于模板匹配的孔位檢測(cè)算法,對(duì)掃描得到的點(diǎn)云進(jìn)行孔位檢測(cè)并計(jì)算2個(gè)孔的中心距。實(shí)驗(yàn)結(jié)果如表1所示,其中L為用中心距游標(biāo)卡尺測(cè)量出的孔中心距,L1為采用傳統(tǒng)的基于邊緣檢測(cè)的孔位檢測(cè)算法測(cè)量的孔中心距,L2為采用本文提出的基于模板匹配的孔位檢測(cè)算法測(cè)量的孔中心距。L1、L2與L的差值即為孔位檢測(cè)誤差,如圖13所示,其中ΔLH1為噴涂顯影劑后采用傳統(tǒng)的基于邊緣檢測(cè)的孔位檢測(cè)算法的檢測(cè)誤差,ΔLQ2為噴涂顯影劑前采用基于模板匹配的孔位檢測(cè)算法的檢測(cè)誤差,ΔLH2為噴涂顯影劑后采用基于模板匹配的孔位檢測(cè)算法的檢測(cè)誤差,各檢測(cè)誤差的流計(jì)數(shù)據(jù)如表2所示。
表1 孔中心距的測(cè)量結(jié)果
表2 兩種孔位檢測(cè)算法的測(cè)量結(jié)果統(tǒng)計(jì)數(shù)據(jù)
噴涂顯影劑前后掃描得到的點(diǎn)云如圖14所示??梢钥闯觯瑖娡匡@影劑前,工件2表面掃描得到的點(diǎn)云存在大量缺陷,整體呈現(xiàn)網(wǎng)格狀。傳統(tǒng)邊緣檢測(cè)算法利用canny算子進(jìn)行邊緣檢測(cè),并采用霍夫變換找出圓輪廓。對(duì)于網(wǎng)格狀的點(diǎn)云,由于邊緣檢測(cè)檢出了大量的網(wǎng)格輪廓邊緣,霍夫變換找出的圓心位置已完全偏離了實(shí)際位置,如圖15a所示,因此該算法不再適用,中心距的測(cè)量實(shí)驗(yàn)結(jié)果也沒有實(shí)際的意義。而噴涂顯影劑后,點(diǎn)云較理想,基于邊緣檢測(cè)的孔位檢測(cè)算法可以識(shí)別出孔邊緣從而進(jìn)行孔位計(jì)算,如圖15b所示。
在飛機(jī)部件自動(dòng)鉆鉚中,基準(zhǔn)孔檢測(cè)精度要求在±0.5mm以內(nèi),從實(shí)驗(yàn)結(jié)果可以得到如下信息:
(1)通過比較表1中兩種算法對(duì)于噴涂顯影劑前后的孔位檢測(cè)成功率,可以看出,噴涂顯影劑前,基于邊緣檢測(cè)的孔位檢測(cè)算法對(duì)于孔的識(shí)別成功率為0%,說明基于邊緣檢測(cè)的孔位檢測(cè)算法只適用于很理想的點(diǎn)云,魯棒性較差;而本文提出的基于模板匹配的孔位檢測(cè)算法在噴涂顯影劑前后的檢測(cè)成功率均為100%,說明本文的算法具有較強(qiáng)的魯棒性。
(2)通過比較噴涂顯影劑后兩種孔位檢測(cè)算法的測(cè)量誤差ΔLH1和ΔLH2,可以看出兩種算法的測(cè)量誤差接近,證明了對(duì)于理想的點(diǎn)云,采用基于模板匹配的算法與采用基于邊緣檢測(cè)的算法測(cè)量精度相當(dāng),且均滿足飛機(jī)部件裝配精度要求。
(3)通過比較噴涂顯影劑前后采用基于模板匹配算法的測(cè)量誤差ΔLQ2和ΔLH2,可以看出盡管未噴涂顯影劑時(shí)測(cè)量精度有所降低,但依然可以滿足飛機(jī)部件的裝配精度要求,意味著采用本文提出的基于模板匹配的孔位檢測(cè)算法之后,可以省去噴涂顯影劑這個(gè)工藝步驟,進(jìn)而提高了飛機(jī)裝配的效率。
針對(duì)高反光金屬、強(qiáng)吸光復(fù)合材料等不理想表面的孔位與法矢檢測(cè)困難的問題,本文提出一種基于模板匹配的孔位與法矢檢測(cè)算法,將圖像處理中的模板匹配方法應(yīng)用于三維點(diǎn)云中孔位與法矢的檢測(cè),魯棒性較強(qiáng)。經(jīng)實(shí)驗(yàn)驗(yàn)證,算法可有效檢測(cè)出不理想表面的孔位和法矢,對(duì)于不理想表面的孔位檢測(cè)精度達(dá)0.12 mm,滿足飛機(jī)部件裝配要求;另外,采用本文提出的基于模板匹配的孔位與法矢檢測(cè)算法之后,可以省去噴涂顯影劑這個(gè)工藝步驟,進(jìn)而縮短了產(chǎn)品的生產(chǎn)周期,在產(chǎn)品的自動(dòng)化制造裝配過程中具有良好的應(yīng)用前景。未來將針對(duì)復(fù)雜工況下的孔位識(shí)別進(jìn)行研究,如識(shí)別的孔為沉頭孔或抽芯鉚釘,擴(kuò)展自動(dòng)鉆鉚系統(tǒng)孔位識(shí)別的應(yīng)用場(chǎng)景,提升系統(tǒng)的魯棒性和穩(wěn)定性。
計(jì)算機(jī)集成制造系統(tǒng)2021年12期