国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于VRML的虛擬拆裝訓(xùn)練系統(tǒng)的實(shí)現(xiàn)

2012-01-22 10:30,,
船海工程 2012年6期
關(guān)鍵詞:有向圖虛擬環(huán)境頂點(diǎn)

,,

(天津理工大學(xué) 海運(yùn)學(xué)院,天津 300191)

實(shí)物拆裝訓(xùn)練多采取集中訓(xùn)練的方式,對(duì)時(shí)間、場(chǎng)地、設(shè)備等資源有較多的要求。在航海專業(yè)技術(shù)仿真培訓(xùn)中,目前國(guó)內(nèi)外廣泛應(yīng)用的有航海模擬器,輪機(jī)模擬器,而對(duì)拆裝仿真訓(xùn)練系統(tǒng)的研究和應(yīng)用比較少[1]。針對(duì)這一情況,考慮結(jié)合VRML和Java建立虛擬拆裝訓(xùn)練系統(tǒng)模擬實(shí)物拆裝。

1 系統(tǒng)的組成

針對(duì)船機(jī)拆裝訓(xùn)練要求,設(shè)計(jì)虛擬拆裝培訓(xùn)系統(tǒng)的主要內(nèi)容包括船舶產(chǎn)品的結(jié)構(gòu)展示、運(yùn)動(dòng)模擬、拆裝訓(xùn)練和拆裝測(cè)試。結(jié)構(gòu)展示的功能是多角度顯示產(chǎn)品的各個(gè)部件,使學(xué)員能夠了解船舶機(jī)械各部分的組成和在系統(tǒng)中所處的位置,掌握船舶產(chǎn)品的結(jié)構(gòu)。產(chǎn)品運(yùn)動(dòng)模擬的功能是使學(xué)員能清楚地觀看到機(jī)械內(nèi)部的工作情況。在拆裝訓(xùn)練中,在拆裝信息的引導(dǎo)下,學(xué)員利用鼠標(biāo),鍵盤與場(chǎng)景中的零部件交互,學(xué)習(xí)拆裝,熟悉拆裝序列,拆裝方法。在拆裝測(cè)試中,學(xué)員能夠檢驗(yàn)自己的學(xué)習(xí)結(jié)果,避免實(shí)物拆裝產(chǎn)生誤操作,同時(shí)也為教師提供了考核的依據(jù)。

2 系統(tǒng)的實(shí)現(xiàn)

2.1 建立虛擬裝配體模型

在虛擬拆裝培訓(xùn)系統(tǒng)中,采用VRML語(yǔ)言構(gòu)建虛擬環(huán)境,可供采用的三維模型工具有Pro/E,3dMax,Autocat等。Pro/E是非常適用的三維建模工具,如果具有詳細(xì)的圖紙,能夠建立精確的三維模型。而一般情況,很難得到產(chǎn)品的詳細(xì)圖紙,作為培訓(xùn)軟件,對(duì)于零部件的配合要求不是非常嚴(yán)格,在沒(méi)有確切的零部件圖紙的情況下,部分零部件可以采用3dmax作為主要的建模工具。3dmax是非常強(qiáng)大的三維建模工具,它具有為模型設(shè)置貼圖材質(zhì),燈光,動(dòng)畫等強(qiáng)大的功能,而且這些效果可以隨著模型一起轉(zhuǎn)換成vrml格式文件,可以取得比較逼真的效果。

2.2 復(fù)雜機(jī)械產(chǎn)品拆裝序列的確定

機(jī)械產(chǎn)品的拆裝存在多種可行的拆裝過(guò)程,在虛擬環(huán)境中,需要使得裝配體具有現(xiàn)實(shí)中裝配體的拆裝特性,即具有一定的拆裝序列,如何對(duì)該拆裝過(guò)程進(jìn)行模擬是需要解決的問(wèn)題。

裝配體的拆卸和安裝是可逆的過(guò)程,首先對(duì)拆卸過(guò)程進(jìn)行如下分析。

裝配體的拆卸過(guò)程具有一定的順序和限制,即某一零件的拆卸必須以另外的零件已經(jīng)拆卸完成為前提。對(duì)零件數(shù)量較少的裝配體而言,可行拆卸序列數(shù)量是有限的,在虛擬拆卸過(guò)程中,采用遍歷可行拆卸序列來(lái)檢驗(yàn)拆卸過(guò)程是簡(jiǎn)單可行的。但是對(duì)于復(fù)雜的裝配體,可行拆卸序列數(shù)量很多,以上方法很難實(shí)現(xiàn)。需要采用一定的算法和數(shù)據(jù)結(jié)構(gòu)來(lái)設(shè)計(jì)整個(gè)拆些過(guò)程。

機(jī)械產(chǎn)品的拆卸過(guò)程是一個(gè)有序的過(guò)程,可以采用有向圖的方式將零部件的拆卸過(guò)程表達(dá)出來(lái)。如圖1所示的有向圖中,每一個(gè)節(jié)點(diǎn)表示對(duì)某個(gè)零件的拆裝任務(wù),邊(i,j)表示在裝配序列中裝配任務(wù)i在裝配任務(wù)j的前面。在拆裝過(guò)程中,只有i任務(wù)完成了,才能完成j任務(wù)。那么,對(duì)機(jī)械產(chǎn)品的拆裝序列的求解就可以轉(zhuǎn)換成有向圖的拓?fù)渑判虻那蠼鈁2]。

圖1 有向圖

由圖1可知,有向圖的拓?fù)渑判虻慕饪臻g是不惟一的,可以存在多種排序序列。即在求解拆裝序列過(guò)程中,每一拆裝步驟中可選擇拆裝的零部件可能有多個(gè)。設(shè)計(jì)虛擬拆卸過(guò)程是一個(gè)動(dòng)態(tài)的過(guò)程,存在著學(xué)員對(duì)拆卸零件的選擇。學(xué)員通過(guò)交互選擇在每一拆裝步驟中,只能選擇一種零件進(jìn)行拆卸,所以當(dāng)所有可拆卸的零件都選擇完畢后,最終得到一條可行的拆卸序列。

設(shè)計(jì)虛擬拆裝過(guò)程中拆卸序列的求解方式如下。

首先,確定拆裝有向圖的數(shù)據(jù)結(jié)構(gòu),采用逆鄰接表[3]的方式來(lái)記錄有向圖中的頂點(diǎn)和邊的信息,見圖2。

圖2 有向圖的逆鄰接表

圖2是對(duì)圖1進(jìn)行存儲(chǔ)的逆鄰接表。由圖2可知,V1,V2節(jié)點(diǎn)不存在需要拆卸的先行節(jié)點(diǎn),所以直接可對(duì)其進(jìn)行拆卸,V3的先行節(jié)點(diǎn)是V1,必須先對(duì)V1進(jìn)行拆卸后才能拆卸V3,V4,V5,V6同理。

然后,確定拆裝序列。當(dāng)學(xué)員選擇拆卸零件進(jìn)行拆裝時(shí),觸發(fā)拆卸序列求解的具體步驟如下。

1)計(jì)算每個(gè)頂點(diǎn)的入度;

2)將入度為0的頂點(diǎn)入棧;

3)如果學(xué)員選擇的頂點(diǎn)為棧內(nèi)元素,則

①將該頂點(diǎn)放入拆卸序列中;將與其相鄰的頂點(diǎn)的入度減1;

②如果有新的入度為0的頂點(diǎn)出現(xiàn),將其放入棧中;

否則,操作錯(cuò)誤。

以上方法解決了復(fù)雜裝配體中拆卸序列求解的問(wèn)題,裝配體的安裝是拆卸的一個(gè)逆過(guò)程,安裝過(guò)程的有向圖可以由拆卸過(guò)程的有向圖來(lái)改造,只需將所有的邊的箭頭反向即可。所以安裝過(guò)程的序列求解方法與拆卸過(guò)程相同。并且,安裝過(guò)程的實(shí)現(xiàn)以及安裝過(guò)程中的信息處理與拆卸方法相同。

2.3 拆裝過(guò)程的交互信息處理

VRML文件建立虛擬環(huán)境實(shí)現(xiàn)對(duì)學(xué)員輸入的監(jiān)測(cè),拆裝過(guò)程模擬的功能。JAVA語(yǔ)言實(shí)現(xiàn)對(duì)拆裝序列的檢驗(yàn)和確定,以及引導(dǎo)性拆裝信息的顯示。具體信息處理方式見圖3。

圖3 拆卸過(guò)程信息處理

VRML是由節(jié)點(diǎn)組成的語(yǔ)言,通過(guò)節(jié)點(diǎn)來(lái)表達(dá)信息。信息處理的VRML部分主要通過(guò)節(jié)點(diǎn)表達(dá)零件模型信息和零件交互控制信息。JAVA部分主要包括獲取拆裝信息、判斷拆裝可行性、確定拆裝序列、顯示拆裝信息等。

在虛擬拆裝過(guò)程中,零件的交互式拆裝過(guò)程是通過(guò)學(xué)員的觸發(fā)作用產(chǎn)生的。零件的虛擬拆裝流程如下。

1)當(dāng)用戶點(diǎn)擊虛擬環(huán)境中的零件時(shí),就意味著要對(duì)零件進(jìn)行拆裝操作。這時(shí)由VRML部分的零件交互控制節(jié)點(diǎn)——接觸檢測(cè)器監(jiān)測(cè)學(xué)員的動(dòng)作,將觸發(fā)信息轉(zhuǎn)變成JAVA部分可識(shí)別的操作參數(shù),傳遞給JAVA實(shí)現(xiàn)部分。

2)JAVA實(shí)現(xiàn)部分的Script節(jié)點(diǎn)接收到操作參數(shù)后,根據(jù)設(shè)計(jì)的確定拆裝序列的算法進(jìn)行推理,判斷該零件是否可以拆裝。不管是否可拆裝,都會(huì)將拆裝信息顯示給用戶。

3)如果該零件是可拆裝的,則確定該零件為要拆裝的零件,將此信息發(fā)送到VRML部分中的零件模型信息節(jié)點(diǎn),改變?cè)摿慵奈恢?,或是觸發(fā)該零件的一個(gè)拆裝動(dòng)畫,完成該零件的拆裝。如果零件不可拆裝,等待下一個(gè)觸發(fā)。

4)當(dāng)所有的零件被拆裝后,產(chǎn)生一個(gè)拆裝序列。

2.4 拆裝方式的表達(dá)

機(jī)械產(chǎn)品的拆裝方式是多種多樣的。在拆裝方式的表達(dá)上,對(duì)于簡(jiǎn)單的連接方式的拆裝,例如定位銷的拔出,安裝,可以通過(guò)改變零件的位置來(lái)實(shí)現(xiàn),而對(duì)于比較復(fù)雜的拆裝,例如螺釘?shù)穆萁樱钊牡醺椎?,可以采用拆裝動(dòng)畫的形式表現(xiàn)。VRML提供了多種制作動(dòng)畫的方式,可以直接采用動(dòng)畫節(jié)點(diǎn)設(shè)置零件拆裝的動(dòng)畫,也可以將時(shí)間觸發(fā)器,位置插補(bǔ)器,方向插補(bǔ)器等一起應(yīng)用于設(shè)定零件拆裝動(dòng)畫。當(dāng)學(xué)員觸發(fā)可拆裝的零件后,VRML的零件交互控制節(jié)點(diǎn)可調(diào)用該零件的拆裝動(dòng)畫,展示零件的拆裝方法。通過(guò)這種動(dòng)畫的表達(dá),使得學(xué)員能夠準(zhǔn)確地理解零件的拆裝方式以及某些專用工具的使用,便于學(xué)員更好地掌握拆裝知識(shí)。動(dòng)畫完成后,零部件到達(dá)其拆裝后的位置或安裝的位置。

3 虛擬拆裝訓(xùn)練系統(tǒng)應(yīng)用實(shí)例

虛擬拆裝訓(xùn)練系統(tǒng)是通過(guò)瀏覽器和VRML插件顯示,所以整體可以通過(guò)網(wǎng)頁(yè)瀏覽,便于網(wǎng)絡(luò)遠(yuǎn)程示教。圖4為柴油機(jī)拆裝訓(xùn)練中的測(cè)試部分模塊。虛擬環(huán)境區(qū)是學(xué)員可以操作的區(qū)域,當(dāng)學(xué)員進(jìn)行操作時(shí),相應(yīng)的信息會(huì)顯示在右側(cè)。拆裝練習(xí)中,拆裝信息提示區(qū)會(huì)給學(xué)員下一步的拆裝以合理的提示,學(xué)員根據(jù)提示可以完成拆裝練習(xí)。而在拆裝測(cè)試中,對(duì)于學(xué)員的每個(gè)操作都會(huì)有正誤的判斷,可以檢驗(yàn)學(xué)員的學(xué)習(xí)成果。如果學(xué)員拆裝正確,則將操作的零部件加入拆裝序列區(qū),累計(jì)正確操作步數(shù)和剩余步數(shù);拆裝錯(cuò)誤,則顯示錯(cuò)誤信息,并累計(jì)錯(cuò)誤操作的步數(shù)。

圖4 柴油機(jī)拆裝訓(xùn)練中的測(cè)試部分模塊

4 結(jié)論

該系統(tǒng)是一種可供教學(xué)、拆裝實(shí)驗(yàn)應(yīng)用的培訓(xùn)系統(tǒng),為船機(jī)拆裝的有效展開提供了思路。但對(duì)于一個(gè)完善的培訓(xùn)系統(tǒng)而言,需要結(jié)合培訓(xùn)要求進(jìn)一步完善設(shè)備的種類,豐富拆裝的手段和方法,這也是下一步要做的工作。

[1] 史成軍,郭 晨,彭水生,等.虛擬現(xiàn)實(shí)技術(shù)在輪機(jī)模擬器中的應(yīng)用[J].大連海事大學(xué)學(xué)報(bào),2002(S1):39.

[2] 汪興謙,牛燕民,鄧諄諄.VRML與Java編程實(shí)例講解[M].北京:中國(guó)水利水電出版社,2001.

[3] 嚴(yán)蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu)[M].北京:清華大學(xué)出版社,1996:179-180.

猜你喜歡
有向圖虛擬環(huán)境頂點(diǎn)
廣義棱柱中的超歐拉有向圖
過(guò)非等腰銳角三角形頂點(diǎn)和垂心的圓的性質(zhì)及應(yīng)用(下)
過(guò)非等腰銳角三角形頂點(diǎn)和垂心的圓的性質(zhì)及應(yīng)用(上)
前庭刺激對(duì)虛擬環(huán)境三維空間定向的影響及與空間能力的相關(guān)關(guān)系
極大限制弧連通有向圖的度條件
如何通過(guò)虛擬環(huán)境有效管理Python第三方庫(kù)
有向圖的Roman k-控制
動(dòng)畫廣告設(shè)計(jì)中虛擬環(huán)境的構(gòu)建方法與運(yùn)用
論高校思想政治教育網(wǎng)絡(luò)虛擬環(huán)境的特征
基于有向圖模型的衛(wèi)星任務(wù)指令生成算法