




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、基于VRML-Java的虛擬現(xiàn)實技術(shù)在可視化裝配中的應(yīng)用朱正強(qiáng)1吳介一1孔競飛1易紅2(1東南大學(xué)CIMS中心,南京210096)(2東南大學(xué)機(jī)械工程系,南京210096)1)內(nèi)部Script節(jié)點Script節(jié)點的URL域可以包含一段JavaScript程序或者是鏈接的一個Javaclass.當(dāng)directOutput域為FALSE時可以將Script節(jié)點理解為事件通路上的一個智能節(jié)點,它接收事件輸入對其處理后產(chǎn)生事件輸出,這條事件通路仍由ROUTE指定.當(dāng)di-rectOutput為TRUE時程序可以獲得其他節(jié)點的引用,并直接對其域進(jìn)行賦值,而不必遵從ROUTE指定的事件通路.2)外部編程接
2、口EAI(external authoring inter-face)Script節(jié)點從VRML場景內(nèi)部提供了與Java的連接,而EAI定義了與外部HTML頁面中的Applet通信的接口.它的基本思想是將Java Applet與VRML置于同一Web頁面,在Java Applet中建立browser對象以標(biāo)識一個唯一的VRML場景,并由此獲得對VRML場景中已定義節(jié)點的引用,它通過直接指定引用節(jié)點的域值而達(dá)到動態(tài)效果.這樣,Java Applet即可控制VRML場景,也能進(jìn)行與HT-ML等其他媒體的交互以及網(wǎng)絡(luò)控制,從而可以實現(xiàn)復(fù)雜的虛擬環(huán)境系統(tǒng).EAI作為VRML標(biāo)準(zhǔn)的擴(kuò)充已經(jīng)提交ISO,有
3、望在將來正式成為國際標(biāo)準(zhǔn)的一部分.總之,很多功能既可通過Script節(jié)點也可利用EAI實現(xiàn),一般來說對于單一的VRML事件實現(xiàn)交互及運算功能可選擇內(nèi)部的Script,若需集成多種媒體,并進(jìn)行復(fù)雜網(wǎng)絡(luò)控制,則更宜于使用EAI,自然其編程也要復(fù)雜一些.在系統(tǒng)實現(xiàn)中需要進(jìn)行大量與服務(wù)器的通信,同時有比較復(fù)雜的用戶界面控制,為此采用EAI作為與VRML的交互手段.1.5動畫演示的實現(xiàn)用戶根據(jù)裝配CAPP系統(tǒng)推導(dǎo)得到的裝配順序3進(jìn)行可視化裝配驗證,當(dāng)裝配成功之后,一方面可以對原來的裝配順序進(jìn)行修改,同時也可將此虛擬裝配過程保存供其他用戶通過網(wǎng)絡(luò)回放,實現(xiàn)虛擬裝配的動畫演示.一般在VRML中往往通過使用插
4、值器節(jié)點改變對象或者視點的移動軌跡來實現(xiàn)動畫效果,但這種方式需要手工編寫VRML文件內(nèi)容,一旦改變了裝配路徑就需要重新改動源文件,因此靈活性不高.采用基于動態(tài)模型的運動控制,用戶裝配時保存零件運動的關(guān)鍵點,Java Applet在獲得關(guān)鍵點信息后,根據(jù)用戶指定的運動速率和運動方式(如按直線或曲線移動),在定時器的控制下得到下一時刻物體的位置并通過EAI發(fā)送到VRML場景中從而達(dá)到動畫效果.所有關(guān)于運動的計算和控制均脫離VRML由Java實現(xiàn),可以使用戶方便地對運動路徑進(jìn)行修改和控制,也有利于不同場合下對運動信息進(jìn)行共享.1.6碰撞檢測算法在系統(tǒng)中的應(yīng)用碰撞檢測是虛擬裝配時對裝配路徑進(jìn)行干涉檢測
5、的核心技術(shù).現(xiàn)在的VRML97標(biāo)準(zhǔn)中所提供的collision節(jié)點僅能檢測觀察者視點和物體之間是否發(fā)生碰撞,而不提供物體間的碰撞檢測,這部分功能需要另外擴(kuò)展.一種解決方法是在VRML場景中增加一個自定義的CollisionObject節(jié)點,把需要進(jìn)行碰撞檢測的物體納入其中,同時在VRML瀏覽器中加入用于碰撞檢測的函數(shù)庫5,而無論是對商業(yè)公司提供的VRML瀏覽器進(jìn)行擴(kuò)展還是自己編寫符合需要的瀏覽器都會影響通用性.為此我們考慮將碰撞檢測的功能在服務(wù)器端實現(xiàn),即由Applet獲得VRML物體的位置后將其作為參數(shù)傳送給服務(wù)器端的運算對象,并由其調(diào)用碰撞檢測函數(shù)庫對服務(wù)器端與其相應(yīng)的裝配模型進(jìn)行運算.A
6、pplet調(diào)用服務(wù)器端對象有幾種實現(xiàn)方式,如Socket,RMI,CORBA以及基于HTTP協(xié)議的pplet-Servlet通信,由于網(wǎng)絡(luò)所需傳輸?shù)牧髁坎淮?因此對于性能造成的影響是可以忍受的,而它的益處在于不需要對瀏覽器進(jìn)行擴(kuò)展,客戶端的運算壓力得到減輕,同時可以在不影響客戶端設(shè)置的情況下對核心運算模塊進(jìn)行升級.本文采用的SOLID2.0算法庫6是GJK算法7的一種實現(xiàn),很適合于基于多邊形表面描述的復(fù)雜幾何體的碰撞檢測.2應(yīng)用實例系統(tǒng)基于Java技術(shù)構(gòu)建,用戶界面采用Swing組件,出于實現(xiàn)的簡單性和通用性考慮,采用Ap-plet-Servlet通信實現(xiàn)客戶端和服務(wù)器之間的位置傳遞和結(jié)果返回
7、.基于SOLID2.0的碰撞檢測模塊用C+編寫并編譯成為動態(tài)鏈接庫,由服務(wù)器上的Ja-va程序通過JNI(Java native interface)對其進(jìn)行調(diào)用.目前基于“堆疊”思路的裝配驗證方式已經(jīng)完成,VRML模型直接由CAD文件輸出,裝配模型為類似的多邊形表面描述輔以裝配關(guān)系約束.用戶在客戶端按照裝配順序依次拖動零件到合適的裝配位置,期間可以進(jìn)行角度姿態(tài)調(diào)整,同時對裝配時的關(guān)鍵點位置進(jìn)行記錄并保存到服務(wù)器,裝配完成后可供動畫回放,裝配時是否發(fā)生干涉由碰撞檢測模塊實時運算.27第1期朱正強(qiáng)等:基于VRML-Java的虛擬現(xiàn)實技術(shù)在可視化裝配中的應(yīng)用圖1系統(tǒng)功能框圖形的模型表面描述,所采用
8、的多邊形數(shù)量越多,模型越精確,但同時帶來的渲染數(shù)據(jù)量也越大.VRML中采用IndexedFaceSet節(jié)點描述面的形狀并通過面的拼接實現(xiàn)任意形狀的幾何體外觀.當(dāng)CAD模型轉(zhuǎn)換為VRML模型之后,將會丟失精確性和具體的裝配特征從而不利于裝配時對其進(jìn)行精確控制.為了增強(qiáng)VRML環(huán)境下的控制和仿真功能,考慮在服務(wù)器端建立一個與客戶端VRML模型互為鏡像的模型,客戶端發(fā)出的碰撞檢測和精確控制等指令通過網(wǎng)絡(luò)傳到服務(wù)器端進(jìn)行運算并將結(jié)果傳回,然后由Java Applet通過EAI控制VRML模型的運動以反應(yīng)仿真結(jié)果.同時這樣的實現(xiàn)方式可以降低對客戶端軟硬件環(huán)境的要求,無須額外安裝定制的軟件,當(dāng)對服務(wù)器端的
9、核心功能庫進(jìn)行更新時也不用對客戶端進(jìn)行改動,具有很好的擴(kuò)展性和靈活性.實現(xiàn)CAD環(huán)境下的信息提取有以下幾種可能的途徑:1)直接利用CAD軟件的VRML導(dǎo)出功能目前主流的CAD軟件如ProE,Solid Edge都支持VRML格式的輸出,可以很方便地將其導(dǎo)入VRML裝配環(huán)境,但由于無法了解其轉(zhuǎn)換細(xì)節(jié),因此無法控制轉(zhuǎn)換精度也較難建立對應(yīng)的鏡像模型,在功能的擴(kuò)充上限制較大.2)通過產(chǎn)品模型數(shù)據(jù)轉(zhuǎn)換標(biāo)準(zhǔn)STEPSTEP作為國際標(biāo)準(zhǔn)得到了廣泛的支持,對CAD軟件導(dǎo)出的STEP文件進(jìn)行解析并由此得到VRML模型和裝配模型是一種可行的辦法.文獻(xiàn)4對此進(jìn)行了研究.3)通過CAD軟件的API通過CAD軟件提供的
10、應(yīng)用編程接口(API)是一種更為安全的做法,由程序供應(yīng)商提供的編程接口可以保證在各版本之間的一致性以及信息的精確性.PTC公司的Division Mockup5采用了這種方式將CAD數(shù)據(jù)轉(zhuǎn)換到它自己的專用數(shù)據(jù)格式,同樣也可以通過這種方式建立VRML模型.但它需要對不同CAD軟件開發(fā)不同的接口,實現(xiàn)起來較為復(fù)雜.1.4VRML和Java的結(jié)合VRML的節(jié)點中定義了事件作為節(jié)點對外的接口,分為代表輸入接口的事件輸入(eventIn)和代表輸出接口的事件輸出(eventOut).事件模型如圖2所示.圖2VRML事件模型節(jié)點間的事件通路由關(guān)鍵字ROUTE指定,當(dāng)事件源有事件發(fā)生,就可以通過事件通路使相
11、應(yīng)的節(jié)點發(fā)生變化,達(dá)到動態(tài)的效果.但僅僅通過這種簡單的事件模型還不能使VRML具備智能,無法在各事件間建立復(fù)雜的聯(lián)系,為了擴(kuò)展VRML的交互能力和處理能力需要程序語言的介入,VRML標(biāo)準(zhǔn)本身沒有指定編程語言,但在網(wǎng)絡(luò)環(huán)境下,Java是最具魅力的語言,它和VRML的結(jié)合顯得相當(dāng)自然,當(dāng)前的主流VRML瀏覽器也都對Java編程提供了支持.在VRML中使用Java有2種方式,即通過內(nèi)部Script節(jié)點和外部編程接口(EAI).26東南大學(xué)學(xué)報(自然科學(xué)版)第32卷L正日益拓寬其應(yīng)用領(lǐng)域.虛擬裝配是虛擬現(xiàn)實技術(shù)在制造業(yè)中的一項重要應(yīng)用.傳統(tǒng)的裝配體設(shè)計采用自底向上的方式,需要將零件制造出來后進(jìn)行裝配,
12、往往會造成裝配體各部件的干涉以及與設(shè)計目標(biāo)不符等缺陷.如此反復(fù),導(dǎo)致設(shè)計成本增加,開發(fā)周期延長.虛擬裝配借助虛擬現(xiàn)實技術(shù)可以在設(shè)計階段進(jìn)行裝配仿真,從而克服傳統(tǒng)裝配設(shè)計的缺陷.敏捷制造是為了應(yīng)對激烈的市場競爭而提出的先進(jìn)制造模式,以多種形式實現(xiàn)競爭環(huán)境下的敏捷性,主要包括個性化需求滿足、快速反應(yīng)性、低成本、生產(chǎn)系統(tǒng)的重組與資源的重用等.它強(qiáng)調(diào)各盟員企業(yè)之間的信息和資源共享.敏捷制造模式中的虛擬裝配有其自身特點:企業(yè)聯(lián)盟動態(tài)形成,各企業(yè)的設(shè)計開發(fā)環(huán)境不盡相同,因此構(gòu)建的虛擬裝配系統(tǒng)需要不受軟硬件平臺和CAD環(huán)境的約束.同時出于設(shè)備造價和易操作性方面的考慮,本文提出建立CAPP生成系統(tǒng),然后對其產(chǎn)
13、生的裝配工藝在普通工作站上通過開放式三維技術(shù)仿真裝配設(shè)計過程,以此作為虛擬裝配的一種簡化形式,這種方式可稱之為可視化裝配.VRML作為一種開放的國際標(biāo)準(zhǔn),可以用其構(gòu)建一個統(tǒng)一的三維交互式平臺,并可與同樣具有平臺無關(guān)性的Java語言相結(jié)合以滿足復(fù)雜應(yīng)用系統(tǒng)的需求.但VRML作為一種通用建模語言,并不是專為工程應(yīng)用領(lǐng)域設(shè)計的,為了適應(yīng)網(wǎng)絡(luò)傳輸?shù)男枰?其模型與CAD模型相比,在精確性和信息量方面要相差很多,因此它在制造業(yè)中的應(yīng)用受到了一定限制.本文對基于VRML的可視化裝配系統(tǒng)進(jìn)行了研究,提出一種裝配模型與顯示模型分離的功能結(jié)構(gòu),即以Browser Server為架構(gòu),裝配模型與顯示模型互為鏡像,裝
14、配模型在服務(wù)器端進(jìn)行仿真運算,而三維顯示模型下載到客戶端供用戶瀏覽.這樣可以充分發(fā)揮VRML模型的三維顯示、瀏覽功能并通過仿真模型擴(kuò)充系統(tǒng)功能.1系統(tǒng)結(jié)構(gòu)和關(guān)鍵技術(shù)1.1研究背景如何增強(qiáng)VRML的3D瀏覽、交互能力并將其應(yīng)用于工程設(shè)計領(lǐng)域,國內(nèi)外已進(jìn)行了一定的研究.Mathias Nousch和Bernhard Jung1設(shè)計的BEA-VER系統(tǒng),采用基于Web的技術(shù)實現(xiàn)了網(wǎng)絡(luò)環(huán)境下家具的虛擬裝配;密歇根大學(xué)的虛擬現(xiàn)實實驗室開展了一系列關(guān)于VRML在制造業(yè)中應(yīng)用的研究項目2,如船體運動仿真,船體制造仿真,虛擬制造中的機(jī)器人模型等;本文對VRML的模型特點、交互控制進(jìn)行了研究,提出了一種新型的應(yīng)
15、用結(jié)構(gòu),并對其在敏捷制造環(huán)境下的虛擬裝配中的應(yīng)用進(jìn)行了探索.東南大學(xué)機(jī)械工程系先前開展的裝配CAPP和虛擬裝配技術(shù)研究3中,采用寄生于CAD環(huán)境的虛擬裝配系統(tǒng)對裝配CAPP系統(tǒng)生成的裝配工藝進(jìn)行可視化裝配驗證.但由于不能脫離CAD環(huán)境,對于在網(wǎng)絡(luò)環(huán)境下進(jìn)行虛擬裝配驗證和裝配順序動畫演示的發(fā)布帶來了一定的困難,異地的用戶必須具備相同的CAD環(huán)境才能對虛擬裝配的過程進(jìn)行再現(xiàn),而這一點對于敏捷制造環(huán)境下的企業(yè)來說通常不能保證.因此可以考慮采用VRML和Java等完全基于Web的平臺無關(guān)技術(shù),這樣可在不同的硬件環(huán)境和軟件平臺上實現(xiàn)對裝配工藝的可視化驗證,并且其結(jié)果可供管理、銷售等人員參考,而不僅僅限于
16、工程技術(shù)人員,從而拓寬了信息共享的范圍.文獻(xiàn)1,2中采用的方法對實現(xiàn)以上目標(biāo)均有不足,對此本文提出一種網(wǎng)絡(luò)環(huán)境下基于VRML的虛擬裝配系統(tǒng)結(jié)構(gòu)并對其中的CAD環(huán)境下信息的提取和模型建立、VRML和Java的交互、碰撞檢測的實現(xiàn)、基于動態(tài)模型的網(wǎng)上動畫演示等關(guān)鍵技術(shù)進(jìn)行了研究.1.2系統(tǒng)結(jié)構(gòu)采用3層Browser Server結(jié)構(gòu),圖1顯示了系統(tǒng)的功能框圖.CAD客戶端和裝配客戶端分別提供基于瀏覽器的零件信息維護(hù)和可視化裝配的用戶界面.應(yīng)用層提供HTTP服務(wù)以及仿真運算和數(shù)據(jù)庫操作.資源層的數(shù)據(jù)庫存儲零件模型和相關(guān)信息.客戶層的三維顯示與應(yīng)用層的仿真運算分離,不僅是增強(qiáng)VRML功能的有效途徑,也
17、有利于核心運算模塊的升級維護(hù),提高系統(tǒng)的適應(yīng)性和擴(kuò)展性.1.3CAD環(huán)境下的信息提取以及模型的建立為使系統(tǒng)具備平臺無關(guān)以及適于網(wǎng)絡(luò)傳輸?shù)奶匦?需要將不同工作環(huán)境,不同CAD軟件產(chǎn)生的零部件信息和裝配信息導(dǎo)入為一種中性的格式,并由此產(chǎn)生用于客戶端三維顯示的VRML模型和用于服務(wù)器端裝配仿真的裝配模型.CAD模型具有非常精確的描述,包括用于制造或運算的尺寸描述和材料數(shù)據(jù),其表面往往由NURBS或Spline定義,但當(dāng)其用于實時交互時會帶來相當(dāng)大的渲染運算量.VRML為了提高實時交互性能,采用基于多邊25第1期朱正強(qiáng)等:基于VRML-Java的虛擬現(xiàn)實技術(shù)在可視化裝配中的應(yīng)用摘要:為實現(xiàn)建立在開放技
18、術(shù)標(biāo)準(zhǔn)之上的可視化裝配系統(tǒng),本文對基于VRML-Java的虛擬現(xiàn)實技術(shù)在工程設(shè)計領(lǐng)域的應(yīng)用進(jìn)行了研究,提出一種新型的Web環(huán)境下3D交互仿真結(jié)構(gòu).3D模型下載到客戶端顯示,復(fù)雜的運算和仿真在服務(wù)器上進(jìn)行,從而實現(xiàn)服務(wù)器端裝配模型和客戶端顯示模型的分離.在此基礎(chǔ)之上可以完成VRML場景的動態(tài)生成、裝配控制、碰撞檢測以及裝配過程的動畫回放等功能.該結(jié)構(gòu)不僅可用于網(wǎng)絡(luò)環(huán)境下的可視化裝配,也適合于其他領(lǐng)域基于Web的科學(xué)可視化.關(guān)鍵詞:VRML;Java;裝配;可視化;Web中圖分類號:TP391.9文獻(xiàn)標(biāo)識碼:A文章編號:1001-0505(2002)01-0024-05VRML-Java base
19、d virtual reality technology in assembly visualizationZhu Zhengqiang1Wu Jieyi1Kong Jingfei1Yi Hong2(1CIMS Center,Southeast University,Nanjing 210096,China)(2Department of Mechanical Engineering,Southeast University,Nanjing 210096,China)Abstract:To develop the visual assembly systembased on open tech
20、nology,the VRML-Java based vir-tual reality technology is discussed.This paper presents a novel interactive 3D simulation systemforWebbased environment.3D visualization is executed on the client side and complex computation and simula-tion on the server side.Thus,the visualization model and the asse
21、mbly model are distributed.Based onthis technology,the dynamic creation of VRML scene,the assembly control,the collision detection andthe animation of assembly sequence are realized.This architecture can be used in visual assembly systemand is also suitable for visualization in other research area.K
22、ey words:VRML;Java;assembly;visualization;Web收稿日期:2001-04-16.基金項目:國家自然科學(xué)基金資助項目(59889504).作者簡介:朱正強(qiáng)(1977),男,碩士生;吳介一(聯(lián)系人),男,教授,博士生導(dǎo)師,yjw.虛擬現(xiàn)實(virtual reality)最初指應(yīng)用沉浸式技術(shù)以提供真實體驗的三維交互式可視化環(huán)境.通常具有3個基本特征,即沉浸感(immersion),瀏覽性(navigation)和多感官的交互(interaction).由于這樣的系統(tǒng)造價高昂,操作復(fù)雜,尚無法在普通的工作環(huán)境中得到應(yīng)用.因此目前虛擬現(xiàn)實的含義有所拓寬,使用半
23、沉浸和非沉浸式技術(shù),通過顯示器對三維物體進(jìn)行瀏覽同樣可被稱為虛擬現(xiàn)實系統(tǒng),從而在更大的范圍中普及和應(yīng)用虛擬現(xiàn)實技術(shù).各種虛擬現(xiàn)實系統(tǒng)的核心通常都是具有增強(qiáng)的功能和行為表現(xiàn)的三維計算機(jī)模型.VRML(virtual realitymodeling language)就是一種用于通過World WideWeb發(fā)布這種模型并允許用戶使用帶有插件的普通瀏覽器對三維物體進(jìn)行瀏覽的國際標(biāo)準(zhǔn).雖然它不具備沉浸感,但是由于其易于實現(xiàn)、適合網(wǎng)絡(luò)傳輸,對建立基于Web的三維可視化交互式應(yīng)用提供了一種很好的解決方案.隨著網(wǎng)絡(luò)帶寬和計算機(jī)硬件性能的不斷提高,作為Web 3D技術(shù)主流的結(jié)論網(wǎng)絡(luò)環(huán)境下的可視化裝配是一個仍
24、在不斷發(fā)展的課題,其中許多關(guān)鍵技術(shù)有待進(jìn)一步深入研究.為了獲得更豐富的零件特征和裝配信息,我們準(zhǔn)備對從STEP文件中提取幾何特征和零件相對位置進(jìn)行研究.為了便于用戶操作,需要研究零件將要裝配到位時的靠接技術(shù).此外,如何減少網(wǎng)絡(luò)流量,提高實時性以及與Java3D技術(shù)的結(jié)合都是值得研究的問題.本文提出的客戶端完成三維瀏覽顯示和服務(wù)器端進(jìn)行仿真運算的結(jié)構(gòu)不僅可用于網(wǎng)絡(luò)環(huán)境下的可視化裝配,也適合于其他領(lǐng)域基于Web的科學(xué)可視化.參考文獻(xiàn)(References)1Nousch Mathias,Jung Bernhard.CAD on the World WideWeb:virtual assembly
25、of furniture with BEAVERA.In:Proceedings VRML99ofthe FourthSymposium on the VirtualReality Modeling LanguageC.Paderborn,Germany,1999.113 119.2Beier Laus-Peter.Web-based virtual reality in design andmanufacturing applicationsA.In:1st International EuroConference on ComputerApplications andInformation
26、 Technol-ogyin the Maritime IndustriesC.http: beier Papers compit2000 WebBasedVR.htm.2001 0105.3顧建鈞.敏捷制造環(huán)境下裝配CAPP和虛擬裝配技術(shù)研究D.南京:東南大學(xué)機(jī)械工程系,2000.3755.Gu Jianjun.CAPP andvirtual assembly in agile manufactur-ing environmentD.Nanjing:Department of MechanicalEngineering,Southeast Universi
27、ty,2000.37 55.(in Chi-nese)4Kim Cheol-young,Kim Namkug,Kim Yeongho,et al.Inter-net-based concurrent engineering:an interactive 3D systemwith markupA.In:Proceedings ofCIE1998ASME18thComputers in Engineering Conference:DETC98 CIE5522C.Atlanta,1998.55225任浩,譚慶平.基于VRML和Java的物理建模方法與實現(xiàn)J.計算機(jī)工程與科學(xué),2000,22(2)
28、:3639.Ren Hao,Tan Qingping.Amethod of physical modeling andimplementation based on VRML and JavaJ.ComputerEngineering andScience,2000,22(2):36 39.(in Chinese)6Gino Van Den Bergen.Afast and robustGJKimplementationfor collision detection of convex objectsJ.http: www.win.tue.nl cs tt gino solid .2000 0
29、8 11.7Cameron S.Enhancing GJK:computing minimum and pene-tration distances between convex polyhedraJ.ProceedingsofIEEE Int Confon Robotics andAutomation.1997,4:31123117.28東南大學(xué)學(xué)報(自然科學(xué)版)第32卷1)內(nèi)部Script節(jié)點Script節(jié)點的URL域可以包含一段JavaScript程序或者是鏈接的一個Javaclass.當(dāng)directOutput域為FALSE時可以將Script節(jié)點理解為事件通路上的一個智能節(jié)點,它接收
30、事件輸入對其處理后產(chǎn)生事件輸出,這條事件通路仍由ROUTE指定.當(dāng)di-rectOutput為TRUE時程序可以獲得其他節(jié)點的引用,并直接對其域進(jìn)行賦值,而不必遵從ROUTE指定的事件通路.2)外部編程接口EAI(external authoring inter-face)Script節(jié)點從VRML場景內(nèi)部提供了與Java的連接,而EAI定義了與外部HTML頁面中的Applet通信的接口.它的基本思想是將Java Applet與VRML置于同一Web頁面,在Java Applet中建立browser對象以標(biāo)識一個唯一的VRML場景,并由此獲得對VRML場景中已定義節(jié)點的引用,它通過直接指定引用
31、節(jié)點的域值而達(dá)到動態(tài)效果.這樣,Java Applet即可控制VRML場景,也能進(jìn)行與HT-ML等其他媒體的交互以及網(wǎng)絡(luò)控制,從而可以實現(xiàn)復(fù)雜的虛擬環(huán)境系統(tǒng).EAI作為VRML標(biāo)準(zhǔn)的擴(kuò)充已經(jīng)提交ISO,有望在將來正式成為國際標(biāo)準(zhǔn)的一部分.總之,很多功能既可通過Script節(jié)點也可利用EAI實現(xiàn),一般來說對于單一的VRML事件實現(xiàn)交互及運算功能可選擇內(nèi)部的Script,若需集成多種媒體,并進(jìn)行復(fù)雜網(wǎng)絡(luò)控制,則更宜于使用EAI,自然其編程也要復(fù)雜一些.在系統(tǒng)實現(xiàn)中需要進(jìn)行大量與服務(wù)器的通信,同時有比較復(fù)雜的用戶界面控制,為此采用EAI作為與VRML的交互手段.1.5動畫演示的實現(xiàn)用戶根據(jù)裝配CAP
32、P系統(tǒng)推導(dǎo)得到的裝配順序3進(jìn)行可視化裝配驗證,當(dāng)裝配成功之后,一方面可以對原來的裝配順序進(jìn)行修改,同時也可將此虛擬裝配過程保存供其他用戶通過網(wǎng)絡(luò)回放,實現(xiàn)虛擬裝配的動畫演示.一般在VRML中往往通過使用插值器節(jié)點改變對象或者視點的移動軌跡來實現(xiàn)動畫效果,但這種方式需要手工編寫VRML文件內(nèi)容,一旦改變了裝配路徑就需要重新改動源文件,因此靈活性不高.采用基于動態(tài)模型的運動控制,用戶裝配時保存零件運動的關(guān)鍵點,Java Applet在獲得關(guān)鍵點信息后,根據(jù)用戶指定的運動速率和運動方式(如按直線或曲線移動),在定時器的控制下得到下一時刻物體的位置并通過EAI發(fā)送到VRML場景中從而達(dá)到動畫效果.所有
33、關(guān)于運動的計算和控制均脫離VRML由Java實現(xiàn),可以使用戶方便地對運動路徑進(jìn)行修改和控制,也有利于不同場合下對運動信息進(jìn)行共享.1.6碰撞檢測算法在系統(tǒng)中的應(yīng)用碰撞檢測是虛擬裝配時對裝配路徑進(jìn)行干涉檢測的核心技術(shù).現(xiàn)在的VRML97標(biāo)準(zhǔn)中所提供的collision節(jié)點僅能檢測觀察者視點和物體之間是否發(fā)生碰撞,而不提供物體間的碰撞檢測,這部分功能需要另外擴(kuò)展.一種解決方法是在VRML場景中增加一個自定義的CollisionObject節(jié)點,把需要進(jìn)行碰撞檢測的物體納入其中,同時在VRML瀏覽器中加入用于碰撞檢測的函數(shù)庫5,而無論是對商業(yè)公司提供的VRML瀏覽器進(jìn)行擴(kuò)展還是自己編寫符合需要的瀏覽
34、器都會影響通用性.為此我們考慮將碰撞檢測的功能在服務(wù)器端實現(xiàn),即由Applet獲得VRML物體的位置后將其作為參數(shù)傳送給服務(wù)器端的運算對象,并由其調(diào)用碰撞檢測函數(shù)庫對服務(wù)器端與其相應(yīng)的裝配模型進(jìn)行運算.Applet調(diào)用服務(wù)器端對象有幾種實現(xiàn)方式,如Socket,RMI,CORBA以及基于HTTP協(xié)議的pplet-Servlet通信,由于網(wǎng)絡(luò)所需傳輸?shù)牧髁坎淮?因此對于性能造成的影響是可以忍受的,而它的益處在于不需要對瀏覽器進(jìn)行擴(kuò)展,客戶端的運算壓力得到減輕,同時可以在不影響客戶端設(shè)置的情況下對核心運算模塊進(jìn)行升級.本文采用的SOLID2.0算法庫6是GJK算法7的一種實現(xiàn),很適合于基于多邊形表
35、面描述的復(fù)雜幾何體的碰撞檢測.2應(yīng)用實例系統(tǒng)基于Java技術(shù)構(gòu)建,用戶界面采用Swing組件,出于實現(xiàn)的簡單性和通用性考慮,采用Ap-plet-Servlet通信實現(xiàn)客戶端和服務(wù)器之間的位置傳遞和結(jié)果返回.基于SOLID2.0的碰撞檢測模塊用C+編寫并編譯成為動態(tài)鏈接庫,由服務(wù)器上的Ja-va程序通過JNI(Java native interface)對其進(jìn)行調(diào)用.目前基于“堆疊”思路的裝配驗證方式已經(jīng)完成,VRML模型直接由CAD文件輸出,裝配模型為類似的多邊形表面描述輔以裝配關(guān)系約束.用戶在客戶端按照裝配順序依次拖動零件到合適的裝配位置,期間可以進(jìn)行角度姿態(tài)調(diào)整,同時對裝配時的關(guān)鍵點位置進(jìn)
36、行記錄并保存到服務(wù)器,裝配完成后可供動畫回放,裝配時是否發(fā)生干涉由碰撞檢測模塊實時運算.27第1期朱正強(qiáng)等:基于VRML-Java的虛擬現(xiàn)實技術(shù)在可視化裝配中的應(yīng)用圖1系統(tǒng)功能框圖形的模型表面描述,所采用的多邊形數(shù)量越多,模型越精確,但同時帶來的渲染數(shù)據(jù)量也越大.VRML中采用IndexedFaceSet節(jié)點描述面的形狀并通過面的拼接實現(xiàn)任意形狀的幾何體外觀.當(dāng)CAD模型轉(zhuǎn)換為VRML模型之后,將會丟失精確性和具體的裝配特征從而不利于裝配時對其進(jìn)行精確控制.為了增強(qiáng)VRML環(huán)境下的控制和仿真功能,考慮在服務(wù)器端建立一個與客戶端VRML模型互為鏡像的模型,客戶端發(fā)出的碰撞檢測和精確控制等指令通過
37、網(wǎng)絡(luò)傳到服務(wù)器端進(jìn)行運算并將結(jié)果傳回,然后由Java Applet通過EAI控制VRML模型的運動以反應(yīng)仿真結(jié)果.同時這樣的實現(xiàn)方式可以降低對客戶端軟硬件環(huán)境的要求,無須額外安裝定制的軟件,當(dāng)對服務(wù)器端的核心功能庫進(jìn)行更新時也不用對客戶端進(jìn)行改動,具有很好的擴(kuò)展性和靈活性.實現(xiàn)CAD環(huán)境下的信息提取有以下幾種可能的途徑:1)直接利用CAD軟件的VRML導(dǎo)出功能目前主流的CAD軟件如ProE,Solid Edge都支持VRML格式的輸出,可以很方便地將其導(dǎo)入VRML裝配環(huán)境,但由于無法了解其轉(zhuǎn)換細(xì)節(jié),因此無法控制轉(zhuǎn)換精度也較難建立對應(yīng)的鏡像模型,在功能的擴(kuò)充上限制較大.2)通過產(chǎn)品模型數(shù)據(jù)轉(zhuǎn)換標(biāo)
38、準(zhǔn)STEPSTEP作為國際標(biāo)準(zhǔn)得到了廣泛的支持,對CAD軟件導(dǎo)出的STEP文件進(jìn)行解析并由此得到VRML模型和裝配模型是一種可行的辦法.文獻(xiàn)4對此進(jìn)行了研究.3)通過CAD軟件的API通過CAD軟件提供的應(yīng)用編程接口(API)是一種更為安全的做法,由程序供應(yīng)商提供的編程接口可以保證在各版本之間的一致性以及信息的精確性.PTC公司的Division Mockup5采用了這種方式將CAD數(shù)據(jù)轉(zhuǎn)換到它自己的專用數(shù)據(jù)格式,同樣也可以通過這種方式建立VRML模型.但它需要對不同CAD軟件開發(fā)不同的接口,實現(xiàn)起來較為復(fù)雜.1.4VRML和Java的結(jié)合VRML的節(jié)點中定義了事件作為節(jié)點對外的接口,分為代表
39、輸入接口的事件輸入(eventIn)和代表輸出接口的事件輸出(eventOut).事件模型如圖2所示.圖2VRML事件模型節(jié)點間的事件通路由關(guān)鍵字ROUTE指定,當(dāng)事件源有事件發(fā)生,就可以通過事件通路使相應(yīng)的節(jié)點發(fā)生變化,達(dá)到動態(tài)的效果.但僅僅通過這種簡單的事件模型還不能使VRML具備智能,無法在各事件間建立復(fù)雜的聯(lián)系,為了擴(kuò)展VRML的交互能力和處理能力需要程序語言的介入,VRML標(biāo)準(zhǔn)本身沒有指定編程語言,但在網(wǎng)絡(luò)環(huán)境下,Java是最具魅力的語言,它和VRML的結(jié)合顯得相當(dāng)自然,當(dāng)前的主流VRML瀏覽器也都對Java編程提供了支持.在VRML中使用Java有2種方式,即通過內(nèi)部Script節(jié)
40、點和外部編程接口(EAI).26東南大學(xué)學(xué)報(自然科學(xué)版)第32卷L正日益拓寬其應(yīng)用領(lǐng)域.虛擬裝配是虛擬現(xiàn)實技術(shù)在制造業(yè)中的一項重要應(yīng)用.傳統(tǒng)的裝配體設(shè)計采用自底向上的方式,需要將零件制造出來后進(jìn)行裝配,往往會造成裝配體各部件的干涉以及與設(shè)計目標(biāo)不符等缺陷.如此反復(fù),導(dǎo)致設(shè)計成本增加,開發(fā)周期延長.虛擬裝配借助虛擬現(xiàn)實技術(shù)可以在設(shè)計階段進(jìn)行裝配仿真,從而克服傳統(tǒng)裝配設(shè)計的缺陷.敏捷制造是為了應(yīng)對激烈的市場競爭而提出的先進(jìn)制造模式,以多種形式實現(xiàn)競爭環(huán)境下的敏捷性,主要包括個性化需求滿足、快速反應(yīng)性、低成本、生產(chǎn)系統(tǒng)的重組與資源的重用等.它強(qiáng)調(diào)各盟員企業(yè)之間的信息和資源共享.敏捷制造模式中的虛擬
41、裝配有其自身特點:企業(yè)聯(lián)盟動態(tài)形成,各企業(yè)的設(shè)計開發(fā)環(huán)境不盡相同,因此構(gòu)建的虛擬裝配系統(tǒng)需要不受軟硬件平臺和CAD環(huán)境的約束.同時出于設(shè)備造價和易操作性方面的考慮,本文提出建立CAPP生成系統(tǒng),然后對其產(chǎn)生的裝配工藝在普通工作站上通過開放式三維技術(shù)仿真裝配設(shè)計過程,以此作為虛擬裝配的一種簡化形式,這種方式可稱之為可視化裝配.VRML作為一種開放的國際標(biāo)準(zhǔn),可以用其構(gòu)建一個統(tǒng)一的三維交互式平臺,并可與同樣具有平臺無關(guān)性的Java語言相結(jié)合以滿足復(fù)雜應(yīng)用系統(tǒng)的需求.但VRML作為一種通用建模語言,并不是專為工程應(yīng)用領(lǐng)域設(shè)計的,為了適應(yīng)網(wǎng)絡(luò)傳輸?shù)男枰?其模型與CAD模型相比,在精確性和信息量方面要相
42、差很多,因此它在制造業(yè)中的應(yīng)用受到了一定限制.本文對基于VRML的可視化裝配系統(tǒng)進(jìn)行了研究,提出一種裝配模型與顯示模型分離的功能結(jié)構(gòu),即以Browser Server為架構(gòu),裝配模型與顯示模型互為鏡像,裝配模型在服務(wù)器端進(jìn)行仿真運算,而三維顯示模型下載到客戶端供用戶瀏覽.這樣可以充分發(fā)揮VRML模型的三維顯示、瀏覽功能并通過仿真模型擴(kuò)充系統(tǒng)功能.1系統(tǒng)結(jié)構(gòu)和關(guān)鍵技術(shù)1.1研究背景如何增強(qiáng)VRML的3D瀏覽、交互能力并將其應(yīng)用于工程設(shè)計領(lǐng)域,國內(nèi)外已進(jìn)行了一定的研究.Mathias Nousch和Bernhard Jung1設(shè)計的BEA-VER系統(tǒng),采用基于Web的技術(shù)實現(xiàn)了網(wǎng)絡(luò)環(huán)境下家具的虛擬
43、裝配;密歇根大學(xué)的虛擬現(xiàn)實實驗室開展了一系列關(guān)于VRML在制造業(yè)中應(yīng)用的研究項目2,如船體運動仿真,船體制造仿真,虛擬制造中的機(jī)器人模型等;本文對VRML的模型特點、交互控制進(jìn)行了研究,提出了一種新型的應(yīng)用結(jié)構(gòu),并對其在敏捷制造環(huán)境下的虛擬裝配中的應(yīng)用進(jìn)行了探索.東南大學(xué)機(jī)械工程系先前開展的裝配CAPP和虛擬裝配技術(shù)研究3中,采用寄生于CAD環(huán)境的虛擬裝配系統(tǒng)對裝配CAPP系統(tǒng)生成的裝配工藝進(jìn)行可視化裝配驗證.但由于不能脫離CAD環(huán)境,對于在網(wǎng)絡(luò)環(huán)境下進(jìn)行虛擬裝配驗證和裝配順序動畫演示的發(fā)布帶來了一定的困難,異地的用戶必須具備相同的CAD環(huán)境才能對虛擬裝配的過程進(jìn)行再現(xiàn),而這一點對于敏捷制造環(huán)
44、境下的企業(yè)來說通常不能保證.因此可以考慮采用VRML和Java等完全基于Web的平臺無關(guān)技術(shù),這樣可在不同的硬件環(huán)境和軟件平臺上實現(xiàn)對裝配工藝的可視化驗證,并且其結(jié)果可供管理、銷售等人員參考,而不僅僅限于工程技術(shù)人員,從而拓寬了信息共享的范圍.文獻(xiàn)1,2中采用的方法對實現(xiàn)以上目標(biāo)均有不足,對此本文提出一種網(wǎng)絡(luò)環(huán)境下基于VRML的虛擬裝配系統(tǒng)結(jié)構(gòu)并對其中的CAD環(huán)境下信息的提取和模型建立、VRML和Java的交互、碰撞檢測的實現(xiàn)、基于動態(tài)模型的網(wǎng)上動畫演示等關(guān)鍵技術(shù)進(jìn)行了研究.1.2系統(tǒng)結(jié)構(gòu)采用3層Browser Server結(jié)構(gòu),圖1顯示了系統(tǒng)的功能框圖.CAD客戶端和裝配客戶端分別提供基于瀏
45、覽器的零件信息維護(hù)和可視化裝配的用戶界面.應(yīng)用層提供HTTP服務(wù)以及仿真運算和數(shù)據(jù)庫操作.資源層的數(shù)據(jù)庫存儲零件模型和相關(guān)信息.客戶層的三維顯示與應(yīng)用層的仿真運算分離,不僅是增強(qiáng)VRML功能的有效途徑,也有利于核心運算模塊的升級維護(hù),提高系統(tǒng)的適應(yīng)性和擴(kuò)展性.1.3CAD環(huán)境下的信息提取以及模型的建立為使系統(tǒng)具備平臺無關(guān)以及適于網(wǎng)絡(luò)傳輸?shù)奶匦?需要將不同工作環(huán)境,不同CAD軟件產(chǎn)生的零部件信息和裝配信息導(dǎo)入為一種中性的格式,并由此產(chǎn)生用于客戶端三維顯示的VRML模型和用于服務(wù)器端裝配仿真的裝配模型.CAD模型具有非常精確的描述,包括用于制造或運算的尺寸描述和材料數(shù)據(jù),其表面往往由NURBS或S
46、pline定義,但當(dāng)其用于實時交互時會帶來相當(dāng)大的渲染運算量.VRML為了提高實時交互性能,采用基于多邊25第1期朱正強(qiáng)等:基于VRML-Java的虛擬現(xiàn)實技術(shù)在可視化裝配中的應(yīng)用摘要:為實現(xiàn)建立在開放技術(shù)標(biāo)準(zhǔn)之上的可視化裝配系統(tǒng),本文對基于VRML-Java的虛擬現(xiàn)實技術(shù)在工程設(shè)計領(lǐng)域的應(yīng)用進(jìn)行了研究,提出一種新型的Web環(huán)境下3D交互仿真結(jié)構(gòu).3D模型下載到客戶端顯示,復(fù)雜的運算和仿真在服務(wù)器上進(jìn)行,從而實現(xiàn)服務(wù)器端裝配模型和客戶端顯示模型的分離.在此基礎(chǔ)之上可以完成VRML場景的動態(tài)生成、裝配控制、碰撞檢測以及裝配過程的動畫回放等功能.該結(jié)構(gòu)不僅可用于網(wǎng)絡(luò)環(huán)境下的可視化裝配,也適合于其他
47、領(lǐng)域基于Web的科學(xué)可視化.關(guān)鍵詞:VRML;Java;裝配;可視化;Web中圖分類號:TP391.9文獻(xiàn)標(biāo)識碼:A文章編號:1001-0505(2002)01-0024-05VRML-Java based virtual reality technology in assembly visualizationZhu Zhengqiang1Wu Jieyi1Kong Jingfei1Yi Hong2(1CIMS Center,Southeast University,Nanjing 210096,China)(2Department of Mechanical Engineering,Sout
48、heast University,Nanjing 210096,China)Abstract:To develop the visual assembly systembased on open technology,the VRML-Java based vir-tual reality technology is discussed.This paper presents a novel interactive 3D simulation systemforWebbased environment.3D visualization is executed on the client sid
49、e and complex computation and simula-tion on the server side.Thus,the visualization model and the assembly model are distributed.Based onthis technology,the dynamic creation of VRML scene,the assembly control,the collision detection andthe animation of assembly sequence are realized.This architectur
50、e can be used in visual assembly systemand is also suitable for visualization in other research area.Key words:VRML;Java;assembly;visualization;Web收稿日期:2001-04-16.基金項目:國家自然科學(xué)基金資助項目(59889504).作者簡介:朱正強(qiáng)(1977),男,碩士生;吳介一(聯(lián)系人),男,教授,博士生導(dǎo)師,yjw.虛擬現(xiàn)實(virtual reality)最初指應(yīng)用沉浸式技術(shù)以提供真實體驗的三維交互式可視化環(huán)境.通常具有3個基本特征,即沉浸
51、感(immersion),瀏覽性(navigation)和多感官的交互(interaction).由于這樣的系統(tǒng)造價高昂,操作復(fù)雜,尚無法在普通的工作環(huán)境中得到應(yīng)用.因此目前虛擬現(xiàn)實的含義有所拓寬,使用半沉浸和非沉浸式技術(shù),通過顯示器對三維物體進(jìn)行瀏覽同樣可被稱為虛擬現(xiàn)實系統(tǒng),從而在更大的范圍中普及和應(yīng)用虛擬現(xiàn)實技術(shù).各種虛擬現(xiàn)實系統(tǒng)的核心通常都是具有增強(qiáng)的功能和行為表現(xiàn)的三維計算機(jī)模型.VRML(virtual realitymodeling language)就是一種用于通過World WideWeb發(fā)布這種模型并允許用戶使用帶有插件的普通瀏覽器對三維物體進(jìn)行瀏覽的國際標(biāo)準(zhǔn).雖然它不具備沉浸感,但是由于其易于實現(xiàn)、適合網(wǎng)絡(luò)傳輸,對建立基于Web的三維可視化交互式應(yīng)用提供了一種很好的解決方案.隨著網(wǎng)絡(luò)帶寬和計算機(jī)硬件性能的不斷提高,作為Web 3D技
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)村畜牧業(yè)生產(chǎn)與疫情防控責(zé)任合同
- 固定支架租賃合同
- 石油化工行業(yè)生產(chǎn)安全規(guī)范指南
- 藥物治療基礎(chǔ)復(fù)習(xí)測試卷含答案
- 新能源汽車租憑合同協(xié)議書
- 3 《自己之歌》公開課一等獎創(chuàng)新教案統(tǒng)編版高中語文選擇性必修中冊
- 《世界經(jīng)濟(jì)的全球化》戰(zhàn)后世界格局的演變課件-3
- 上海店鋪合租合同范本
- 辦公集裝購買合同范本
- 房車大白轉(zhuǎn)讓合同范本
- (一模)2025年廣州市普通高中畢業(yè)班綜合測試(一)英語試卷(含答案詳解)
- 2025年河南資本集團(tuán)招聘筆試參考題庫含答案解析
- 《十萬個為什么》整本書閱讀-課件-四年級下冊語文(統(tǒng)編版)
- 走近湖湘紅色人物智慧樹知到答案2024年湖南工商大學(xué)
- 【崗位管理】保利地產(chǎn)集團(tuán)職位說明書
- PRS-761-313技術(shù)使用說明書
- 燃?xì)夤こ虒I(yè)中級職稱理論考試題庫-建設(shè)工程專業(yè)中級職稱理論考試題庫
- 鐵路建設(shè)項目施工企業(yè)信用評價辦法(鐵總建設(shè)〔2018〕124號)
- 鴿巢問題(例1、例2)[1]
- 完整版佛教葬禮儀式
- 【課件】第六章 模型或原型的制作課件-高中通用技術(shù)蘇教版(2019)必修《技術(shù)與設(shè)計1》
評論
0/150
提交評論