蔡啟航, 王 潔, 史 通, 韓要昌
(空軍工程大學 防空反導學院,陜西 西安 710051)
目前部隊裝備操作訓練依然以實裝訓練為主,這直接導致以下2個問題:裝備操作復雜,難以快速形成戰斗力,實裝訓練對裝備損耗大,訓練成本高;戰訓矛盾沖突,部隊裝備擔負著戰備任務,實裝訓練受時間、環境和裝備限制很大。以虛擬現實(virtual reality,VR)技術為基礎的虛擬訓練為武器裝備的人員培訓提供了一種新的訓練方式。
國內對桌面式虛擬系統的研究較多,方傳磊等人[1]設計了基于EON Studio開發的虛擬維修訓練系統通用平臺;王崴等人[2]開發了分布式虛擬裝配訓練通用平臺;王文舉、李光耀[3]以Vega Prime開發工具研發了桌面虛擬維修仿真培訓系統。桌面式虛擬系統具有易于實現、經濟性好、交互簡單等優點,隨著交互技術的發展以及交互設備的普及,對于沉浸式體驗的需求也越來越大。
針對以上問題,本文基于VR技術和人機交互技術構建分布式虛擬協同操作訓練平臺,解決裝備的戰訓矛盾問題,使戰士訓練不再受時間、環境和裝備限制,在逼真的虛擬環境中進行協同訓練,快速掌握裝備協同操作技能。
根據導彈裝備戰勤操作訓練的需求分析,系統采用多層結構體系框架,如圖1所示,系統由平臺層、人機交互層、應用層和對象層組成。其中平臺層由多臺計算機組成,相互間能實現即時通信。人機交互層是實現用戶與虛擬壞境的交互層,為用戶提供自然的人機交互方式。應用層是系統應用實現的核心。對象層用于存取、生成、維護和管理系統運行過程中的各模型提供系統的數據支持,完成模型對象的數據組織、存儲和提取。

圖1 虛擬協同操作訓練系統結構框架
虛擬建??煞譃橥庑谓:凸δ芙!M庑谓V饕从硨ο笾谢幕据喞?、形狀、表面特點和基元結構或對象的拓撲結構。采用3ds Max作為三維建模軟件。功能建模主要是對虛擬環境中的對象進行物理屬性設置和運動模擬。真實裝備的運動方式由客觀的物理規律和裝備內部運行規則確定,要模擬真實裝備的工作,勢必要對模型的運動進行約束和添加碰撞檢測。
碰撞檢測的實現是評價虛擬系統逼真度的關鍵要素。在虛擬場景中需要為相互作用的物體添加碰撞盒,碰撞盒接觸被認定為物體運動的觸發信號,當碰撞盒檢測到兩者接觸時發出觸發信號,調用相關函數對物體模型產生作用力,進入運動狀態。物體運動通過綁定在物體模型上的驅動腳本實現,驅動腳本調用運動學程序或關鍵幀動畫,對復雜的運動采用幀動畫實現,而對簡單的運動使用運動學程序控制。在力作用完后,碰撞盒檢測到接觸退出,發送退出信號,模型根據程序邏輯進入下一狀態,實現運動過程模擬。
Unity引擎擁有強大的三維互動開發能力,能快速創建訓練場地地形,能直接設置三維對象的物理屬性,支持給三維對象添加腳本進行驅動,提供了多種碰撞器進行碰撞檢測,因此能夠較好地完成功能建模任務。同時3ds Max文件可直接導入Unity3D引擎軟件中進行配置,能較好地解決建模軟件與驅動軟件的兼容問題。
以虛擬人外形建模為例,虛擬建模與碰撞盒如圖2、圖3所示,虛擬人的移動控制仿真通過添加Animator組件和C#程序腳本實現。

圖2 虛擬人外形建模

圖3 虛擬人碰撞盒
為實現裝備戰勤操作的多人協同訓練,考慮網絡環境的一致性、實時性和可控性,設計了分布式協同訓練網絡。
2.2.1 基于Unity引擎的網絡通信實現
在虛擬操作訓練中,各終端之間的網絡通信采用傳輸控制協議(transmission control protocol,TCP)/互聯網協議(Internet protocol,IP)協議實現,在TCP/IP協議的傳輸層包含TCP[4]和用戶數據報協議((user datagram protocol,UDP)兩種通信協議。本系統中,為保證數據的可靠傳輸,采用TCP,對其存在的網絡開銷大的問題,在小型局域網中基本可以忽略。
Unity引擎支持C#語言,因此在.NET環境下直接使用UDPClient類來實現網絡通信。系統通過不斷刷新主程序函數實現實時交互功能,在需要發送(send)數據時,系統調用UDPClient實例的send函數即可實現數據發送。在數據接收(receive)端,UDPClient實例的接收函數置于主程序中,通過異步調用方式,持續監聽并接收遠程主機發送來的數據,通信完成后調用close函數斷開連接。
2.2.2 分布式虛擬訓練網絡結構設計
為實現各終端協同操作訓練,相互之間傳遞的網絡信息包括:虛擬人信息(虛擬人的位置和動作信息);任務同步信息(裝備的運行狀態以及與裝備操作相關的全部信息);系統信息(大量支持系統正常運行的數據信息)。
系統中任務同步信息和系統信息需集中管控,而虛擬人信息則不需要加以限制,為降低同步延遲、增強系統實時性、提高系統性能,將客戶端/服務器(client/server, C/S)模式與對等網絡(peer-to-peer,P2P)模型相結合組成混合網絡結構,其具體結構如圖4所示。系統由3個客戶端和1個服務器構成。每名操作員分配1個客戶端,每個客戶端中指定4個端口用于網絡通信。其中3個端口用于P2P模式下與其他客戶端以及服務器通信;1個端口用于C/S模式下與服務器通信。在此結構下,任務同步信息和系統信息采用C/S模式,通過服務器對數據進行集中管理和控制,充分利用客戶端的處理能力。與C/S模式相比,虛擬人信息采用P2P模式,直接在局域網的各個節點間傳輸,將信息的傳輸路徑減半,提高了虛擬人同步的實時性;虛擬人信息在發送方和接收方之間直接傳輸,減少了中間服務器對虛擬人數據信息的加工處理環節,減小了服務器工作量,提高系統整體性能。

圖4 混合模式下網絡拓撲結構示意
2.3.1 虛擬人移動仿真
在導彈裝備的協同操作訓練過程中,操作人員的移動和操作動作比較簡單,且動作多有統一規范。針對這一特點,對虛擬人仿真采用關鍵幀的方法。通過定義仿真過程中關鍵時刻的仿真數據,利用數據插值來實現仿真過程。同時為了提高虛擬人仿真的真實感,采用運動捕獲的方法得到虛擬人的運動路線。引入VR外設頭盔顯示器,跟蹤定位裝置捕捉真實人的運動路線。通過關鍵幀和運動捕獲數據相結合的方法既能實現相對復雜的虛擬人運動,又能避免虛擬人與虛擬物體出現穿透現象,提高了仿真的真實感。
2.3.2 虛擬人訓練操作仿真
虛擬人訓練操作仿真主要包括虛擬手的移動控制和操作動作以及虛擬手與物體之間的碰撞檢測。針對現有虛擬手交互仿真方法[5~9]的缺陷,對虛擬手仿真:本文通過引入VR虛擬手柄,利用虛擬手柄的定位裝置檢測真實手的實時坐標來驅動虛擬手的移動??紤]到在導彈裝備的虛擬訓練中虛擬手主要完成的動作有抓取、釋放和按壓3個簡單動作,通過關鍵幀的方法實現虛擬手的訓練操作仿真。
在上述分析研究基礎上,基于C#編程語言,結合Unity引擎軟件,以MySQL Server為數據庫平臺,開發了分布式虛擬協同操作訓練系統。分析戰勤操作教令形成任務數據庫,在數據庫基礎上再開發任務推理機,實現訓練功能。開發考核評價模塊,實現對虛擬訓練過程的全面評價。最后設計圖形界面和虛擬人交互方式完成系統開發。
以某型導彈武器系統發射車協同操作訓練為例,該訓練需要3人協同操作完成?;诖似脚_實現了導彈發射車的虛擬協同操作訓練,在3名操作員的協同操作下完成了導彈發射車訓練任務,觀察員在服務器端觀察操作過程,訓練結束后系統給出考核結果。虛擬訓練場景如圖5所示。

圖5 虛擬訓練場景
構建了分布式虛擬協同操作訓練系統。該系統能有效改善院校和部隊戰勤操作訓練存在的問題,提高裝備訓練效費比、增強操作人員的技能水平。隨著虛擬現實的不斷發展,人們對虛擬系統的沉浸感和逼真度要求更高,因此人機交互技術以及交互設備有待進一步研究。