基于逆向工程的汽車覆蓋件模具邊界特征提取
0 引言
在產(chǎn)品的設(shè)計(jì)和開發(fā)中利用逆向工程可以極大地縮短產(chǎn)品的開發(fā)周期和開發(fā)費(fèi)用,尤其是我國的汽車行業(yè),許多覆蓋件模具均是從國外直接進(jìn)口,這些模具的設(shè)計(jì)資料比較匱乏。轎車覆蓋件改型或國產(chǎn)化,采用逆向工程不失為一種快捷有效的方法。
逆向工程一般可分為四個(gè)階段:(1)零件原形的數(shù)字化。通常采用三坐標(biāo)測(cè)量機(jī)(CMM)或激光掃描等測(cè)量裝置來獲取零件原形表面點(diǎn)的三維坐標(biāo)值。 (2)從測(cè)量數(shù)據(jù)中提取零件原形的幾何特征。按測(cè)量數(shù)據(jù)的幾何屬性對(duì)其進(jìn)行分割,采用幾何特征匹配與識(shí)別的方法來獲取零件原形所具有的設(shè)計(jì)與加工特征。(3)零件原形CAD模型的重建。將分割后的三維數(shù)據(jù)在相應(yīng)軟件系統(tǒng)中分別做表面模型的擬合,并通過各表面片的求交與拼接獲取零件原形表面的CAD模型。(4)重建CAD模型的檢驗(yàn)與修正。采用根據(jù)獲得的CAD模型重新測(cè)量和加工出樣品的方法來檢驗(yàn)重建的CAD模型是否滿足精度或其他試驗(yàn)性能指標(biāo)的要求,對(duì)不滿足要求者重復(fù)以上過程,直至達(dá)到零件的設(shè)計(jì)要求。而其中實(shí)物幾何特征的識(shí)別和提取是整個(gè)過程中的重點(diǎn)和難點(diǎn)。
在逆向工程中,因?yàn)榇蟛糠謱?shí)物的形狀比較復(fù)雜,特別是存在大量自由曲面特
征,通常無法用單一整張曲面來擬合所有數(shù)據(jù)點(diǎn)。這就需要提取曲面特征,將點(diǎn)云分成許多有意義的區(qū)域來單獨(dú)處理,分別用不同的方法擬合出不同的曲面;然后通過求交、裁剪,用過渡曲面將曲面連接起來,最后形成整張光順的曲面模型。曲面的劃分直接影響曲面的構(gòu)造方法、曲面的拼接、曲面的縫合及實(shí)體模型的建立。所構(gòu)造的曲面能否反映原來實(shí)物的特征,很大程度上取決于分片質(zhì)量的好壞。
在現(xiàn)行使用的曲面構(gòu)型軟件中,數(shù)據(jù)分片一般都采用交互式方法進(jìn)行:即由用戶通過對(duì)原始數(shù)據(jù)點(diǎn)云 的觀察,分析某一數(shù)據(jù)集合,從中找出各個(gè)特征,交互式對(duì)其邊界進(jìn)行定義,然后對(duì)所得數(shù)據(jù)片分別采用相應(yīng)的曲面重構(gòu)方法完成單個(gè)曲面的重構(gòu)。再通過公共的邊界線或過渡曲面將各個(gè)構(gòu)型曲面連接起來。這種方法實(shí)現(xiàn)比較直觀,目前很多商用軟件都采用這種方式。如surfacer。雖然方法直觀,簡(jiǎn)便,卻存在很大不足。采用用戶交互式的數(shù)據(jù)區(qū)間定義,在實(shí)際過程中存在很大的隨意性。確定的邊界比較模糊,通常先是對(duì)數(shù)據(jù)進(jìn)行一個(gè)大致的劃分,然后根據(jù)對(duì)擬合曲面情況的觀察和誤差、光順性的檢測(cè)結(jié)果進(jìn)行反復(fù)的修改、刪除甚至重構(gòu)。這種做法費(fèi)時(shí),效率比較低,并且修改觀察時(shí)因人不同產(chǎn)生的結(jié)果可能不同,這需要有一定的實(shí)際經(jīng)驗(yàn)和幾何構(gòu)型水平,是一種摸索和嘗試的過程。曲面原有特征也得不到很好的保護(hù)和體現(xiàn),所取得效果未必能達(dá)到用戶的要求。因此,實(shí)現(xiàn)原形特征的自動(dòng)提取來劃分?jǐn)?shù)據(jù)一直以來是人們追求的目標(biāo)。
國內(nèi)外有很多人對(duì)實(shí)物原型特征識(shí)別和曲面的自動(dòng)分片進(jìn)行了研究[3-4],但多數(shù)算法比較復(fù)雜,實(shí)現(xiàn)起來比較困難,有些主要針對(duì)規(guī)則數(shù)據(jù)點(diǎn)云的,且都沒有真正達(dá)到分片的自動(dòng)化。
通過提取散亂數(shù)據(jù)點(diǎn)的拓?fù)浣Y(jié)構(gòu),完成數(shù)據(jù)點(diǎn)的三角網(wǎng)格化;然后進(jìn)行數(shù)據(jù)精簡(jiǎn),估算精簡(jiǎn)后各測(cè)點(diǎn)的法矢和曲率,把曲率極值點(diǎn)作為邊界特征候選點(diǎn);最后連邊界點(diǎn)組成邊界線。該算法被用于上海大眾公司SAN模具數(shù)字化項(xiàng)目,取得了較好效果。
1 建立三角網(wǎng)格模型
用光學(xué)設(shè)備測(cè)得的數(shù)據(jù)點(diǎn)云數(shù)據(jù)量大,數(shù)據(jù)排列無明顯的組織結(jié)構(gòu),對(duì)這樣的點(diǎn)我們采用Riemann圖建立散亂數(shù)據(jù)點(diǎn)間的鄰接關(guān)系[5],然后采用最小內(nèi)角最大化原理[1]完成數(shù)據(jù)點(diǎn)的三角網(wǎng)絡(luò)化。
2 曲面法矢及曲率求解
對(duì)于給定的多面體,在某頂點(diǎn)Pi處的法矢量npi,通常用與之相鄰的所有平面單位法矢ni的加權(quán)組合來計(jì)算[1]。
在實(shí)際的應(yīng)用中,權(quán)值λi通常有以下幾種取法:
實(shí)際上,這種算法是最簡(jiǎn)單的算法。各有關(guān)平面對(duì)公共頂點(diǎn)法矢的貢獻(xiàn)是相等的,類似于在平面情況下的計(jì)算公式。其優(yōu)點(diǎn)是計(jì)算非常簡(jiǎn)單,但沒有明顯的幾何意義。
其中Ai表示相關(guān)的三角形的面積,面積越大,該平面法矢在式中對(duì)公共頂點(diǎn)法矢的貢獻(xiàn)越小。
其中l(wèi)i為有關(guān)的邊長,可以看出三角平面的兩個(gè)相關(guān)的邊越長,該平面法矢在式中對(duì)公共頂點(diǎn)法矢的貢獻(xiàn)越小。
在此,采用三角形面積作為權(quán)因子,用該點(diǎn)周圍的若干三角形法矢的加權(quán)平均來計(jì)算該點(diǎn)法矢。數(shù)據(jù)點(diǎn)三角網(wǎng)絡(luò)化后,在點(diǎn)P0周圍有m個(gè)點(diǎn)Pi(I=1,2,...m)與之相鄰接,稱為點(diǎn)P0的鄰域點(diǎn)集,m個(gè)三角形所在的各平面有m個(gè)單位法矢n1,n2,…nm。由P0,Pi,Pi+1所組成的三角形的法矢為ni:
用這種方法估算法矢簡(jiǎn)單適用。在編制程序時(shí),除可以估算各點(diǎn)法矢外,還允許各點(diǎn)自帶法矢,以提高數(shù)據(jù)處理的靈活性[2]。
在獲得鄰域點(diǎn)集在P0點(diǎn)的法矢后,就可以對(duì)鄰域點(diǎn)集進(jìn)行局部參數(shù)化[3]。由于要估算該點(diǎn)的曲率值,所以局部參數(shù)化曲面一般采用二次或二次以上的曲面。經(jīng)實(shí)踐總結(jié),對(duì)空間散亂分布的數(shù)據(jù)采用局部拋物面的擬合方法比較好。在參數(shù)化的過程中,選擇P0點(diǎn)為坐標(biāo)原點(diǎn),則對(duì)它進(jìn)行局部參數(shù)擬合的曲面方程可表示為h(u,v)=au2+buv+cv2,并選取h坐標(biāo)軸與曲面在P0點(diǎn)的法矢nP0的方向相同,另兩個(gè)坐標(biāo)軸向量u,v位于P0點(diǎn)的切平面內(nèi)。則由三者構(gòu)成的標(biāo)架為δ=(u, v, nP0)。它們組成的坐標(biāo)系是一個(gè)仿射系[2]。如u,v 為P0點(diǎn)的主方向,其對(duì)應(yīng)的主曲率為k1,k2(見圖1)。
根據(jù)法矢nP0、則過矢量點(diǎn)P0的切平面方程為:
由此可得矢量點(diǎn)Pj在平面上的投影坐標(biāo)為:
完成鄰域點(diǎn)集的坐標(biāo)局部參數(shù)化后,便可以應(yīng)用加權(quán)最小二乘原理對(duì)鄰域點(diǎn)集進(jìn)行曲面擬合。然后利用高斯-亞當(dāng)消元法求得該問題的最佳參數(shù)估計(jì)a*,b*,c*。于是可得鄰域點(diǎn)集的逼近曲面為h(u,v)=a*u2+b*uv+c*v2。由此可推導(dǎo)出該點(diǎn)的逼近主曲率和主方向。
曲面在P0的主方向可由下式給出的方程解出,即:
對(duì)應(yīng)的主方向?yàn)椋?br />
在獲得各點(diǎn)的曲率后,取曲率極值點(diǎn)作為特征點(diǎn)的候選點(diǎn)。
3 邊界點(diǎn)的提取
一條曲線上的邊界點(diǎn)可分為階躍邊界(高度不連續(xù))、褶皺邊界(切矢不連續(xù))和光滑邊界(曲率不連續(xù))。
取曲率極值點(diǎn)或零交叉點(diǎn)(對(duì)第一種邊界線來講)作為離散曲面的邊界點(diǎn)?;舅枷肴缦拢?br />(1)先選取一候選邊界點(diǎn)P, 在該點(diǎn)兩邊沿主方向m1取最近的兩鄰近點(diǎn)T1,T2,求它們沿m1方向上的曲率KT1,KT2。如果k1大于KT1、KT2則該點(diǎn)為最大曲率極值點(diǎn)。
(2)同理選定主方向m2,在P點(diǎn)兩邊沿主方向取鄰近點(diǎn)T3、T4,求他們沿m2方向上的曲率KT3、KT4,如果k2小于KT3、KT4,則該點(diǎn)為最小曲率極值點(diǎn)。
(3)對(duì)所有候選點(diǎn)進(jìn)行上述操作,就可得到所需的全部邊界點(diǎn)。
在數(shù)據(jù)點(diǎn)的界點(diǎn)提取之后,可對(duì)界點(diǎn)進(jìn)行組織,去除偽界點(diǎn),采用鄰邊編碼鏈表算法形成一個(gè)有序的實(shí)體邊界輪廓圖[4]。實(shí)際反求時(shí),封閉邊界的提取可分為兩步進(jìn)行。首先是單邊界的提取;其次是對(duì)單邊界按序追蹤,形成封閉邊界。該算法可進(jìn)一步實(shí)現(xiàn)邊界特征提取的自動(dòng)程度。但在汽車覆蓋件模具的逆向設(shè)計(jì)中,過渡曲面一般為光滑過渡,曲率變化不十分明顯。用這種算法產(chǎn)生的邊界輪廓并不能真正完成點(diǎn)云的較準(zhǔn)確劃分。因此,文中在特征點(diǎn)提取后,采用人機(jī)交互的方式,來生成封閉的邊界輪廓特征。這樣既避免了上面提到的單純靠人機(jī)交互實(shí)現(xiàn)分片的缺點(diǎn),又克服了單純自動(dòng)提出過程中對(duì)偏差不便調(diào)整的弊端。
4 實(shí)例和結(jié)論
該算法借鑒了文獻(xiàn)中所提的方法,并進(jìn)行了改進(jìn)。文中所提算法不僅可用于規(guī)則數(shù)據(jù)點(diǎn)的特征點(diǎn)的提取,而且通過對(duì)散亂數(shù)據(jù)點(diǎn)的簡(jiǎn)化及三角網(wǎng)格化,可對(duì)其進(jìn)行特征點(diǎn)的提取。本算法的優(yōu)點(diǎn)是結(jié)構(gòu)明晰,實(shí)現(xiàn)起來簡(jiǎn)單,相對(duì)單純?nèi)藱C(jī)交互的方式,提高了精度,避免了大量嘗試重構(gòu)過程,相對(duì)自動(dòng)算法提高了算法的靈活性。文中所提算法通過MFC和OpenGL 結(jié)合編程在上海大眾汽車公司SAN2000前圍模具設(shè)計(jì)中得到應(yīng)用,取得了很好的效果,圖2和圖3為SAN2000前圍模具采用此方法的實(shí)例 。首先采用德國GOM公司生產(chǎn)的ATOS(Advanced Topometric Sensor )非接觸式結(jié)構(gòu)光測(cè)量?jī)x,取得模具的數(shù)據(jù)點(diǎn)。借助surfacer軟件完成對(duì)數(shù)據(jù)的預(yù)處理。然后利用文中的算法計(jì)算各數(shù)據(jù)點(diǎn)的法矢和曲率估算,提取邊界特征點(diǎn),完成數(shù)據(jù)分片。當(dāng)然該算法也有比較大的局限性,對(duì)光滑過渡特征還不能很好地獲得其完整邊界,需通過人工交互進(jìn)行調(diào)整。這還有待于在今后的研究中發(fā)現(xiàn)更好的方法。
評(píng)論