計(jì)時(shí)鳴,張鶴騰,金明生,張 利
(浙江工業(yè)大學(xué) 特種裝備制造與先進(jìn)加工技術(shù)教育部/浙江省重點(diǎn)實(shí)驗(yàn)室,浙江 杭州 310014)
拋光是模具制造的重要工序,為了提高氣壓砂輪模具拋光的加工效果,本研究團(tuán)隊(duì)采用了基于六自由度機(jī)器人的進(jìn)動(dòng)拋光方法。經(jīng)理論分析和實(shí)驗(yàn)觀察發(fā)現(xiàn),在氣壓砂輪拋光中采用上述進(jìn)動(dòng)拋光方法僅適用于遠(yuǎn)離邊界的連續(xù)曲面內(nèi)部,而拋光到邊界線附近時(shí)便會(huì)出現(xiàn)問(wèn)題,如振動(dòng)加劇、邊界材料過(guò)度磨損等。因此,在進(jìn)行進(jìn)動(dòng)拋光軌跡規(guī)劃時(shí)需要獲得工件邊界線的信息,以解決上述問(wèn)題。
目前,對(duì)于邊界線提取的研究主要有以下兩方面:①?gòu)亩粓D像角度出發(fā),通過(guò)一些圖像處理方法提取邊界線,提取結(jié)果是另一張圖片[1-2],這種方法顯然不可能包含每條邊界線在三維中的解析式;②從實(shí)物出發(fā),通過(guò)掃描得到點(diǎn)云,再經(jīng)過(guò)搜索算法得到屬于邊界線的點(diǎn),最后在計(jì)算機(jī)上逆向建模[3-5]。綜合分析結(jié)果表明,第2種方法可以獲得邊界線在三維中的解析式,能處理密集的點(diǎn)云數(shù)據(jù),一般用于不適合人工建模的具有極度不規(guī)則形狀的對(duì)象;但該方法需要額外的三維掃描測(cè)量設(shè)備,成本較高,操作難度大,計(jì)算過(guò)程復(fù)雜。
考慮到模具拋光進(jìn)行軌跡規(guī)劃時(shí)需要用到模具完整的或局部的三維模型,且尚未見(jiàn)學(xué)者提出從三維模型中直接獲取邊界線數(shù)據(jù)方法的報(bào)道,筆者從模具三維模型出發(fā),提出基于VRML的邊界線三維解析式提取方法,該方法無(wú)需額外的設(shè)備或測(cè)量工具,數(shù)據(jù)有點(diǎn)云的成分(曲面用點(diǎn)云近似),也有稀疏點(diǎn)的成分(平面頂點(diǎn)表示,面內(nèi)無(wú)其他數(shù)據(jù)),數(shù)據(jù)量小,且伴隨有其他輔助數(shù)據(jù),計(jì)算過(guò)程簡(jiǎn)單,操作難度低,能精確地得到模型邊界,且與軌跡規(guī)劃的坐標(biāo)系一致。
為了實(shí)現(xiàn)從最原始的工件三維模型中獲得邊界線信息,筆者對(duì)三維軟件可導(dǎo)出的中間格式進(jìn)行了比較分析,發(fā)現(xiàn)VRML文件格式是最直觀、最容易分析的,其文件名后綴為*.wrl。
VRML是一種建模語(yǔ)言[6],屬于虛擬實(shí)境技術(shù)領(lǐng)域,它使用純文本信息描述三維場(chǎng)景,一般用于Internet傳輸三維場(chǎng)景,并在本地計(jì)算機(jī)上由VRML的瀏覽器解釋生成三維場(chǎng)景。其主要功能是以圖形的形式實(shí)現(xiàn)人機(jī)交互,在機(jī)械領(lǐng)域內(nèi)可用于虛擬機(jī)械產(chǎn)品的設(shè)計(jì),使機(jī)械產(chǎn)品更直觀地展示在客戶(hù)面前。這類(lèi)應(yīng)用以虛擬實(shí)境場(chǎng)景的內(nèi)容和交互的開(kāi)發(fā)為主要研究?jī)?nèi)容,最終得到VRML文件[7-11],如圖1(a)所示。筆者將虛擬實(shí)境技術(shù)用于三維零件的邊界線提取,其主要研究工作在于對(duì)VRML文件進(jìn)行解釋?zhuān)@得其中有用的圖形信息,如圖1(b)所示。
圖1 虛擬實(shí)境技術(shù)不同應(yīng)用
可見(jiàn),將VRML應(yīng)用于曲線提取具有新穎性,是對(duì)虛擬實(shí)境技術(shù)的一種多元化應(yīng)用。
機(jī)械三維建模軟件在導(dǎo)出VRML文件時(shí),將機(jī)械零件的所有表面用三角形平面來(lái)代替,以大量的三角形平面“圍”成立體圖形。對(duì)于平面,以盡可能大的三角面代替,邊界線不失真;對(duì)于曲面,以盡可能小的三角面近似,邊界線有一定失真。VRML 2.0版本(VRML 97)文件用于描述三維圖形的信息,它主要由以下四部分組成:坐標(biāo)點(diǎn)(Coordinate point)、法向量(Normal vector)、三角面頂點(diǎn)序列(coord Index)、法向序列(normal Index)。其中,坐標(biāo)點(diǎn)記錄了模型上所有的端點(diǎn)和曲面經(jīng)過(guò)多面體近似后得到的點(diǎn)的坐標(biāo)值;法向量記錄的是每個(gè)點(diǎn)在原三維模型中的外法向三坐標(biāo)值,且相同的外法向向量只記錄一次;三角面頂點(diǎn)序列記錄了組成整個(gè)三維圖形的所有三角形小平面對(duì)應(yīng)頂點(diǎn)編號(hào);法向序列和三角面序列一一對(duì)應(yīng),法向序列的一組包含3個(gè)編號(hào),分別為對(duì)應(yīng)三角面3個(gè)頂點(diǎn)的外法向。
若直接把三角面頂點(diǎn)兩兩相連,得到的圖形會(huì)多出許多對(duì)角線,這是由采用三角面來(lái)記錄面信息這種方法決定的。同時(shí),由于曲面被多面體化,使得原本沒(méi)有邊界線的連續(xù)曲面多出了許多頂點(diǎn),這些頂點(diǎn)實(shí)際上并不屬于任何一條邊界線。因此,消除不真實(shí)存在的對(duì)角線和不是邊界線端點(diǎn)的點(diǎn)是實(shí)現(xiàn)邊界線提取的關(guān)鍵。
本研究以六棱柱為例說(shuō)明如何去除不真實(shí)存在的對(duì)角線。首先在三維建模軟件里建立六棱柱模型,另存為VRML格式文件,其主要內(nèi)容如下:
六棱柱的三維模型及三角面表示如圖2所示。
將所有三角面的3條線段顯示在同一張圖上,如圖2(c)所示。圖2(c)注明了端點(diǎn)在VRML文件中的編號(hào),箭頭表示的是點(diǎn)的外法向,同一點(diǎn)用于組成不同的三角面時(shí)可以有不同的法向。每個(gè)三角面由3個(gè)頂點(diǎn)的編號(hào)組成,可表示為i-j-k,同理,線段可表示為m-n。例如,三角面1-3-7表示由3個(gè)點(diǎn)1、3、7或3條線段1-3、3-7、7-1組成的一個(gè)三角面。
面I由三角面5-9-4和4-9-8組成,面II由三角面9-11-8和8-11-10組成,其中線段4-9、9-4、11-8、8-11屬于不真實(shí)存在的對(duì)角線,而線段9-8和8-9表示的是同一條棱,需要去除其中一條。
圖2 六棱柱及三角面表示
筆者的方法是,首先用三角面的3個(gè)頂點(diǎn)的法向量之和的單位向量作為該三角面的法向量:
然后將兩個(gè)三角面的法向量?jī)蓛勺鞑?,取差向量的模?/p>
設(shè)法向量突變閾值為T(mén),其物理含義為:當(dāng)法向量之差的模P小于閾值T時(shí),法向量夾角θ較小,面夾角α接近180°,曲面連續(xù)性好。所以T的取值依據(jù)為工件上最大曲率值,曲率越大,T值應(yīng)取越大。法向量作差的物理含義如圖3所示。
圖3 法向量作差的物理含義
(1)若P≤T,則認(rèn)為三角面i-j-k和l-m-n是連續(xù)的面,面內(nèi)不存在邊界線,此時(shí)進(jìn)一步搜索三角面i-j-k和l-m-n內(nèi)有沒(méi)有存在相同頂點(diǎn)的線段,若有,則一定為面內(nèi)不存在的邊界線,刪除這兩條線段;若沒(méi)有則表示兩個(gè)三角面不屬于同一面,不作處理。
(2)若P>T,則認(rèn)為三角面i-j-k和l-m-n是不連續(xù)的面,此時(shí)進(jìn)一步搜索兩個(gè)三角面內(nèi)有沒(méi)有存在相同頂點(diǎn)的線段,若有,則一定為邊界線,刪除其中一條;若沒(méi)有,則表示兩個(gè)三角面不相交,不作處理。
上述處理過(guò)程如圖4所示。
圖4 對(duì)角線和重復(fù)線段去除流程
本研究以六棱柱為例,闡述其處理過(guò)程。主要過(guò)程數(shù)據(jù)如表1所示。
表1 處理六棱柱的主要過(guò)程數(shù)據(jù)
(1)首先從VRML文件用正則表達(dá)式識(shí)別出三角面頂點(diǎn)編號(hào)(表1列A)、法向序列,并列出每個(gè)三角面的3條線段(表1列B),并用式(1)計(jì)算三角面單位法向量(表1列C)。
(2)去除對(duì)角線的過(guò)程:由于六棱柱沒(méi)有曲面,可取T=0,對(duì)于三角面1-5-0和三角面0-5-4用式(2)計(jì)算法向量之差得P=0≤T,則兩個(gè)三角面是連續(xù)的面,面內(nèi)不存在邊界線,然后刪除相同頂點(diǎn)的線段5-0和0-5;六棱柱有20個(gè)三角面,兩兩比較需要計(jì)算=190次,計(jì)算結(jié)果列于表1列D。
(3)將表1的列D所有線段兩兩比較,若頂點(diǎn)相同,則刪除其中一條。表1的列D剩余36條線段,需要計(jì)算=630次。去除重復(fù)線段后結(jié)果線段如表2所示。
表2 結(jié)果線段
將表2中線段繪圖,如圖2(b)所示。可以看出,圖中已經(jīng)去除了對(duì)角線和重復(fù)線段,并且沒(méi)有丟失邊界線。
對(duì)于任意其他的復(fù)雜模型,由于三維軟件導(dǎo)出VRML文件時(shí),會(huì)將所有表面分割成一系列三角面,不遺漏也不重復(fù)任何一塊表面,各三角面的位置和相互關(guān)系可由組成三角面的頂點(diǎn)及頂點(diǎn)外法向計(jì)算得到。因此,上述方法可以用于處理任意結(jié)構(gòu)的模具模型,最終都得到類(lèi)似表2的線段數(shù)組和一個(gè)坐標(biāo)數(shù)組,這兩個(gè)數(shù)組包含了模具所有邊界在三維空間的位置信息。
在將提取的邊界線數(shù)據(jù)用于氣壓砂輪進(jìn)動(dòng)加工軌跡優(yōu)化時(shí),本研究對(duì)加工軌跡上任意一個(gè)加工點(diǎn)計(jì)算其接觸面中心與每條邊界的距離,若任意一個(gè)距離值小于設(shè)定的距離R,則根據(jù)邊界線與加工點(diǎn)的相對(duì)位置進(jìn)行姿態(tài)優(yōu)化,避開(kāi)會(huì)產(chǎn)生劇烈振動(dòng)的姿態(tài)。
筆者利用LabVIEW開(kāi)發(fā)工具編程實(shí)現(xiàn)了上述邊界線提取方法,并且將提取的邊界線數(shù)據(jù)用于氣壓砂輪進(jìn)動(dòng)軌跡優(yōu)化。進(jìn)動(dòng)軌跡規(guī)劃結(jié)果對(duì)比如圖5所示。
根據(jù)實(shí)驗(yàn)觀察和理論分析可知,要避免氣壓砂輪進(jìn)動(dòng)拋光方法在模具邊界產(chǎn)生的問(wèn)題,必須添加一個(gè)約束條件,即氣壓砂輪的切削速度方向不能含有沿邊界外法向相反方向的分量。如圖5(a)所示的工件,拋光面是內(nèi)凹的弧形曲面,本研究分別進(jìn)行無(wú)約束和有約束的進(jìn)動(dòng)軌跡規(guī)劃,得到各點(diǎn)切削速度的方向分布。
圖5 進(jìn)動(dòng)軌跡規(guī)劃結(jié)果對(duì)比
圖5中曲面內(nèi)折線是拋光路徑,以折線上各點(diǎn)為起點(diǎn)的短線段表示該點(diǎn)的切削速度方向。設(shè)拋光點(diǎn)距邊界線小于10 mm就要進(jìn)行應(yīng)用約束條件,則圖5(c)中左、右邊界線不起約束作用,上、下邊界線只對(duì)軌跡首位兩條最靠近邊界的路徑進(jìn)行約束。約束的結(jié)果是,這兩條路徑上各點(diǎn)速度方向與邊界外法向的夾角在0°~90°范圍內(nèi),而曲面內(nèi)部的拋光路徑則不受邊界線約束,切削速度方向可以是任意的。
對(duì)比圖5(b)、5(c)可以看出,加工過(guò)程中,切削速度方向的分布在邊界附近有明顯不同,說(shuō)明在氣壓砂輪進(jìn)動(dòng)拋光軌跡規(guī)劃過(guò)程中,邊界線數(shù)據(jù)起到了優(yōu)化的作用。
本研究將VRML技術(shù)應(yīng)用到模具邊界提取中,得到如下結(jié)論:
(1)VRML語(yǔ)言的文本文件結(jié)構(gòu)簡(jiǎn)單、數(shù)據(jù)簡(jiǎn)潔扼要,采用VRML語(yǔ)言的文本信息來(lái)提取模具邊界線,具有簡(jiǎn)單易懂的特點(diǎn),并且容易與軌跡規(guī)劃程序集成。
(2)從三角面及其頂點(diǎn)法向量中獲取數(shù)據(jù)間的相互聯(lián)系,成功識(shí)別并刪除了光滑曲面內(nèi)對(duì)角線以及重復(fù)的邊界線,識(shí)別結(jié)果是兩個(gè)數(shù)組,易于被軌跡規(guī)劃過(guò)程利用。
(3)針對(duì)不同的曲率的曲面,只要調(diào)整法向量閾值T,就可以滿(mǎn)足曲面邊界的識(shí)別要求,曲率越大,閾值T就應(yīng)取越大。合適的T值可以實(shí)現(xiàn)將小曲率曲面識(shí)別成連續(xù)曲面,將倒了圓角的邊界識(shí)別為邊界線。
(4)該方法計(jì)算過(guò)程中的數(shù)據(jù)結(jié)構(gòu)及計(jì)算過(guò)程仍有待于今后改進(jìn),以提高其計(jì)算速度。
(
):
[1]唐振軍,張顯全.一種二值圖象邊界提取算法[J].微計(jì)算機(jī)信息,2006,22(10):281-283.
[2]付青青,馮 桂.噪聲圖像中邊界提取方法的研究[J].電腦與信息技術(shù),2003(1):22-25.
[3]楊雪嬌.點(diǎn)云的邊界提取及角點(diǎn)檢測(cè)算法研究[D].哈爾濱:哈爾濱工程大學(xué)自動(dòng)化學(xué)院,2010.
[4]張獻(xiàn)穎,周明全,耿國(guó)華.空間三角網(wǎng)格曲面的邊界提取方法[J].中國(guó)圖象圖形學(xué)報(bào),2003,8(10):1223-1226.
[5]姚運(yùn)萍,盧允娥,王 蕾.逆向工程中散亂點(diǎn)云的邊界線自動(dòng)提取方法[J].組合機(jī)床與自動(dòng)化加工技術(shù),2008(4):47-49.
[6]王育堅(jiān),鮑 泓.圖像處理與三維可視化[M].北京:北京郵電大學(xué)出版社,2011.
[7]胡茶根.基于VRML的機(jī)械產(chǎn)品虛擬設(shè)計(jì)技術(shù)研究[D].成都:四川大學(xué)制造科學(xué)與工程學(xué)院,2005.
[8]李 欣.基于VRML技術(shù)的虛擬校園設(shè)計(jì)與實(shí)現(xiàn)[D].武漢:國(guó)防科學(xué)技術(shù)大學(xué)計(jì)算機(jī)學(xué)院,2005.
[9]宋慧玲.基于VRML的地學(xué)虛擬博物館漫游系統(tǒng)的研究與實(shí)現(xiàn)[D].北京:中國(guó)地質(zhì)大學(xué)計(jì)算機(jī)學(xué)院,2004.
[10]謝文達(dá).建構(gòu)基于VRML/X3D的網(wǎng)上虛擬商店[D].廣州:廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,2006.
[11]袁鋒偉,李必文,何 彬.基于SolidWorks-VRML實(shí)現(xiàn)虛擬現(xiàn)實(shí)的精確建模[J].機(jī)電工程,2007,24(10):103-105.