尤睿琦, 張 超, 郝 剛
(天津理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院,天津 300384)
隨著航空航天、交通等領(lǐng)域高端裝備制造技術(shù)的飛速發(fā)展,高性能工件的加工制造面臨許多新的挑戰(zhàn)[1]。高精度螺紋作為高性能精密工件之一被廣泛應(yīng)用于多種領(lǐng)域中,其參數(shù)的準(zhǔn)確測量對生產(chǎn)應(yīng)用有重要意義。其中螺紋接頭因密封性、連接度、抗腐蝕等多方面的不同要求需要確保極高的檢測精度與檢測效率。螺紋錐度是螺紋接頭較為重要的一個(gè)參數(shù),制造精度直接影響特殊螺紋的連接強(qiáng)度與旋合性。如果誤差超出設(shè)計(jì)精度將導(dǎo)致密封面接觸應(yīng)力減少致使螺紋接頭泄漏風(fēng)險(xiǎn)增大[2]。因此對螺紋錐度進(jìn)行高精度測量十分必要。
在螺紋檢測過程中,人們多采用二維圖像、三坐標(biāo)測量機(jī)等測量方法。但這些方法在實(shí)際應(yīng)用中存在測量位置單一,維護(hù)成本高,對測量環(huán)境要求嚴(yán)苛等問題。而非接觸式點(diǎn)云采集技術(shù)與測量技術(shù)的研究發(fā)展在一定程度上對上述問題的解決有所幫助。因此,三維點(diǎn)云在工業(yè)檢驗(yàn)中的應(yīng)用場景日漸增多[3-4]。
He F等[5]提出了一種結(jié)合光學(xué)技術(shù)和圖像處理技術(shù)測量油管螺紋的物理尺寸的方法并進(jìn)行了進(jìn)一步分析。Min J[6]使用CCD獲得螺紋基本圖像,最終討論了利用機(jī)器視覺測量螺紋齒角參數(shù)的方法。Tong等[7]使用位置敏感裝置(PSD)測量螺紋輪廓的坐標(biāo)數(shù)據(jù),并通過高精度柵格測量精密工作臺的軸向位移對螺紋輪廓進(jìn)行檢測和估計(jì)。Gadelmawla等[8]基于以上研究建立了一種用于自動(dòng)檢測大多數(shù)類型螺紋的視覺系統(tǒng)。Chen Manlong[9]確認(rèn)在通過投影圖像測量螺紋時(shí)始終存在螺紋輪廓畸變現(xiàn)象并推導(dǎo)了螺紋輪廓變形的公式,最終給出了相應(yīng)的補(bǔ)償算法。Min[10]等采用了機(jī)器視覺和光學(xué)放大技術(shù)來測量高精度的螺紋幾何誤差,提出了一種使用改進(jìn)的Sobel算子獲得圖像邊緣的新方法,其誤差小于10 μm。Li Z等[11]提出了一種基于ResUnet和隱馬爾可夫模型(HMM)的外螺紋測量方法,誤差同樣在10 μm之內(nèi)。左建中[12]與包能勝[13]分別通過Hough算法及Harris 角點(diǎn)檢測算法對二值圖像進(jìn)行處理得到各項(xiàng)高精度測量結(jié)果。以上研究使用二維圖像對螺紋各項(xiàng)參數(shù)的檢測精度均已達(dá)到較為理想的情況,但二維圖像的局限性導(dǎo)致了單次采集數(shù)據(jù)時(shí)僅能得到單個(gè)角度的測量數(shù)據(jù)。在數(shù)據(jù)采集過程中二維圖像的獲取對環(huán)境要求也相對較高。
Kosarevsky等[14]從剖面測量機(jī)獲得的2D點(diǎn)云中通過Hough變換自動(dòng)提取螺紋的特征參數(shù)。Sebastian等[15]提出一種整體方法將復(fù)雜螺紋幾何形狀參數(shù)化并確定區(qū)域測量策略,并通過數(shù)值模擬確定測量不確定性。張建兵等[16]建立了交點(diǎn)與螺紋中徑線的數(shù)學(xué)模型,推導(dǎo)出了中徑和螺距的計(jì)算公式。為未知理論螺距和牙型角的螺紋測量提供了新方法。王洋洋[17]基于張建兵的工作利用測點(diǎn)數(shù)據(jù)結(jié)合逆向建模對建模后的螺紋參數(shù)進(jìn)行檢測。目前三坐標(biāo)測量機(jī)多用于包括石油套管等精密螺紋的檢測,其誤差可達(dá)5 μm以內(nèi)。但三坐標(biāo)測量機(jī)體型笨重,造價(jià)昂貴且保養(yǎng)困難。多數(shù)測量機(jī)采用接觸式檢測法且在使用前需將待測螺紋固定在水平面上。這也導(dǎo)致了無法做到實(shí)時(shí)檢查和全面檢查。
Robertson C等[18]通過遺傳算法及預(yù)先建立的螺紋雙曲線模型從結(jié)構(gòu)光點(diǎn)云數(shù)據(jù)中測量出螺紋大小徑。但該方法需要已知螺紋部分參數(shù)且測量精度不理想。謝張寧等[19]通過對螺紋點(diǎn)云求取快速凸包并通過最小二乘法擬合得出螺紋點(diǎn)云的中軸線最終驗(yàn)證了該方法相較于傳統(tǒng)投影法的優(yōu)越性。
本文通過非接觸式三維結(jié)構(gòu)光掃描儀得到外螺紋點(diǎn)云并對其擺正及分割工作進(jìn)行了探討,提出對分割后的數(shù)據(jù)按輪廓連續(xù)性分別進(jìn)行聚類以提取錐度特征點(diǎn),在聚類結(jié)果與錐度擬合點(diǎn)之間建立了數(shù)學(xué)模型,并提出了一種自動(dòng)計(jì)算螺紋錐度的方法。
在實(shí)地應(yīng)用中受場地?fù)P塵及待測螺紋表面反光影響會(huì)產(chǎn)生大量噪點(diǎn)最終影響測量結(jié)果。本文的目的是通過對點(diǎn)云的處理與研究令噪點(diǎn)對測量結(jié)果影響最小化,從而做到高精度的螺紋錐度測量?;谠紨?shù)據(jù)的復(fù)雜性及采集位置受到的限制,本文對不同角度獲取的含端面螺紋數(shù)據(jù)進(jìn)行分類討論。首先使用基于端面輪廓的擺正方法統(tǒng)一對數(shù)據(jù)進(jìn)行擺正,之后根據(jù)不同采集角度得到的數(shù)據(jù)提取為對應(yīng)輪廓斷續(xù)點(diǎn)云與輪廓連續(xù)點(diǎn)云后分別應(yīng)用對應(yīng)方法進(jìn)行聚類。得到聚類結(jié)果后,使用提出的特征點(diǎn)尋找模型得出特征點(diǎn)集。最后對特征點(diǎn)集進(jìn)行擬合得到待測螺紋的錐度線。整體流程如圖1所示。
圖1 測量流程圖
本文在無需夾具的情況下對多種螺紋進(jìn)行了錐度測量,輪廓斷續(xù)點(diǎn)云平均錐度測量誤差為0.05°,輪廓連續(xù)點(diǎn)云平均錐度測量誤差為0.02°。在整個(gè)過程中,重點(diǎn)步驟如下:
1)含端面數(shù)據(jù)的局部螺紋點(diǎn)云擺正。由于在數(shù)據(jù)采集過程中點(diǎn)云掃描儀會(huì)因?yàn)楣I(yè)環(huán)境產(chǎn)生的震動(dòng)發(fā)生細(xì)微偏移??紤]到測量時(shí)無法使用夾具固定待測工件,需要一種方法對不同位置的點(diǎn)云進(jìn)行擺正以便測量。本文通過確保掃描儀位置獲得部分或全部端面數(shù)據(jù)后通過基于端面的擺正方法進(jìn)行擺正。在擺正過程中使用拉依達(dá)準(zhǔn)則降低噪點(diǎn)對擺正的影響。
2)點(diǎn)云輪廓聚類。在通過擺正與分割得到對應(yīng)輪廓后,需要對不同情況進(jìn)行分類討論。對于在端面一側(cè)采集得到的輪廓斷續(xù)點(diǎn)云和在螺紋一側(cè)采集得到的輪廓連續(xù)點(diǎn)云,本文分別使用DBSCAN聚類算法與本文提出的擬合分割聚類對待測數(shù)據(jù)進(jìn)行聚類。最終得到便于特征點(diǎn)提取的點(diǎn)云集合。
3)特征點(diǎn)提取。對輪廓點(diǎn)云進(jìn)行聚類后,通過數(shù)學(xué)模型提取每一類中錐度特征點(diǎn),減少噪點(diǎn)以達(dá)到提升精度的目的。對得到的特征點(diǎn)進(jìn)行擬合即可得到最終測量結(jié)果。
2.1.1 點(diǎn)云擺正
謝張寧[19]通過隨機(jī)增量法構(gòu)成凸包點(diǎn)集后使用最小二乘實(shí)現(xiàn)對螺紋點(diǎn)云中軸線的高精度提取,這種方法對于局部螺紋點(diǎn)云與特殊螺紋點(diǎn)云而言難以構(gòu)建形狀合適的點(diǎn)云凸包,從而導(dǎo)致中軸線獲取難度較大。為解決這一問題,提出基于端面輪廓的點(diǎn)云擺正方法如下:
1)原始螺紋點(diǎn)云A,使用快速k近鄰提取點(diǎn)云輪廓并分析得到端面點(diǎn)集i。
2)使用隨機(jī)抽樣一致算法(RANSAC)對i進(jìn)行平面擬合并通過拉依達(dá)(3σ)準(zhǔn)則濾除端面點(diǎn)集i中噪點(diǎn)提升平面擬合精度及端面點(diǎn)集信噪比。最終得到平面l。
3)計(jì)算得出平面l與平面xoy的旋轉(zhuǎn)矩陣R1,將A乘以旋轉(zhuǎn)矩陣R1進(jìn)行坐標(biāo)變換成為A′,同理將端面數(shù)據(jù)i變化為i′。
4)對i′進(jìn)行橢圓擬合得到圓心并計(jì)算與坐標(biāo)原點(diǎn)的變換矩陣R2,將A′乘以R2即可變換為中軸線為z軸的擺正點(diǎn)云A′′。
變換后獲得點(diǎn)云如圖2所示。
圖2 擺正后的輪廓斷續(xù)點(diǎn)云數(shù)據(jù)
2.1.2 確定分割平面
眾所周知,過不在同一直線上的三點(diǎn)有且只有一個(gè)平面,定量且有序的找到這三個(gè)點(diǎn)即可定義一個(gè)合理的空間平面。關(guān)鍵步驟如下:
1)使用圓的參數(shù)方程x=Rycosθ=Rsinθ,其中θ∈ [0,2π)定義圓心在空間坐標(biāo)原點(diǎn)的正圓點(diǎn)云O。
2)取O的圓心坐標(biāo)為p1,取z軸方向上的任意點(diǎn)作為p2。
3)對O上依次取點(diǎn)作為p3即可獲得沿z軸旋轉(zhuǎn)的平面。
已知三點(diǎn)p1(x1,y1,z1),p2(x2,y2,z2),p3(x3,y3,z3)作向量p1p2(x2–x1,y2–y1,z2–z1),p1p3(x3–x1,y3–y1,z3–z1),平面法線和這兩個(gè)向量垂直,因此法向量n:
上式解出A,B,C,D即可得到平面p的一般式方程為Ax+By+Cz+D=0。
整體分割方法如圖3所示。
圖3 分割平面選取示意圖
2.1.3 獲取螺紋點(diǎn)云輪廓
2.1.2節(jié)中得到了以z軸 為旋轉(zhuǎn)軸的分割平面。接下來通過遍歷點(diǎn)云中所有點(diǎn)并計(jì)算其到分割平面的距離。選取距離小于閾值的點(diǎn)組成輪廓點(diǎn)云。
任取平面內(nèi)一點(diǎn)P(x,y,z)連接PQ,過P做平面的法向量n=(A,B,C)??芍猀到平面距離d恰是PQ在法向量上的投影長度,如圖4所示。
圖4 輪廓提取示意圖
點(diǎn)云離散點(diǎn)Q到分割平面的距離d的計(jì)算方法如下:
對得到的所有分割平面進(jìn)行點(diǎn)云輪廓提取。得到點(diǎn)云輪廓后使用如下方法對點(diǎn)云進(jìn)行二維映射:
對得到的二維點(diǎn)集進(jìn)行聚類用于分離螺紋頂部與底部數(shù)據(jù)。
2.2.1 DBSCAN聚類
在 DBSCAN(density-based spatial clustering of applications with noise)聚類算法中,聚類精度對鄰域閾值(Eps)和點(diǎn)數(shù)閾值(Minpts)取值敏感,人工選取嚴(yán)重影響測量自動(dòng)化與算法魯棒性,同時(shí)可能造成聚類不準(zhǔn)確等問題,為此已有不少文獻(xiàn)提出若干參數(shù)自適應(yīng)方法。本文參照文獻(xiàn)[20]使用的自適應(yīng)參數(shù)方法,根據(jù)待測數(shù)據(jù)自身特性以及可視化展示,為算法確定合適的參數(shù)。
圖5展示了輪廓斷續(xù)點(diǎn)云的聚類過程。其中,圖5(a)表示了輪廓斷續(xù)點(diǎn)云因受制于檢測位置獲得的點(diǎn)云輪廓。圖5(b)表示了經(jīng)過DBSCAN聚類獲得的第3類點(diǎn)云點(diǎn)集。
圖5 DBSCAN聚類
2.2.2 擬合分割聚類
輪廓連續(xù)點(diǎn)云的數(shù)據(jù)受掃描角度影響,單個(gè)輪廓中含有更多螺紋信息。但同時(shí)因?yàn)閿?shù)據(jù)點(diǎn)均勻且連續(xù),無法使用基于密度的聚類方法?;谝陨显颍疚奶岢鲆环N通過擬合分割進(jìn)行聚類的方法如下所示:
1)讀入點(diǎn)云輪廓S,通過曲率分析去除端面數(shù)據(jù)與管面無螺紋數(shù)據(jù)。得到待聚類數(shù)據(jù)S′見圖6(a)。
圖6 擬合分割過程圖
2)對S′進(jìn)行擬合得到粗分割線Slice,并以此將待聚類數(shù)據(jù)S′粗略分割為頂部數(shù)據(jù)與底部數(shù)據(jù)如圖 6(b)所示。
圖7 聚類分割示意圖
4)按聚類分割線對點(diǎn)云輪廓S按x值進(jìn)行分割即可得到聚類后點(diǎn)集Si(1<i<n)。其中聚類數(shù)目為綠線數(shù)目減1。
2.3.1 特征點(diǎn)選取模型建立
通過對聚類數(shù)據(jù)的結(jié)構(gòu)分析及具體實(shí)驗(yàn),考慮錐度測量的特征點(diǎn)位置以及噪點(diǎn)的影響提出特征點(diǎn)選取模型如下:
提取頂部特征點(diǎn):
提取底部特征點(diǎn):
式中:m in(x)i——第i類x最小值;
topi(x,y)——頂部第i類特征點(diǎn);
bottomi(x,y)—底部第i類特征點(diǎn);
u——修改系數(shù);
s——總類數(shù)。
將各點(diǎn)集取并得到數(shù)據(jù)擬合點(diǎn)集如下式:
2.3.2 數(shù)據(jù)擬合
使用直接最小二乘法分別對最終得到的頂部特征點(diǎn)集top(x,y)與底部特征點(diǎn)集bottom(x,y)進(jìn)行直線擬合,得到各自的斜率kt與kb。結(jié)合頂?shù)滋卣鼽c(diǎn)數(shù)numt,numb由下式可得最終測量結(jié)果k:
本文算法在Windows10操作系統(tǒng)中使用VS2019及QT5.14.1實(shí)現(xiàn),使用的開源庫分別為PCL、OpenCV等。分別對DBSCAN聚類的輪廓斷續(xù)點(diǎn)云和使用擬合分割聚類的輪廓連續(xù)點(diǎn)云進(jìn)行了實(shí)驗(yàn)。
實(shí)驗(yàn)數(shù)據(jù)來源于天津微深科技有限公司VTOP650T非接觸式藍(lán)光拍照式三維掃描設(shè)備系統(tǒng)于實(shí)際生產(chǎn)環(huán)境中實(shí)地掃描得到的點(diǎn)云數(shù)據(jù)。其中各螺紋錐度制造公差范圍均為2.57°~2.7°。
本文使用累計(jì)平方誤差與平均絕對誤差來評估提出算法的測量準(zhǔn)確度。函數(shù)分別定義如下:
累計(jì)平方誤差函數(shù)
平均絕對誤差函數(shù)
式中:ti——第i個(gè)樣本的實(shí)際值;
mi——該樣本通過本文算法得出的測量值;
si——該樣本測量誤差
n——樣本總量。
由于受采集角度限制,輪廓斷續(xù)點(diǎn)云信噪比通常較低。輪廓的不完整性對聚類結(jié)果及特征點(diǎn)數(shù)量均產(chǎn)生較大影響從而導(dǎo)致檢測結(jié)果不佳。本文的螺紋錐度測量方法對以上情況具有一定的魯棒性。表1為10組輪廓斷續(xù)點(diǎn)云通過DBSCAN聚類的測量結(jié)果,圖8為對應(yīng)誤差比較圖。
表1 輪廓斷續(xù)點(diǎn)云測量結(jié)果
圖8 輪廓斷續(xù)樣本測量誤差比較圖
由圖8的對比結(jié)果顯示,輪廓斷續(xù)點(diǎn)云測量方法對噪聲具有較好魯棒性,但仍有部分測量結(jié)果偏差較大。其中1、7號樣本因誤差出現(xiàn)工件實(shí)際質(zhì)量合格測量結(jié)果不合格的情況。錐度平均絕對誤差為 arctan(4.49×10–4)×2=0.05°。
表2顯示了使用輪廓連續(xù)點(diǎn)云測量方法的測量結(jié)果。使用擬合分割進(jìn)行聚類的輪廓連續(xù)點(diǎn)云得到的聚類數(shù)量與聚類精度均高于輪廓斷續(xù)點(diǎn)云,所以測得精度較高。最終錐度平均絕對誤差為arctan(1.91×10–4)×2=0.02°。圖 9 為誤差比較圖。通過對比輪廓斷續(xù)點(diǎn)云與輪廓連續(xù)點(diǎn)云的累計(jì)平方誤差變化情況,可以明確看出使用輪廓連續(xù)點(diǎn)云測量法最終測得結(jié)果顯著優(yōu)于輪廓斷續(xù)點(diǎn)云測量方法,如圖10所示。
表2 輪廓連續(xù)點(diǎn)云測量結(jié)果
圖9 輪廓連續(xù)樣本測量誤差比較圖
圖10 兩方法測量結(jié)果比較圖
結(jié)合參考文獻(xiàn)中相關(guān)數(shù)據(jù)將本方法與其他同類測量方法進(jìn)行比較,如表3所示。
表3 同類方法比較
由表3可知本方法相較傳統(tǒng)人工測量有極大優(yōu)勢。測量精度相對二維圖像測量方法較高但尚未達(dá)到三坐標(biāo)測量機(jī)的精度范圍。測量速度比三坐標(biāo)測量機(jī)更快但不如二維圖像方法。本方法適用于無法提供垂直光源與夾具固定且震動(dòng)較少的環(huán)境中。由此可見本方法在高精度、低檢測速度的三坐標(biāo)方法與高檢測速度、精度相對較低的二維圖像方法中初步取得較為理想的平衡。
通過對國內(nèi)外相關(guān)工作的研究與發(fā)展,借助逆向工程的思路與二維圖像檢測的具體方法,本文提出了一種基于局部點(diǎn)云自動(dòng)檢測螺紋錐度的算法。該算法利用三維結(jié)構(gòu)光相機(jī)得到輪廓斷續(xù)或輪廓連續(xù)點(diǎn)云,在數(shù)據(jù)預(yù)處理階段,提出基于端面輪廓的點(diǎn)云擺正方法將螺紋進(jìn)行擺正做到在無需夾具的前提下進(jìn)行檢測,使用分割平面進(jìn)行輪廓提取并找出合理的檢測位置。在點(diǎn)云聚類階段,對輪廓斷續(xù)點(diǎn)云與輪廓連續(xù)點(diǎn)云分別使用不同聚類方法并提出特征點(diǎn)選取模型對聚類結(jié)果進(jìn)行處理得到擬合錐度線所需特征點(diǎn)。最后對多個(gè)特征點(diǎn)集擬合結(jié)果進(jìn)行加權(quán)融合得到錐度線斜率。
實(shí)驗(yàn)結(jié)果表明,提出的錐度測量算法能在一定程度上精準(zhǔn)快速地從局部螺紋點(diǎn)云中完成螺紋錐度的測量。但該方法仍受限于點(diǎn)云預(yù)處理過程中擺正精度與特征點(diǎn)選取模型對數(shù)據(jù)噪點(diǎn)的魯棒性。如果獲取的數(shù)據(jù)噪點(diǎn)過多則會(huì)嚴(yán)重影響最終測量精度。本文下一步工作將結(jié)合數(shù)據(jù)本身結(jié)構(gòu)信息改進(jìn)擺正算法。同時(shí)對分割及特征點(diǎn)選取模型進(jìn)行進(jìn)一步研究優(yōu)化以提高其對噪點(diǎn)數(shù)據(jù)的魯棒性。