VRML在FMS上的應(yīng)用

發(fā)布日期:2011-11-25    蘭生客服中心    瀏覽:3947

      計算機(jī)技術(shù)的發(fā)展,特別是三維圖形技術(shù)的發(fā)展,使人們更加方便地進(jìn)入到三維世界,于是,提出了虛擬現(xiàn)實建模語言VRML(Virtual Reality Modeling Language)[1]。同樣地,工程實際中,有大量需要用三維圖形來表示設(shè)計、制造等方面的概念。往常,我們只能用昂貴的軟件或花費大量的精力用C++等計算機(jī)語言來繪制三維圖形,表示這些概念;有了VRML,我們就可以很方便而容易地做同樣的工作。特別需要指出的是,由于有了VRML,我們可以編寫出更復(fù)雜的三維圖形,如交互式三維圖形。
    筆者利用VRML語言,將一個實際的FMS實驗環(huán)境編寫成一個復(fù)雜的三維動畫程序,利用VRML的動畫及交互功能,使FMS三維動畫程序能夠根據(jù)人們的控制,產(chǎn)生相應(yīng)的運動變化,從而顯示出FMS的工作流程。
1 VRML簡介
    VRML是在OPENGL三維圖形庫的基礎(chǔ)之上發(fā)展而來的,雖然出現(xiàn)只有二三年的時間,但已經(jīng)成為網(wǎng)絡(luò)技術(shù)的熱點之一。1997年年底,VRML2.0(又稱VRML97)正式成為國際標(biāo)準(zhǔn),這也是第一個在網(wǎng)絡(luò)上發(fā)布的國際標(biāo)準(zhǔn)。
    VRML2.0是一個比較簡單的三維建模語言。之所以簡單,是因為它是類似于HTML的腳本語言,編寫起來很方便。但VRML2.0內(nèi)部可以直接利用JavaScript語言進(jìn)行編程處理,并可與外部的Java語言共同作用,因而可以編寫復(fù)雜的程序,產(chǎn)生復(fù)雜的顯示效果。VRML2.0的基本組成為54個節(jié)點(Node),由這些節(jié)點生成節(jié)點語句,進(jìn)而構(gòu)造三維物體,物體間可以產(chǎn)生交互作用。利用VRML2.0可以構(gòu)造具有奇異效果的三維世界,可以將照片,甚至MPEG影像顯示在物體表面,還可以在三維空間產(chǎn)生環(huán)繞立體聲。由于在主要的網(wǎng)絡(luò)瀏覽器如IE及Netscape Navigator上可以運行VRML程序,故VRML的作用大為增強(qiáng)。
    雖然VRML2.0是隨著網(wǎng)絡(luò)技術(shù)的發(fā)展而產(chǎn)生的,但它同樣可以運用在其它方面,如三維動畫模擬、三維游戲制作等。尤其是三維動畫模擬方面,VRML2.0可以通過非常短小的程序來生成三維動畫(如小于10k)——同樣效果的動畫,如果用3DS制作,生成的動畫程序有時會有幾十兆。這是因為,3DS等動畫軟件生成的動畫程序,在程序編寫時就對三維物體進(jìn)行了上色(渲染),因而程序非常大;而VRML程序則是利用網(wǎng)絡(luò)瀏覽器,在程序運行過程中實時地進(jìn)行上色(渲染),因而程序非常小。
    在三維動畫模擬方面,VRML2.0有較好的模擬效果,許多領(lǐng)域正在使用它:有人利用VRML2.0語言將莎士比亞的名著《仲夏夜之夢》改編成了三維的動畫片;對1997年的火星探測行動,VRML愛好者們通過VRML程序,將無人探測車在火星上行走的三維場景通過網(wǎng)絡(luò)傳遍了全世界,那時,人們只要上網(wǎng)瀏覽NASA的站點,就可以在Netscape瀏覽器上看到這些奇妙的、具有動畫效果的三維圖形。
2 VRML2.0的交互作用與動畫功能
 
  VRML2.0程序主要用來構(gòu)造三維物體,構(gòu)造物體的節(jié)點是形體節(jié)點,如本文程序里用到的Box、Cylinder等,當(dāng)然VRML2.0還有一些其它的節(jié)點,如Extrusion、IndexedFaceSet、ElevationGrid,可以用來構(gòu)造簡單或復(fù)雜的三維物體。
    VRML2.0編寫的程序,可以實現(xiàn)動態(tài)的交互作用,即在程序的運行過程中,實時控制程序所定義的三維物體的運動。交互作用的產(chǎn)生主要靠2種節(jié)點和1種語句。2種節(jié)點是傳感器節(jié)點和內(nèi)插器(Interpolator)節(jié)點;1種語句是路徑(ROUTE)語句。VRML2.0的傳感器節(jié)點一共有7種,這些節(jié)點可以探知程序運行時的一些變化,如鼠標(biāo)的點擊動作、物體從不可見到可見的變化等。VRML2.0的內(nèi)插器節(jié)點有6種,它們可以在程序的運行過程中改變物體的一些狀態(tài),如顏色、尺寸、位置等,筆者利用坐標(biāo)內(nèi)插器節(jié)點CoordinateInterpolator及方向內(nèi)插器節(jié)點OrientationInterpolator,改變小車、機(jī)械手、物料及零件的位置及方向。路徑ROUTE語句的主要作用是感知一些狀態(tài)的變化,并把這些變化傳給其它節(jié)點,進(jìn)而使物體的一些狀態(tài)產(chǎn)生變化。
    VRML2.0的內(nèi)插器節(jié)點使VRML程序具有動畫功能,因而我們可以利用它編寫三維動畫程序,使三維物體相互間產(chǎn)生運動,或使物體的狀態(tài)如形狀、顏色隨時間發(fā)生變化,我們甚至可以動態(tài)地改變觀察三維物體的位置、產(chǎn)生廣角鏡頭效果等。
    由于傳感器節(jié)點和內(nèi)插器節(jié)點的作用,使VRML2.0具有交互作用,我們可以利用VRML的交互作用編寫各類應(yīng)用程序,如交互式三維卡通動畫、三維游戲。傳統(tǒng)的三維卡通動畫,人們只能看,不能改變動畫的內(nèi)容,而交互式卡通動畫,動畫的內(nèi)容實際上是由運行程序的人員控制的。
3 VRML語言在FMS系統(tǒng)上的應(yīng)用
 
   我們用VRML語言,將1個實際的FMS系統(tǒng)編寫成1個具有交互作用的三維應(yīng)用程序!∩穷^大學(xué)機(jī)電系FMS實驗室的主要設(shè)備有物料傳輸系統(tǒng)、電腦控制臺、車削加工中心、銑削加工中心、機(jī)械手、拖盤。對于這些設(shè)備,我們通過Box、Cylinder、Sphere等基本形體節(jié)點以及Extrusion、IndexedFaceSet這2個可以生成復(fù)雜形體的節(jié)點,生成了FMS實驗室里所有設(shè)備的三維圖形。
    為了使獲得的三維圖形具有實用價值,我們利用VRML所具有的動畫功能及交互作用,將FMS系統(tǒng)里的設(shè)備工作運行狀態(tài)通過傳感器節(jié)點、內(nèi)插器節(jié)點及ROUTE語句表現(xiàn)出來。
    根據(jù)FMS實驗室設(shè)備的工作流程,我們利用VRML里的傳感器節(jié)點、內(nèi)插器節(jié)點,通過編程使整個程序在一定的工作時間內(nèi),完成了上面的加工循環(huán)。
    首先在物料傳送系統(tǒng)的1個醒目的位置安裝了2個按鈕,并在按鈕上面附上了2個觸摸傳感器TouchSensor:1個起動按鈕,1個關(guān)閉按鈕。小車在物料傳送系統(tǒng)上不停地行走,當(dāng)它運行到物料傳送系統(tǒng)的4個角落時,就在角落位置處改變其運動方向;小車的直線行走靠的是坐標(biāo)內(nèi)插器節(jié)點在時間傳感器及坐標(biāo)內(nèi)插器節(jié)點的共同作用下,小車按照設(shè)定的速度行走。當(dāng)小車運行到物料架邊上時,小車會暫停數(shù)秒鐘,機(jī)械手將物料從物料架上取出,擺放在小車上。機(jī)械手有轉(zhuǎn)動和平動2個動作。通過方向內(nèi)插器節(jié)點實現(xiàn)機(jī)械手的轉(zhuǎn)動;通過坐標(biāo)內(nèi)插器節(jié)點實現(xiàn)機(jī)械手的平動。物料及零件的拿起、放下動作和機(jī)械手的運動是協(xié)調(diào)一致的;物料及零件的行走與小車的行走是協(xié)調(diào)一致的。根據(jù)這樣的分析,我們在程序中對物料及零件的編程處理起來顯得非常簡單:直接照套機(jī)械手及小車的編程內(nèi)容。
     通過上面的分析及處理,給出了FMS三維交互式動畫程序的編程思路,通過具體的編程,我們實現(xiàn)了上面所有的內(nèi)容。在建立復(fù)雜的三維圖形時,通常都是從小的部分做起,逐步擴(kuò)大。Inline節(jié)點為我們提供了建立復(fù)雜模型的方便,它可以讓我們將復(fù)雜的模型拆分成多個簡單的部分,單獨編程并以單獨的文件名命名存儲,最后在一個主文件里用Inline節(jié)點將各部分組合在一起。在FMS的編程過程中,我們根據(jù)程序中主要部分的內(nèi)容,將其一一單獨編程,最后通過Inline節(jié)點將其組合在一起。
4 結(jié)論
 
  利用VRML編程,得到了一個具有交互作用、具有動畫效果的FMS的三維圖形(見圖1)。這對于研究FMS有非常大的幫助。當(dāng)設(shè)計一個新的FMS系統(tǒng)時,可以根據(jù)工廠的實際情況,利用這樣的方法,先建立它的三維模型;然后從人機(jī)工程、物料管理、設(shè)備的配置等方面對其進(jìn)行研究;最后給出一個完整的設(shè)計方案。利用VRML編寫的FMS系統(tǒng),可以進(jìn)行FMS的網(wǎng)絡(luò)教學(xué)實驗。

更多相關(guān)信息