王紅平,劉鑫,趙世辰,王宇,王磊
(長春理工大學 機電工程學院,長春 130022)
隨著工業(yè)領域新興技術的發(fā)展,結(jié)構光相機的精度和實用性不斷提升,已廣泛應用于物體形狀測量[1-3]、逆向工程等領域,其中基于點云的曲面擬合是逆向工程的一個重要研究分支。近年來,許多專家學者利用結(jié)構光相機對物體進行三維測量,并將三維點云數(shù)據(jù)擬合方法應用于物體檢測[4]和參數(shù)估計[5]。锪孔在機械結(jié)構中起著重要的作用,特別在飛機裝配行業(yè)中,如飛機骨架與蒙皮之間普遍采用鉚接[6],孔徑尺寸、锪窩深度和法向偏差角度是否滿足制孔質(zhì)量要求是其連接精度和結(jié)構強度的重要保證。因此,劉華等[7]針對飛機蒙皮裝配孔研制了一種集鉆銑一體的多功能末端執(zhí)行器,包括孔位補償、法向量調(diào)整和锪窩深度控制等關鍵技術,但未針對檢孔提出一套完整的方案;SCHNABEL R 等[8]研究了一種高效率的隨機抽樣一致算法(Random Sample Consensus,RANSAC)用于全局曲面擬合,包括對空間圓錐檢測,具有很強的魯棒性;王醒策等[9]改進了移動最小二乘算法實現(xiàn)局部曲面擬合,找到曲面準確法向,實現(xiàn)更復雜的細節(jié),具有更高精度。上述研究中,其點云數(shù)據(jù)均是完整的,未考慮實際工況下因工件高反光、遮擋等因素造成點云缺失的情況。此外,畢運波等[10]利用雙目視覺系統(tǒng)建立了沉頭孔平行投影數(shù)學模型,將三維空間測量問題轉(zhuǎn)換為二維平面測量問題,完成锪孔垂直度檢測。同時撒繼銘等[11]提出了一種利用圓曲線和圓錐曲面擬合方法,完成锪孔內(nèi)外孔徑和法向偏差角檢測,該算法中锪孔法向偏差角測量利用圓錐表面任意三點其切平面必交于一點原理,以該點為圓錐頂點,建立圓錐數(shù)學模型,計算圓錐軸線的方向與外孔平面的法向量夾角。計算過程中利用圓錐表面任意三點法向量來計算其切平面,實際工程中點的法向量極易受到周圍噪聲影響,特別在锪孔部分缺失點云的情況下點的法向量檢測更加困難。因此對锪孔法向偏差角檢測精度具有不確定性。
綜上所述,大多數(shù)現(xiàn)有的曲面擬合方法在擬合完整的點云數(shù)據(jù)時表現(xiàn)良好。然而在工業(yè)環(huán)境中,由于場景的復雜性,工件在掃描時出現(xiàn)遮擋、高反光,且受到噪聲的影響,導致工件原始點云數(shù)據(jù)部分丟失,參數(shù)檢測出現(xiàn)較大偏差;此外,復雜曲面上锪孔法向偏差角檢測仍具有挑戰(zhàn)性。針對上述問題,本文提出了一種基于正交投影法建立空間圓錐參數(shù)模型實現(xiàn)锪孔工件檢測的方法,該方法采用了兩種優(yōu)化模型,解決了實際工況下點云數(shù)據(jù)缺失和曲面锪孔法向偏差角測量誤差大等問題,提高了檢測精度。具體方案是:1)對點云進行雙邊濾波處理,以減少離群點和噪聲的影響;2)利用RANSAC 算法[12]分割上表面,根據(jù)邊緣點云集中分布一側(cè)特點提取上下邊緣并擬合所在平面參數(shù),再利用正交投影后錐角在平面XOY或平面XOZ滿足傅立葉變換函數(shù)關系,計算出锪孔的錐角和錐點,建立精確的空間圓錐數(shù)學模型;3)通過锪孔上下邊緣平面與空間圓錐數(shù)學模型進行數(shù)據(jù)融合,獲取待檢測的锪孔的參數(shù),當空間圓錐軸線與Z軸出現(xiàn)偏差角時,其任意平面錐角變化曲線|F(x)max-F(x)min|與法向偏差角度滿足Power 函數(shù),從而大大提升锪孔法向偏差角度測量精度。
由于散亂點云在數(shù)據(jù)存儲結(jié)構中每個點是無規(guī)律排布的,在這樣的數(shù)據(jù)結(jié)構中查找每個點的K近鄰必須遍歷所有點,因此必須建立點云數(shù)據(jù)的空間拓撲結(jié)構。本文采用KD 樹法建立散亂點云之間數(shù)據(jù)結(jié)構,從而查詢每個點Pi與其最近K鄰域點集Ni=(i=0,1,…,k-1)。根據(jù)锪孔邊緣點云分布情況,通過點的K鄰域幾何分布來判斷該點是否為邊緣點。若某一點為邊緣點,則其K鄰域點分布偏向某一側(cè)如圖1(a)所示;若某一點不是邊緣點,則K鄰域點均勻的分布在點Pi周圍如圖1(b)所示。
圖1 锪孔邊緣點分布Fig.1 Distribution of boundary points
以Pi和K鄰域點集Ni為樣本點,利用最小二乘法擬合局部平面Si,Si滿足
平面Si法向量n(A,B,C),K鄰域樣本點Ni投影到Si平面
從式(2)可知點集Ni投影平面Si后,其投影后點集N'i(i=0,1,…,k-1)。構建局部二維平面坐標系,取平面內(nèi)任意一點,使得,在局部平面Si坐標系滿足
在Si平面內(nèi)為X軸,從式(3)得到Y(jié)軸,Pi為坐標原點。則平面Si內(nèi)相鄰向量之間夾角θi滿足
由式(4),計算Si平面內(nèi)相鄰向量之間夾角最大值θmax
θmax與設定閾值120°比較,當θmax<120°時,提取上下邊緣點。
實際工程中由于工件材料問題,不同材料工件,激光在锪孔下邊緣發(fā)生不同程度的反射和衍射現(xiàn)象,導致激光過于集中,或者發(fā)生偏轉(zhuǎn)。因此對其下邊緣點云數(shù)據(jù)預處理。對已提取下邊緣點計算Z軸方向點的平均值Zmean和Zstd,即
當Zi-Zmean<Zstd時,保存其下邊緣點集。
锪孔上下邊緣平面擬合步驟:1)利用雙邊濾波[13]對原始點云進行降噪處理;2)根據(jù)工件高度確定邊緣點Pi范圍,查詢該范圍內(nèi)所有鄰域點集Ni;3)對樣本點Ni數(shù)據(jù)利用最小二乘法擬合平面,并且建立局部空間坐標系;4)在局部平面內(nèi)計算各點向量之間夾角,分割出來上下邊緣點,并且對分割后下邊緣點云數(shù)據(jù)進行預處理;5)利用RANSAC 擬合上下邊緣所在的平面得到其精確的平面參數(shù)。
锪窩曲面可視為圓錐曲面一部分,本文提出建立空間圓錐數(shù)學模型,代替待檢測的锪孔曲面,完成锪孔參數(shù)檢測??臻g圓錐數(shù)學模型如圖2 所示。
圖2 空間圓錐示意圖Fig.2 Schematic diagram of space cone
圖2 所示空間圓錐的參數(shù)包括圓錐的錐角θ、圓錐軸線Le、頂點P0。根據(jù)錐面的幾何特征,當圓錐錐點P0(x0,y0,z0)、錐角θ、軸線Le方向確定時,可以確定空間唯一圓錐方程。圖3 為經(jīng)過RANSAC 分割锪孔上表面和锪孔下邊緣處理之后的得到新的點云集
圖3 锪孔點云預處理過程Fig.3 Countersinking point cloud preprocessing process
在實驗過程中,以多激光傳感器為標定方案[14],使相機垂直工件表面進行拍攝。以結(jié)構光測量系統(tǒng)中坐標系為基準,建立點云空間直角坐標系,以便將預處理后點云正交投影到平面XOZ和平面YOZ。投影到平面點滿足
由式(8),投影到平面XOZ的點集,投影到平面YOZ的點集
如 圖4 所 示,根 據(jù)RANSAC 算法擬合平面XOZ和平面YOZ內(nèi)直線L1、L2、L3、L4,其方向向量分別為a1,b1,a2,b2,設圓錐錐角θi=(θi1,θi2),則錐角θi滿足
圖4 正交投影構建空間圓錐示意圖Fig.4 Schematic diagram of constructing a space cone by orthogonal projection
由式(9),可得到空間圓錐錐角參數(shù)θi。
表1 所示為锪孔點云通過正交投影法投影到XOZ平面的錐角邊緣點數(shù)與異常點數(shù)對比。其異常點主要來源于工件高反光造成的點云數(shù)據(jù)缺失,在提取邊緣點時誤將內(nèi)部點提取出來。由圖5 比較RANSAC 和移動最小二乘算法擬合錐角參數(shù)可知,移動最小二乘擬合算法在完整的點云數(shù)據(jù)上表現(xiàn)良好,但針對異常點云值時這種方法會造成很大誤差和較低的魯棒性,RANSAC 算法則表現(xiàn)穩(wěn)健,從包括“異常值”的一組觀測數(shù)據(jù)中迭代估計已知數(shù)學模型參數(shù),消除異常點干擾,因此本文采用RANSAC 算法。
圖5 圓錐錐角擬合方法對比Fig.5 Comparison of cone angle fitting methods
表1 錐角邊緣點數(shù)分布Table 1 Point distribution of cone angle boundary
本文提出的建立圓錐模型進行锪孔參數(shù)檢測的方法,對投影后檢測錐角的精度要求較高。因此提出一種數(shù)學模型(傅立葉級數(shù))對已獲得圓錐錐角進行參數(shù)優(yōu)化。由于空間圓錐在平面XOZ和平面YOZ上投影,其錐角投影周期為π 符合傅立葉級數(shù)特性,因此在平面XOZ或平面YOZ投影后圓錐錐角滿足數(shù)學模型
圖6 為傅立葉級數(shù)曲線仿真結(jié)果,圖中表示空間圓錐參數(shù)為錐角90°,法向偏差角3°,擬合后的誤差平方和
圖6 锪孔錐角擬合示意圖Fig.6 Schematic diagram of plane cone angle fitting
針對曲面锪孔上表面參數(shù)方程較為復雜并且計算困難等問題,本文對此提出Power 數(shù)學模型,檢測锪孔的法向偏差角度。當圓錐軸線與Z軸產(chǎn)生不同的偏差角時,基于2.1 節(jié)錐角在平面XOZ或平面YOZ面投影后的變化曲線,建立某一投影平面內(nèi)θdif(θdif=|max(f(x))-min(f(x))|)與法向偏差角的關系,可得到平面XOZ或平面YOZ投影后圓錐角度的極值差θdif與法向偏差角度θstd關系(如圖7),可表示為
圖7 錐角極值差與法向偏差角曲線Fig.7 Normal deviation angle curve
擬合后的相關系數(shù)R2為1,(R2可衡量回歸方程整體擬合度),殘差范數(shù)為5.1×10-4。
由式(12)可計算出軸線Le方向向量s,所以Le方程為,同理:圓錐旋轉(zhuǎn)曲面母線F(x,y,z)=0,在母線F(x,y,z)任取一點M1=(x1,y1,z1),則過M1的緯圓上任意一點P(x,y,z),滿足
結(jié)合圓錐母線方程F(x1,y1,z1)=0,可得空間圓錐旋轉(zhuǎn)曲面。
本文锪孔曲面擬合算法步驟為
1)對原始點云進行預處理,提取锪孔上下邊緣,擬合上下平面參數(shù)。
2)利用正交投影法得到空間圓錐模型參數(shù):錐點P0,錐角θ,锪孔法向量偏差角度,并確定空間唯一圓錐方程。
3)通過锪孔上下邊緣平面與空間圓錐方程數(shù)據(jù)融合,最終完成锪孔參數(shù)檢測。
檢測系統(tǒng)主要由機器人系統(tǒng)、視覺檢測系統(tǒng)和上位機等組成,其中機器人系統(tǒng)、視覺檢測系統(tǒng)與上位機之間通過TCP/IP 協(xié)議進行通訊。實驗平臺搭建如圖8 所示,由fanuc-m20ia 六軸機器人、計算機、結(jié)構光相機和四激光傳感器等組成,視覺檢測裝置通過法蘭掛載到機器人末端。使用2.9Hz CPU 和8GRAM 內(nèi)存筆記本電腦,通過matlab R2018b 對點云進行處理。實驗分為四組(如圖9):a)標準锪孔;b)異面锪孔;c)高反光锪孔;d)曲面锪孔。圖10 為不同工況下分割上平面后的锪孔的點云圖。
圖8 實驗系統(tǒng)Fig.8 Experimental system diagram
圖9 不同工況下的锪孔Fig.9 Counterbore under different situations
圖10 不同工況下分割上平面后的锪孔的點云圖Fig.10 Point cloud after segmentation
本文所提方法對下邊緣點進行預處理是至關重要的,下邊緣處理直接影響锪孔內(nèi)孔直徑參數(shù)檢測。將獲取的下邊緣點云數(shù)據(jù)集,經(jīng)過Zi-Zmean<Zstd預處理后導入Matlab 軟件中,其中X,Y坐標表示下邊緣位置信息,顏色表示預處理后的點集在下邊緣平面法線方向偏移量。如圖11 所示。
如圖11所示,根據(jù)下邊緣平面度可知,其負法向偏差最大為-0.002 1 mm,正法向偏差最大為0.061 3 mm,平均值為0.026 4 mm,法向方差為0.000 5 mm。下邊緣平面度證明了下邊緣點預處理能夠使其絕大部分點在同一空間平面上,保證了锪孔內(nèi)孔徑參數(shù)檢測精度。
圖11 下邊緣平面度Fig.11 Flatness of lower edge
建立锪孔錐角參數(shù)優(yōu)化模型,根據(jù)正交投影法對3.1 節(jié)提到四種锪孔進行檢測,以Z軸為旋轉(zhuǎn)軸,周期為[0,π],步長為π18,在平面XOZ上進行投影。錐角在平面XOZ投影后擬合曲線如圖12 所示,其錐角F(θa)=89.901°,θdif=0.444°、F(θb)=89.949°,θdif=0°、F(θc)=89.903°,θdif=0.164°、F(θd)=89.951°,θdif=0.072°。由于锪孔法向偏差角度θstd與θdif(θdif=|max(f(x))-min(f(x))|)滿足θ(x)std=7.518(θdif)0.496,因此锪孔法向偏移量分別為5.025°,0°,3.066°,2.038°。
圖12 錐角參數(shù)曲線Fig.12 Cone angle parameter curve
通過與機器視覺、移動最小二乘曲面擬合算法的比較對本文方法進行了驗證。表2 是不同方法的锪孔內(nèi)孔徑、錐角、法相偏差角和锪孔深度參數(shù)提取結(jié)果。
已知本文檢測的四種锪孔,其內(nèi)孔直徑的真實值分別為10.011 mm、5.996 mm、5.990 mm 和6.010 mm,從表2 可得,機器視覺內(nèi)孔直徑擬合的最大誤差為0.123 mm,移動最小二乘算法擬合的內(nèi)孔直徑最大誤差為0.246 mm,上述兩種方法內(nèi)孔的最大誤差均來自孔3 工件高反光的影響。本文方法獲得的內(nèi)孔直徑最大誤差為0.023 mm,相比于機器視覺和移動最小二乘算法在精度上分別提高了81.3%和90.65%,并且本文方法檢測得到的锪窩深度最大誤差與上述兩種方法相比,也具有較高的魯棒性。此外,上述四種锪孔錐角真值分別為89.973°、89.806°、90.022°、89.879°,從表2 可得,機器視覺锪孔錐角檢測的最大誤差為0.521°,移動最小二乘算法锪孔錐角檢測的最大誤差為0.604°。本文方法檢測得出最大誤差為0.121°,相比于移動最小二乘算法和機器視覺方法分別降低了79.96%、76.77%。锪孔法向偏差角真實值為0.003°、2.926°、4.904°、2.150°。在缺失點云情況下,本文方法得出的四種锪孔法向偏差角最大擬合誤差不超過0.142°,相比機器視覺和移動最小二乘算法誤差降低了71.9%和70.6%。因此,上述實驗驗證了本文所提方法具有更高的檢測精度。
表2 本文方法與其他方法對比Table 2 The comparison between the method in this paper and other methods
本文對易發(fā)生高反光鋁合金材料上的锪孔進行檢測。圖13(a)為結(jié)構光相機檢測工件流程,13(b)為三坐標測量儀檢測過程,圖13(c)平面锪孔加工樣件,板材工件尺寸為200 mm×200 mm×50 mm,由鋁合金5 052 制成。圖13(d)為曲面锪孔加工樣件,板件尺寸為200 mm×140 mm×h(10<h<5)mm,由鋁合金6 061制成。本實驗分為兩步:第一步,利用三坐標測量儀、窩量規(guī)和千分尺對平面和曲面上的锪孔的法向偏差角度、深度和孔徑進行測量;第二步利用結(jié)構光相機對工件測量。
圖13 本文方法、三坐標測量儀檢測流程和測量工件Fig.13 3D vision and 3D inspection process and the workpiece
表3 為平面锪孔樣件真實值與本文方法檢測結(jié)果對比。在四種不同類型的平面锪孔中內(nèi)孔直徑誤差最大為-0.023 mm,深度最大誤差為-0.022 mm,法向偏差角度最大誤差為-0.13°。由此得出,本文方法即使在易發(fā)生高反光工件上,依然有較高的檢測精度。
表3 平面锪孔檢測Table 3 Plain counterbore inspection
圖14 為表4 中曲面法向偏差角度測量結(jié)果分析圖,其最大誤差為0.136°,進一步驗證了本文所提方法的準確性和穩(wěn)定性。值得一提的是,從本文方法原理出發(fā),锪孔的法向偏差角θstd是由锪孔錐角在空間坐標平面XOZ/YOZ投影的極值差θdif通過Power 函數(shù)計算得出,因此本文提出的擬合方法針對不同曲率工件上的锪孔依然有較高的檢測精度。
表4 曲面锪孔法向偏差角測量Table 4 Measurement of normal deviation angle of counterbore on complex curved surface
圖14 曲面法向偏差角度分析Fig.14 Analysis of normal deviation angle of curved surface
為了提高锪孔檢測過程的精度和魯棒性,本文提出了一種結(jié)構光锪孔檢測方法。針對實際復雜工況下結(jié)構光相機獲取的工件點云數(shù)據(jù)部分缺失的問題,以易發(fā)生反光的鋁制工件為樣本進行了大量的圖像采樣及處理。本文方法獲得的不同類型锪孔法向偏差角誤差小于0.142°、平面工件孔徑誤差小于0.025 mm、孔深誤差小于0.022 mm。實驗結(jié)果表明本文方法檢測的锪孔的上述四個指標參數(shù)優(yōu)于傳統(tǒng)機器視覺和移動最小二乘曲面擬合算法,一方面能很好地消除部分點云缺失情況下的信息干擾,另一方面能有效地提高復雜曲面上锪孔法向偏差檢測的結(jié)果,檢測精度高、抗噪性能好。