周 劼 鮑廣宇 裘杭萍
(解放軍理工大學指揮自動化學院 南京 210007)
裝備維修訓練是現代軍事訓練的重要方面。在實體裝備上的維修訓練成本高、范圍受限,效果也不理想。虛擬現實技術的發展為解決裝備維修訓練難題提供了很好的辦法,它能夠真實營造虛擬環境,模擬展示裝備結構形狀,通過傳感設備將用戶“投入”到虛擬環境,實現用戶與裝備的自然交互,具有經濟、可控、無條件限制等優點,目前已成為現代軍事裝備維修訓練的研究熱點之一。
當前國內外主流的虛擬現實平臺主要有VirTools、Quest3D、VRP、Java3D、EON等多種開發軟件,都能夠實現基本的虛擬仿真效果,但都有各自的不足,如VirTools對CAD模型支持不夠,Quest3D兼容性不強,VRP的高級語言接口開放不夠,交互性不好,Java3D主要針對網絡使用等等。相對而言,EON軟件兼容性好,能夠提供3D模型真實物理特性的模擬,支持多種CAD格式和高級Cg繪圖;擴展性強,具有二次開發能力,是世界上公認的整合性、延展性最好的虛擬現實開發平臺[1]。
論文在EON虛擬平臺的基礎上,對裝備維修訓練進行了模擬,設計了系統的核心工作引擎,實現了虛擬維修訓練系統,為維修人員提供了形象具體的、可交互的訓練方式,有效地提高了維修人員的訓練效率,具有顯著的經濟、軍事效益。
傳統虛擬訓練軟件主要是與虛擬現實軟件直接進行交互,通用性和擴展性不強,設計實現較為復雜,論文充分利用EON開放程度高的優點,提出了一種系統核心工作引擎的設計方法,屏蔽了模型底層的操作,應用系統可以直接在引擎的基礎上進行設計,保證了系統設計的簡單靈活。
根據虛擬維修訓練系統功能要求,系統主要劃分為裝備維修學習系統、裝備維修訓練系統、裝備維修考核系統和核心工作引擎四個部分,其基本組成如圖1所示。

圖1 虛擬裝備維修訓練系統基本組成
其中裝備維修學習系統是為受訓人員提供裝備文檔資料和結構模塊的學習功能;裝備維修訓練系統主要是通過故障推理過程詳細展示,了解并熟悉設備的常見故障及維修方法,提高受訓人員對維修過程、故障定位的熟練程度;裝備維修考核系統主要支持對受訓人員的維修知識、維修過程、熟悉程度進行定量和定性相結合的綜合評判,并改進建議意見;核心工作引擎是虛擬維修系統的基礎平臺,包含模型控制、通信、數據生成和動作跟蹤等核心功能,通過對EON接口的封裝,屏蔽了對模型的讀取、控制等具體操作,上層應用系統不需要和三維仿真平臺直接交互,簡化了應用系統的設計,實現了系統設計的通用性和可擴展性。
裝備模型的構建是整個虛擬仿真系統的基礎,其好壞將直接影響整個系統的質量。考慮到Maya軟件處理圖像細膩、模型效果好;3ds Max接口豐富,操作簡單且EON提供了3ds Max專用插件等因素,系統采取了Maya和3ds Max軟件相結合的技術實現模型的構建。具體步驟如下
1)使用Maya軟件對裝備進行基本建模和優化,充分利用Maya強大的建模功能,針對模型貼圖、材質和形狀進行精細化的處理,保證了裝備模型的真實和詳細;同時通過減少模型的數量和面數、合理分配模型密度、規范模型的三角面形狀的手段,對模型進行了優化,有效提升了模型運行的效率。
2)將模型文件導入到3ds Max,按照裝備結構層次和零件之間的配合關系,自下而上對模型進行分層整合,形成了良好的層次結構;同時搭建了場景環境,增加了訓練仿真的真實感。
3)利用EON提供的3ds Max插件EON Raptor將模型導入到EON中[2]。EON Raptor能夠完整的識別和導出3ds Max模型的位置關系和層次結構,方便后期設計模型動作;而且可以對模型進行進一步的優化處理,避免了不必要的調整。
核心工作引擎是系統三維模型的底層驅動引擎,通過封裝EON的接口,實現系統所有對模型的操作,其主要功能是從模型庫和數據庫中讀取模型文件和相關設備數據,從知識庫中讀取并生成相應的模型故障和維修序列,將模型、數據信息等傳輸到各應用系統,形成系統的設備結構樹、故障樹、仿真模型動畫及相關知識提示,為用戶提供與模型相關的維修訓練功能。引擎主要包括以下四個模塊:
1)控制模塊
引擎提供了三維模型的控制功能。應用系統可通過鼠標鍵盤操作或者系統參數傳遞實現模型讀取、旋轉、移動、碰撞檢測以及模型選擇等方面的功能,不需要直接和三維仿真平臺進行交互。
2)通信模塊
引擎封裝了系統和模型、模型和模型之間的通信機制。通信不需要考慮三維模型的位置、通信協議以及模型類型等因素。
3)數據生成模塊
引擎提供了模型維修數據的生成功能。應用系統可以通過引擎調用知識庫中的維修知識,靈活選擇生成模型的故障狀態、維修動作序列以及模型數據等信息,并存放在數據庫中。
4)動作跟蹤模塊
引擎提供了模型動作的跟蹤功能。引擎記錄用戶對模型的操作動作,并將模型動作數據存儲在數據庫中,為維修訓練考核提供評判依據。核心工作引擎的體系結構如圖2所示。

圖2 核心工作引擎的體系結構圖
在核心工作引擎的開發過程中,最關鍵的技術主要有三個方面的內容:1)系統與模型的數據交換;2)人機交互功能;3)維修動作的設計。
3.2.1 系統與模型的數據交換
EON軟件的開放程度很高,支持與高級語言的通信交互,易于編程控制。核心工作引擎就是在封裝EON提供的ActiveX控件EonX基礎上,實現EON模型與高級語言的數據交互,其工作原理如圖3所示[3];同時EON的Script節點可以對系統發送的消息參數進行處理,保證了系統對模型的參數化精確控制和動作跟蹤[4]。數據交換的具體實現步驟如下。
1)在EON Studio中建立InEvent(事件輸入)和Out-Event(事件輸出)節點。
2)在EON Studio中建立Script節點或者其他功能節點,將InEvent或者OutEvent節點連接至相應接口;在Script節點中添加腳本代碼,對輸入事件參數進行處理,并輸出相應事件參數。
3)在外部程序中添加OnEvent函數對OutEvent(事件輸出)進行監聽,同時添加SendEvent函數將系統的指令參數發送給InEvent節點[5]。

圖3 EON與高級語言交互原理[6]
3.2.2 人機交互功能
人機交互是指受訓人員對虛擬場景中模型的操作和反饋,直接關系到虛擬仿真的效果。EON內部提供了200多個傳感器、動作等節點,可以供設計者方便地實現人機交互,EON的Script腳本節點還能夠對事件消息進行編程處理,實現復雜的邏輯處理[7]。
在本系統中,人機交互行為主要是通過EON提供的傳感器觸發、事件驅動和路由機制實現的。EON提供傳感器節點以接受用戶操作指令,然后由路由將相應的事件消息傳送給其他功能節點,最終實現對模型的操作或者反饋。其基本原理如圖4所示。

圖4 人機交互原理圖[8]
在交互過程中,傳感器一般是指EON中感知用戶鼠標、鍵盤事件的功能節點,響應用戶的操作;其他功能節點主要是對傳感器節點發送的消息進行響應或處理,能夠直接操作模型,并通過輸出設備反饋給用戶,如Walkabout節點能夠根據用戶鍵盤操作實現類似CS游戲的行走、跑步動作,方便用戶在虛擬場景中運動;CollisionObject節點能夠提供模型碰撞檢測功能,實現真實物理世界的碰撞效果[9]。
3.2.3 維修動作的設計
在引擎的設計過程中,維修動作的設計對模型控制、故障生成和動作跟蹤影響很大。維修動作要求能夠適應各類故障,實現各類維修動作的靈活組合,并能夠反饋給引擎,實現對動作的跟蹤。系統主要從以下兩個方面實現對維修動作的設計:
1)在模型動作設計時,將EON模型中所有動作拆分細化成基本的原子動作,所有的動作都是在原子動作的基礎上組合而成的;同時將這些原子動作的消息指令存儲到數據庫中,引擎能夠根據當前模型故障和維修動作序列向EON模型發送動作消息指令,實現動作的組合;
2)在引擎的控制模塊設計時,模型接受到的傳感器指令全部傳輸至引擎,由引擎處理是否響應動作;所有模型的動作指令均由引擎控制發送,并由引擎記錄到數據庫中,實現對用戶動作的跟蹤。維修動作的指令傳輸實現如圖5所示。

圖5 模型指令傳輸邏輯圖[10]
通過對模型動作的設計,引擎能夠根據任意模型故障的狀態,靈活組合各種原子動作形成相應的維修序列,并能夠跟蹤用戶的操作,實現模型控制、動作跟蹤等功能。
系統的核心工作引擎通過上述關鍵技術的實現,屏蔽了底層對模型的具體操作,解決了傳統虛擬訓練系統設計的局限,保證了系統設計的通用性和可擴展性,實現了系統對模型的操作和功能要求,為受訓人員提供了三維的、可交互的虛擬維修訓練場景。圖6、圖7為虛擬維修訓練場景。

圖6 虛擬維修發動機場景

圖7 虛擬整車場景
虛擬現實為裝備維修訓練提供了強有力的技術手段。論文針對裝備維修訓練的現狀和傳統虛擬系統設計上的缺陷,對EON軟件平臺進行了封裝,設計實現了系統核心工作引擎,簡化了上層應用系統的設計,開發了一個三維的、可交互的虛擬維修訓練系統,為裝備維修提供了現代化的、經濟實用的訓練手段,解決了實物訓練耗費大、限制條件多、安全性低的問題,具有廣泛的應用前景。
[1]王煒.虛擬仿真系統導論[M].北京:國防科技出版社,2007.
[2]王嵐.EON虛擬現實軟件應用教程[M].天津:南開大學出版社,2004.
[3]于輝,趙經成,付戰平,等.EON入門與高級應用技巧[M].北京:國防工業出版社,2008.
[4]亓永峰,馬亮.武器裝備虛擬維修訓練系統的設計研究[J].艦船電子工程,2010,30(1):133-136.
[5]趙金才,王憲成,孫坦,等.基于EON Studio 5.0的裝甲車輛發動機虛擬維修關鍵技術研究[J].裝甲兵工程學院學報,2008,22(1):46-48.
[6]劉誠,付宜利.基于EON的交互式虛擬裝配仿真系統的設計與實現[J].東北林業大學學報,2009,37(8):109-111.
[7]EON Reality Inc.EON UserGuide 6.0[Z].USA:EON Reality Inc,2008.
[8]EON Reality Inc.EON ReferenceGuide[Z].USA:EON Reality Inc,2008.
[9]韓放,薛彥兵.3D虛擬環境中使用EON Studio軟件的碰撞處理研究[J].河北省科學院學報,2010,27(1):27-30.
[10]EON Reality Inc.EON SDK 6.0[Z].USA:EON Reality Inc,2008.