楊兆坤,李星新
(陸軍工程大學石家莊校區 裝備指揮與管理系,河北 石家莊 050003)
作為裝備全壽命管理的重要環節,裝備維修訓練的地位與作用越來越明顯。隨著信息化的發展,裝備呈現出功能復雜、結構龐大、造價昂貴、技術更新換代快等特點。虛擬維修訓練自20世紀90年代初應用于實際裝備[1],經歷多年發展,其相比傳統維修訓練具有安全性好、承訓量大、沉浸感高、趣味性強、不受時間空間限制、降低訓練費用等明顯優勢,可以有效彌補傳統維修訓練手段的不足,同時提高自主維修訓練能力,并促進維修保障能力的快速形成[2]。
自20世紀90年代美國成功實現了哈勃望遠境的虛擬維修訓練,使虛擬維修訓練獲得了廣泛的關注,成為研究應用的熱點[1]。1998年H.Ishii等人對原有虛擬維修訓練系統進行了改進,率先將Petri網引入到虛擬維修訓練過程控制中來,這一思路被廣泛借鑒和引用[3]。
90年代初期,虛擬現實技術一經引入國內,應用重點就集中在虛擬訓練和虛擬維修訓練。軍械工程學院郝建平、李星新等實現了對維修過程的仿真,并形成了沉浸式、桌面式等類型的虛擬維修訓練系統[4-7]。蘇群星等設計的大型復雜裝備虛擬維修訓練系統深入研究并提供了基于維修知識描述網的維修知識描述方法和沉浸式虛擬維修訓練系統仿真控制流程[8-9]。此外,國內其他研究機構也進行了對不同型號裝備的虛擬維修訓練系統的開發[10-12]。
隨著技術發展,虛擬現實引擎逐漸可以承載更復雜的虛擬環境,有效提升虛擬維修訓練的沉浸感、交互效果[13]。此外,開發系統的通用化、標準化也是虛擬維修訓練系統發展的必然趨勢[14]。
基于上述需求,陸軍工程大學石家莊校區于2009年發布“美騰裝備虛擬維修訓練通用平臺”(下文簡稱“美騰平臺”),并持續完善修改。“美騰平臺”具有訓練數據開發、訓練實施與管理兩大核心功能,由美騰數據開發系統和美騰虛擬維修訓練系統組成。美騰數據開發系統支持裝備虛擬維修訓練數據的設計、開發、管理、發布。美騰虛擬維修訓練系統提供對機械、電子、液壓等類型復雜裝備的構造原理、操作使用、分解結合、檢查調整、故障診斷等5類訓練內容的學習、訓練與考核。“美騰平臺”可支持桌面式、沉浸式、半實物、觸摸屏式等多種樣式的虛擬維修訓練仿真,可支持多種接口。系統結構設計如圖1所示。
本文提出一種基于“美騰平臺”的沉浸式虛擬維修訓練系統通用開發方法,并具體結合HTC Vive設備實現沉浸交互。該方法首先利用3ds Max對裝備構建三維模型,然后利用Unity 3D實現人機交互并制作成動畫效果,使用“美騰裝備虛擬維修仿真系統”建立基本維修科目、形成訓練流程,最后使用“美騰協同式裝備虛擬維修訓練通用平臺”開發并實現沉浸式虛擬維修訓練系統。
相比其他建模軟件,3ds Max創建的模型占用空間小,處理速度快,建立的模型文件具有良好的通用性。故本文選用3ds Max軟件作為建立裝備三維模型的工具軟件。
在沉浸式虛擬維修訓練系統中,為保證參訓人員獲得真實的感受并提高訓練效果,模型的構建應盡量真實。在模型構建的過程中對于虛擬零部件的尺寸、空間位置形態、裝配關系、顏色等應與實際零部件相符。考慮到裝備本身的復雜性,同時為了降低內存運行負擔、提高仿真模擬效率,要簡化零部件中與虛擬維修訓練科目關聯不大的建模標準。例如不構建螺栓表面的螺紋模型。此外,完成對維修工具的建模,包括徒手、螺絲刀、扳手、鉗子等。

圖1 系統結構設計Fig.1 System structure design
通過創建標準基本體、擴展基本體等構建裝備的基本外形。此時應考慮到各零部件組成之間的裝配關系、零部件的尺寸大小等實際情況。應按照裝配關系將裝備模型按照層級由小到大構建,如“燃油箱-燃油系統-發動機-動力系統”。對各模型命名時應按照實際情況加以區分,避免出現重復名,如對于同型號的螺栓編號。
打開材質編輯器,對材質進行編輯并應用于指定的對象。具體材質應與實際情況相符,包含物理性質、特殊效果、變形器參數、明暗器基本參數、Blinn基本參數等。
貼圖處理是為了表現模型對象的細節,同時不增加模型的復雜度。材質的貼圖處理可以使模型的表現更加精細,呈現出趨于真實的紋理效果。貼圖過程中應注意貼圖及多邊形之間像素值的適應性,避免出現鋸齒現象和像素抖動。
模型優化主要是指減少模型的復雜度,降低計算機的運算量。去除因模型穿插或接觸而看不到的面,例如焊接在一起的2個長方體,接觸的四邊形面可以去除。多段曲線可以利用擠出修改器進行拆分加點、自動平滑。利用MultrRes修改器,調整頂點百分比和具體的頂點數,達到減少模型面數的效果。
利用貼圖烘焙呈現出模型的光影效果可以有效減少計算機運算量。具體是指將光照信息渲染成貼圖,再把帶有光照信息的貼圖應用到場景中。貼圖烘焙節省了三維場景中對于光線的計算時間,在不犧牲渲染效果的同時,大大地提高仿真效率。
將在3ds Max中構建的三維模型導出為*.FBX格式的文件,并選擇默認設置,作為下一步交互設計的素材。
Unity 3D具有良好的3D渲染效果,可實現跨平臺開發,可集合資源種類豐富。所以本文選取Unity 3D作為沉浸式虛擬訓練系統的開發引擎[15]。
將在3ds Max中建立的模型文件導入到Unity 3D的Project欄下的Assets中,模型就可以作為素材出現在場景構建中。將Assets中的素材直接拖拽到Scene視圖中,可以實現場景中的模型建立。
結合HTC Vive設備的交互通過Steam VR插件實現。將該插件創建在Project欄中,對該部分進行編寫可以實現控制手柄等功能。
2.2.1 制作VR Camera
將Prefabs中的CameraRig拖拽到場景中,即可作為VR頭戴式顯示器的攝像機使用。在這個預制體中有3個部分,分別對應設備的左右手柄和頭戴設備,2個手柄上分別有2個Model,掛載了Render Model腳本,主要用來渲染模型。頭部設備分為eye和ears,分別對應頭戴顯示器的視覺設備和聽覺設備。其中Game View腳本用來顯示頭部,Tracked Object腳本用來跟蹤位置。
在攝像機上添加一個腳本,點擊Expand按鈕,將攝像機分為Origin(位置)、Head(頭部)、Eye(眼睛)、Ears(耳朵)4個部分。其中SteamVR _ControllerManager腳本和SteamVR _TrackedObject腳本主要用于設置和檢測Vive手柄。在Origin上添加2個子對象代表2個Vive手柄,增加SteamVR_TrackedObject腳本。在Origin上添加SteamVR_ControllerManager腳本,設置左右手柄,完成手柄的集成。
2.2.2 實現手柄控制
Vive手柄由菜單鍵(Application)、觸摸板(Touchpad)、系統鍵/電源鍵(System)、扳機鍵(Trigger)、側柄鍵(Grip Button)構成。獲取某個按鍵的狀態通過以下代碼實現:
var device=SteamVR_Controller.Input(unit);
device.GetTouchDown (SteamVR _ Controller.ButtonMask)
在左右手柄的對象下分別創建一個子對象,子對象上添加SteamVR_RenderModel腳本,根據需求設計Shader,實現虛擬場景內的手柄模型與現實世界中的手柄位置同步。
2.2.3 工具箱的交互
在虛擬環境中創建工具箱,工具箱中加入各工具的實體模型。當按下手柄上的制定按鍵時,工具箱作為整體出現在頭戴顯示器視線的正前方,且空間姿態保持水平。在虛擬環境中參訓人員用手柄選取某一工具后,工具箱中的該工具模型被取走,工具箱在虛擬場景中消失。
在實現虛擬環境中的交互后,將建立的項目保存為*.unity格式的文件,作為創建訓練科目的素材。
在實現虛擬維修訓練系統時,應首先建立基本的訓練科目,此時選擇“美騰裝備虛擬維修仿真系統”進行開發。
3.1.1 建立項目
在“美騰裝備虛擬維修仿真系統”中選擇創建新的項目,需要確定項目名稱,同時將Unity 3D生成的*.unity文件導入到“三維場景文件”欄中,完成新項目的建立。如“某型車輛發動機的修理”。
3.1.2 基于項目工程樹的操作流程建立
新建項目涉及到具體操作流程,其中要選擇仿真內容類型,分為維修過程仿真和故障診斷仿真;選擇仿真內容涉及模式,分為流程圖式與泳道圖式。如“拆卸發動機”,針對維修過程仿真,具體虛擬維修流程選擇流程圖式表現。
(1) 項目的準備
項目的準備由場景準備、工具準備、設備準備。場景準備是指具體選擇的虛擬場景,一般在導入*.unity格式的文件后不需要再進行其他的場景準備。工具準備是指選擇虛擬維修過程中需要用到的工具,如徒手、螺絲刀、鉗子、扳手等,相應的工具出現在虛擬環境中的工具箱內。設備準備是指選擇虛擬維修過程中需要用到的設備,如千斤頂、發電機等。
(2) 維修流程信息編輯
在操作流程建立過程中,必須建立每個步驟的基本信息、提示信息和正確反饋信息,可以選擇性建立錯誤反饋信息、幫助信息和資料信息。
基本信息的編輯。首先確定步驟的編號、步驟的名稱及操作人員。然后選擇具體交互方式,分為單擊樣機和回答問題。選擇交互類型,具體有操作、拆卸、裝配、BIT檢測、更換、修理、清洗、擦拭等8種類型。最后確定操作對象。例如對發動機的更換流程建立,操作流程的第5步為“維修人員翻轉駕駛室”,交互方式為手柄點擊虛擬環境中的駕駛室,交互類型為操作,操作對象為駕駛室。針對上述操作的交互界面如圖2所示。

圖2 編輯基本信息Fig.2 Editing the basic information
提示信息的建立。提示信息分為動畫類、文字類和文件類,用以提示參訓人員下一步的操作。建立動畫類提示信息要明確三維場景、對象名稱、動畫名稱等信息。例如針對翻轉駕駛室這一步驟的動畫類提示信息建立,將項目準備階段的*.unity文件拖拽到“三維場景”欄中,對象為駕駛室,動畫名稱為“翻轉駕駛室動畫提示”。
設置正確反饋信息。根據實際情況建立反饋信息。如“維修人員翻轉駕駛室”,當參訓人員正確的操作后,在虛擬環境中駕駛室被翻轉。
(3) 生成維修流程
在正確編輯以上信息后,按照操作規范建立下一步驟的信息編輯,形成項目的虛擬操作流程。由系統生成的維修流程如圖3所示。

圖3 生成虛擬維修操作流程Fig.3 Generating the operation flow of virtual maintenance
3.1.3 文件的發布與保存
在“美騰裝備虛擬維修仿真系統”中完成對該訓練科目的編輯后,可以選擇發布為*.proj格式的文件,可以直接通過美騰平臺打開該文件,查看該訓練科目的動畫效果。也可以選擇生成*.swn格式的壓縮包,用于協同式虛擬維修訓練平臺的開發,用于實現虛擬維修訓練系統。
實現沉浸式虛擬維修訓練系統時,需要通過“美騰協同式裝備虛擬維修訓練通用平臺”開發系統對文中3.1建立的訓練科目進行編輯。
3.2.1 創建并連接服務器
構建服務器,當維修任務需要多人同時操作時,可以通過平臺進行協同。在登錄時需要填寫參訓人員名稱、人員級別等信息。
3.2.2 實現過程
創建數據庫并連接數據庫。
設置基礎信息。包括裝備的基本信息,如名稱等;裝備的組成信息,主要構建虛擬維修過程中涉及到的零部件信息;人員專業信息,如機械專業;人員級別信息,具體是指參訓人員所屬級別。進行基本信息設置的交互界面如圖4所示。

圖4 設置基本信息Fig.4 Setting the basic information
導入訓練素材。“美騰協同式裝備虛擬維修訓練通用平臺”開發系統具有良好的兼容性,可以支持文本、演示文稿、圖片、音頻、視頻等多種訓練素材的導入。在實現沉浸式虛擬維修訓練系統的過程中,需要導入“美騰裝備虛擬維修仿真系統”生成的*.swn格式的壓縮包。
制作訓練內容。選擇訓練類型,包括描述類、虛擬維修操作、故障診斷3類。選擇內容類型,包括系統結構、工作原理、操作使用等8種。
設置訓練課程。首先添加訓練數據包,該過程需要具體的名稱和圖片。然后進行課程設計,在工程項目下帶有講解演示、自主學習、引導式訓練、自主訓練、自測、考核等6種訓練模式,將需要的訓練項目拖拽到相應的訓練模式下。例如構建“自主訓練-拆卸履帶”訓練課程項目。
此外還有訓練資源管理模塊,主要針對技術資料的存儲;試題管理模塊,可以生成單選題、多選題、判斷題、填空題、操作題、排故題等題型;用戶管理模塊,建立不同的用戶,可進行權限設置;幫助模塊。可根據需要進行相應設置。對維修訓練資源的管理界面如圖5所示。

圖5 訓練資源管理Fig.5 Training resource management
3.2.3 文件發布
由數據發布管理模塊發布軟件,生成一個ResouceX格式的數據包,在美騰平臺目錄中打開該數據包可以進行虛擬維修訓練。
開發本文設計的沉浸式虛擬維修系統的硬件開發環境為:操作系統為64位Windows 7;處理器為Inter Core i5-4590 CPU@3.30GHz;顯示適配器為NVIDIA GeForce GT 630 MB;安裝內存(RAM)為4.00 GB。主要外設為HTC Vive頭戴式顯示器。軟件部分包括:模型開發軟件3ds Max 2012,虛擬引擎Unity 3D 5.1.0f3,Visual Studio 2012,“美騰裝備虛擬維修訓練通用平臺開發系統”。
本文結合某型自行高炮具體實現了沉浸式虛擬維修訓練系統。
首先進行訓練前的準備。具體流程為:用戶登錄;選擇訓練模式、裝備、具體專業;構建并加入局域網;選擇交互方式,分為鍵盤鼠標、頭戴式顯示器及手柄、數據手套等3種。界面如圖6所示。

圖6 訓練前準備Fig.6 Preparation before training
參訓人員進入沉浸式虛擬維修訓練后如圖7所示。在沉浸式虛擬訓練過程中,工具箱如圖8所示,選取工具后對零部件操作,當選取錯誤部件時如圖9所示。在虛擬訓練過程中可以隨時查看維修操作的流程提示,已完成的操作變為綠色,如圖10所示。全部操作人員完成維修訓練后,有對每名參訓人員操作過程的評分,如圖11所示。

圖7 實現沉浸式虛擬維修訓練系統Fig.7 Realization of immersive virtual maintenance system

圖8 工具箱Fig.8 Toolbox

圖9 選取錯誤零件提示Fig.9 Prompt information of selecting the false component

圖10 維修操作流程提示Fig.10 Prompt information of maintenance operation flow

圖11 訓練后評分Fig.11 Scoring after training
在虛擬維修訓練過程中,參訓人員與虛擬環境的交互真實感強,沒有延時感,操作結束后的評分公正。系統在保證訓練嚴肅性的同時增加了訓練的趣味性,有助于提高訓練效率。可以實現虛擬環境中的講解演示、自主學習、引導式訓練、自主訓練、自測、考核等,有效鞏固參訓人員訓練效果。
基于“美騰平臺”的裝備虛擬維修訓練系統開發可以實現過程統一、平臺通用、數據共享。“美騰平臺”通用化、模塊化水平較高:開發系統可以支持多種格式的文件,通過簡單的素材導入就可以實現多種格式文件的讀取;在開發過程中,開發人員可以不具備計算機編程知識,通過對資源的整合就可以實現虛擬維修訓練系統的開發,簡化了開發流程,提高了開發效率。
本文提出了一種基于“美騰裝備虛擬維修訓練通用平臺”的裝備沉浸式虛擬維修訓練系統開發通用方法,可實現多人協同、多種訓練模式的虛擬維修訓練,也可以支持桌面式、觸摸屏式、半實物虛擬維修訓練。該方法可以有效彌補傳統維修訓練手段的不足,提高自主維修訓練能力,促進維修保障能力的快速形成。