趙育良 蘇媛媛 王淑娟
(海軍航空大學(xué)青島校區(qū) 青島 266041)
作為高精密航空光學(xué)設(shè)備,某新型航空偵察裝備為了滿足遠(yuǎn)程偵照的需要,需加裝長焦鏡頭,其體積和重量都較普通偵察設(shè)備更大,而由于其維護(hù)工作主要需圍繞工作房和飛機(jī)上展開,需實現(xiàn)對相機(jī)的安裝、運(yùn)輸?shù)裙ぷ?。整個運(yùn)輸和安裝過程的保障由運(yùn)輸裝卸車、相機(jī)裝卸滑車、設(shè)備檢測擱置車、相機(jī)吊裝平平衡架和吊車等組成,操作過程復(fù)雜,精度要求高,需要經(jīng)過反復(fù)訓(xùn)練才能達(dá)到規(guī)程要求。該工作傳統(tǒng)的訓(xùn)練方式往往是利用維護(hù)規(guī)程、多媒體、錄像和教材等資源結(jié)合實裝訓(xùn)練開展,這些訓(xùn)練方式可交互性差,訓(xùn)練費(fèi)效比高,且存在受訓(xùn)人員數(shù)量和時間難以保證的缺陷[1~2]?;诖?,結(jié)合維護(hù)規(guī)程要求,我們開發(fā)了基于EONStudio的基于桌面的該型偵察設(shè)備內(nèi)外場轉(zhuǎn)運(yùn)仿真訓(xùn)練系統(tǒng)。
系統(tǒng)采用計算機(jī)仿真技術(shù),依據(jù)該型裝備的維護(hù)規(guī)程和相關(guān)要求,構(gòu)建一套包括仿真環(huán)境、仿真設(shè)備、維護(hù)工具及維修過程信息的綜合訓(xùn)練系統(tǒng)。該系統(tǒng)針對某型相機(jī)的內(nèi)外場轉(zhuǎn)運(yùn)過程及操作要求,在三維環(huán)境下實現(xiàn)基于PC機(jī)桌面的人機(jī)交互操作訓(xùn)練。系統(tǒng)主要具有虛擬訓(xùn)練、訓(xùn)練管理、學(xué)習(xí)查詢及多媒體教學(xué)等四個功能模塊,其核心是相機(jī)轉(zhuǎn)運(yùn)虛擬仿真訓(xùn)練模塊,該模塊以維護(hù)規(guī)程為依據(jù),完成相機(jī)內(nèi)外場轉(zhuǎn)運(yùn)的整個操作流程。根據(jù)規(guī)程規(guī)定,主要包括以下三個過程:相機(jī)工作房安裝過程;從庫房至飛機(jī)的運(yùn)輸過程;飛機(jī)上的安裝過程。用到的轉(zhuǎn)運(yùn)仿真邏輯模型嚴(yán)格按照規(guī)程規(guī)定,構(gòu)建上述三個過程中的子流程,根據(jù)轉(zhuǎn)運(yùn)過程中用到的地面輔助維護(hù)設(shè)備及工具建立模型組件,并根據(jù)相關(guān)設(shè)備的使用操作原理構(gòu)建其屬性及接口,為后續(xù)的轉(zhuǎn)運(yùn)過程的仿真提供支持。在仿真訓(xùn)練過程中,提供操作步驟提示信息,并提供當(dāng)前操作部分的閃亮提示,便于初學(xué)者訓(xùn)練。系統(tǒng)亦可關(guān)閉提示信息,并記錄訓(xùn)練信息,便于參訓(xùn)人員的訓(xùn)練效果監(jiān)控及考核。圖1為系統(tǒng)總體結(jié)構(gòu)圖。
圖1 系統(tǒng)的總體結(jié)構(gòu)圖
虛擬仿真平臺利用C#結(jié)合Eon Studio進(jìn)行開發(fā)。Eon Studio是目前全世界公認(rèn)的整合性、延展性最好虛擬現(xiàn)實開發(fā)展示系統(tǒng)[3~4]。它支持 55 種CAD格式,支持90%以上的外設(shè)而無需編程。Eon提供一套完整的劇院級運(yùn)算解決方案,讓整體的渲染畫質(zhì)能近似于大手筆預(yù)算所制作出的好萊塢電影,使用CG技術(shù)提供優(yōu)越的照片級的視覺效果。同時它支持OpenGL或Direct3D硬件加速,用戶可以自定義渲染品質(zhì)、燈光模式、陰影模式和填充模式等,可以方便高效地開發(fā)仿真程序。但是單獨(dú)的Eon生成的仿真程序,交互性和可控性差,也不能進(jìn)行實時的動態(tài)仿真。系統(tǒng)建模采用3DSMAX三維建模應(yīng)用軟件,EON Studio專門提供了用于3D MAX模型導(dǎo)出的EON Raptor插件,可直接將模型導(dǎo)出并保存成EON文件格式。通過在C#程序中使用Eon附帶的Eon控件調(diào)用、驅(qū)動Eon仿真程序,進(jìn)行仿真程序的二次開發(fā),加深人機(jī)交互的深度,拓寬了人機(jī)交互的范圍,增強(qiáng)仿真程序的可控性,實現(xiàn)了較復(fù)雜的虛擬仿真,并且可以按照訓(xùn)練大綱將訓(xùn)練任務(wù)分塊,解決了單純的Eon仿真程序在加載大場景時耗時、響應(yīng)速度慢、實時性差的缺點(diǎn)。
1)主要模型
圖2 裝卸車模型
2)模型設(shè)計要求
偵察設(shè)備及其輔助維護(hù)設(shè)備是虛擬仿真的目標(biāo)對象,大部分設(shè)備的物理模型都要完整的構(gòu)建出來。由于模型最終用于制作虛擬仿真訓(xùn)練系統(tǒng),故要求模型從外觀、結(jié)構(gòu)及尺寸比例必須與仿真對象一致。虛擬環(huán)境下的裝備物理模型要用在實時渲染引擎中,而不是用于動畫或靜態(tài)效果圖的制作,因此虛擬現(xiàn)實軟件對于模型的質(zhì)量有更高的要求[5]。且盡量對模型進(jìn)行三個方面的優(yōu)化:一是面的數(shù)量。EON的一個很大的優(yōu)點(diǎn)是對模型的點(diǎn)、線、面有較強(qiáng)的優(yōu)化能力,但在虛擬仿真系統(tǒng)制作過程中,為避免過度占用資源,要盡量減少模型面數(shù);二是貼圖的使用。貼圖集中放在一張2m×2n的圖上,以節(jié)約EON調(diào)入貼圖的時間;三是對仿真模型進(jìn)行適當(dāng)?shù)姆纸M及命名,以便在仿真腳本編寫時方便調(diào)用。
仿真系統(tǒng)不僅要求形象直觀地將裝備各個部分的3D模型以轉(zhuǎn)運(yùn)過程展現(xiàn)給使用者,而且要求能夠很好地指導(dǎo)使用者進(jìn)行轉(zhuǎn)運(yùn)訓(xùn)練,還要能通過訓(xùn)練過程記錄,實現(xiàn)訓(xùn)練過程的監(jiān)控及考核。整個系統(tǒng)在實現(xiàn)過程中涉及到了數(shù)據(jù)庫、3D模型建立、行為模型制作、二次開發(fā)等方面,主要包括裝備模型制作、行為邏輯模型編輯、數(shù)據(jù)庫建立等幾個部分,如圖3所示。
圖3 仿真拆裝實現(xiàn)流程
系統(tǒng)的實現(xiàn)是以C#為平臺,在對EON Studio二次開發(fā)的基礎(chǔ)上進(jìn)行的,二次開發(fā)要求開發(fā)對象要足夠開放,而EON提供了對外部程序的接口EonX,完全可以實現(xiàn)對其進(jìn)行應(yīng)用開發(fā),并且EON有豐富的節(jié)點(diǎn)、元件庫,可以方便地給三維模型加上行為。鑒于C#方便、高效及其強(qiáng)大的功能,本系統(tǒng)用它作為二次開發(fā)的平臺,最終實現(xiàn)系統(tǒng)的功能需要。圖4為EON與C#的接口關(guān)系[6~9]。
圖4 EON與C#接口關(guān)系
航空相機(jī)本身結(jié)構(gòu)復(fù)雜,附屬設(shè)備多,零部件數(shù)量多,同時轉(zhuǎn)運(yùn)過程還需要機(jī)場、工作房及飛機(jī)平臺等環(huán)境模型,再加上虛擬維修系統(tǒng)對模型的幾何尺寸精細(xì)程度和位置準(zhǔn)確度的要求比較高,建立三維模型的工作量很大。目前,三維建模工具有許多,該設(shè)計所用的3DMax操作簡易、渲染效果逼真,還可以直接輸出EON文件。因此,利用3DMax完成仿真對象三維物理模型,利用EonRaptor將模型導(dǎo)出成EON標(biāo)準(zhǔn)格式(*.eoz)。
在EON環(huán)境下,調(diào)整三維視景參數(shù)后,根據(jù)仿真轉(zhuǎn)運(yùn)規(guī)劃,利用其提供的ClickSensor節(jié)點(diǎn)、Time?Sensor節(jié)點(diǎn)、Place節(jié)點(diǎn)、Counter節(jié)點(diǎn)、Light節(jié)點(diǎn)、Latch節(jié)點(diǎn)、PopupMenu節(jié)點(diǎn)等,設(shè)置轉(zhuǎn)運(yùn)流程,實現(xiàn)與操作規(guī)程與設(shè)備操作原理一致的交互功能。對于復(fù)雜的運(yùn)動方式及操作邏輯,大量采用JavaS?cript類與Script結(jié)點(diǎn)建立聯(lián)系,使用JavaScript腳本來控制復(fù)雜程序的運(yùn)行。這是整個系統(tǒng)開發(fā)的核心,直接關(guān)系到與應(yīng)用程序的仿真流程及接口通信邏輯。
EON仿真拆裝邏輯完成后,通過混合編程技術(shù)在C#中調(diào)用,實現(xiàn)EON的二次開發(fā)。如前所述,要實現(xiàn)這一步必須借助EonX控件,EonX是EON提供給宿主程序(即二次開發(fā)平臺C#)的通信接口,通過它可以把行為模型顯示在宿主程序中,進(jìn)行正常瀏覽。它通過EON內(nèi)部的路由解釋器接受宿主程序的輸入消息,改變視點(diǎn)位置,同時,可向宿主程序輸出消息,完成這一通信過程靠的是EON中的路由接口—InEvent和OutEvent。
那天,直到黑袍人的水船行出去很遠(yuǎn),他才突然想起,還未問過對方的名字,這讓他覺得自己很失禮。于是,他大聲朝著遠(yuǎn)去的船影喊道:“你叫什么名字?”
為便于仿真平臺與拆裝、轉(zhuǎn)運(yùn)及設(shè)備使用控件進(jìn)行系統(tǒng)交互,設(shè)置各類交互協(xié)議。
Start:輸入,布爾類型,主要獲得仿真程序運(yùn)行是否有效。
TakeApart:輸入,布爾類型,主要獲得拆卸程序運(yùn)行是否有效。
TakeOn:輸入,布爾類型,主要獲得組裝程序運(yùn)行是否有效。
CurrentTime:輸入,數(shù)據(jù)類型,主要控制閃燈工作時間。
Step:輸入,布爾類型,主要獲得工作步驟。
Pre:輸入,布爾類型,主要快進(jìn)到下一步。
Back:輸入,布爾類型,主要快退到上一步。
FirNumberStep:輸出,整型,主要獲得程序運(yùn)行到當(dāng)前步驟。
PIsActive:輸出,整型,主要獲得快進(jìn)是否有效。
BIsActive:輸出,整型,主要獲得快退是否有效。
OpenRemark:輸入,布爾類型,主要獲得開提示是否有效。
CloseRemark:輸入,布爾類型,主要獲得關(guān)提示是否有效。
ClickObj:輸出,整型,當(dāng)前點(diǎn)擊對象。
系統(tǒng)利用樹形操作規(guī)程控件通過讀取外部預(yù)定義的xml規(guī)程文件,加載包含規(guī)程條目的內(nèi)容信息、規(guī)程條目操作的視角信息以及虛擬維修拆卸裝配序列的約束信息等內(nèi)容。操作規(guī)程控件從操作規(guī)程文件中讀取每條操作條目的內(nèi)容并顯示。當(dāng)用戶選擇規(guī)程的某一條目時,操作規(guī)程控件發(fā)送一個事件到事件處理器,事件處理器將根據(jù)規(guī)程條目的視角信息,使EON仿真程序跳轉(zhuǎn)到該條目操作所對應(yīng)的視角。同時操作規(guī)程控件將根據(jù)條目之間的約束關(guān)系確定條目所對應(yīng)的操作是否可執(zhí)行。
為了便于訓(xùn)練管理及過程監(jiān)控,用戶需要輸入用戶名及密碼后方可登陸系統(tǒng)。通過用戶管理系統(tǒng),可實現(xiàn)對用戶的管理,對用戶登陸后的訓(xùn)練流程進(jìn)行記錄監(jiān)控,并可組織訓(xùn)練考核及成績評定。
虛擬維修訓(xùn)練系統(tǒng)的開發(fā)主要需要考慮到模擬器材的價格不能太高,在達(dá)到訓(xùn)練效果的情況下要盡可能地降低模擬器的成本[10~12]。本系統(tǒng)采用C#和Eon相結(jié)合的方式進(jìn)行開發(fā),在充分利用了Eon的特點(diǎn)下,盡量避開了復(fù)雜的視景仿真驅(qū)動計算,因此系統(tǒng)開發(fā)上手快、周期短、成本低;其次本系統(tǒng)屬于基于桌面的交互式模擬訓(xùn)練系統(tǒng),在一臺普通的PC上即可實現(xiàn)訓(xùn)練與考核,硬件成本低且便于推廣。通過試用,對本系統(tǒng)所涉及的技術(shù)、方法進(jìn)行了驗證,結(jié)果表明本系統(tǒng)能夠按照規(guī)程完成復(fù)雜的相機(jī)轉(zhuǎn)運(yùn)操作訓(xùn)練,系統(tǒng)界面友好,操作直觀,場景逼真,能較好地解決該型設(shè)備在轉(zhuǎn)運(yùn)訓(xùn)練中存在的難題,有效提升訓(xùn)練效益和水平,解除了部隊對實裝訓(xùn)練影響裝備壽命的擔(dān)憂,為該型設(shè)備維護(hù)使用水平的提高發(fā)揮了重要的作用。