邢立新 陳 潿 王瑾玨 沈中卿
(陸軍軍官學(xué)院 合肥 230031)
虛擬環(huán)境是計(jì)算機(jī)生成的數(shù)字空間,它應(yīng)當(dāng)可以表現(xiàn)為逼真的三維虛擬環(huán)境。當(dāng)多個(gè)不同地點(diǎn)的虛擬現(xiàn)實(shí)終端需要聯(lián)結(jié)起來進(jìn)行交互,它們就必須共同營造維護(hù)同一個(gè)虛擬環(huán)境。
動(dòng)態(tài)變化性是整個(gè)系統(tǒng)的難點(diǎn),從分布式系統(tǒng)的角度看待這個(gè)虛擬世界,應(yīng)該提取常量和不變量,從三維圖形繪制的角度看,遠(yuǎn)火火控虛擬世界中涉及到的地形、地貌、目標(biāo)和天空等,操作員對這些的交互性很弱,因此相對的修改要求較小,而氣象信息、車體狀況、炸點(diǎn)偏差和射擊參數(shù)等計(jì)算機(jī)生成的角色是虛擬世界中主要的數(shù)據(jù)變化主體,將它們統(tǒng)稱為對象,需要發(fā)生動(dòng)態(tài)更改的自然環(huán)境也被看成物體,屬于對象。所以,虛擬世界中的變化應(yīng)當(dāng)主要是對象的狀態(tài)變化或相關(guān)操作,所以很容易得出:
遠(yuǎn)火火控虛擬環(huán)境=(環(huán)境數(shù)據(jù)+設(shè)備模型+智能實(shí)體+網(wǎng)絡(luò)交互)+應(yīng)用邏輯
將遠(yuǎn)火火控分布式虛擬戰(zhàn)場環(huán)境進(jìn)行問題抽象,如圖1所示,多個(gè)操作員共享一個(gè)虛擬環(huán)境,并進(jìn)行操作,得到相應(yīng)的反饋,真實(shí)物體也可以通過仿真或機(jī)械等手段進(jìn)行虛實(shí)的相互操作,虛擬場景可以從真實(shí)世界的數(shù)據(jù)生成。對抽象的元素進(jìn)行應(yīng)用分析,分布式虛擬環(huán)境有三個(gè)基本要求:1)一致性;2)交互性;3)實(shí)時(shí)性[1]。
圖1 遠(yuǎn)火火控虛擬戰(zhàn)場環(huán)境的問題抽象
遠(yuǎn)火火控模擬仿真系統(tǒng)應(yīng)用常用的交互設(shè)備包括鍵盤、鼠標(biāo)、操作桿、顯示器、揚(yáng)聲器等,半實(shí)物仿真還需要構(gòu)建一些專用的交互設(shè)備接口,隨著虛擬現(xiàn)實(shí)技術(shù)的發(fā)展還會(huì)出現(xiàn)更多的人機(jī)交互設(shè)備。由于交互設(shè)備的多樣性和可能的復(fù)雜性,給應(yīng)用系統(tǒng)的構(gòu)造帶來與設(shè)備相關(guān)的問題。
輸入原語系統(tǒng)是將交互設(shè)備的輸入映射為原語,并利用原語作為輸入來控制仿真實(shí)體動(dòng)作及行為的系統(tǒng),它定義了輸入原語的表示形式,描述了物理設(shè)備的輸入如何映射為原語,以及應(yīng)用程序如何使用原語。設(shè)備操作、原語及實(shí)體動(dòng)作三者之間的關(guān)系如圖2所示[2]。
圖2 設(shè)備操作、原語及實(shí)體動(dòng)作三者之間的關(guān)系
輸入原語是命令的最小構(gòu)成單位,是外設(shè)的一次動(dòng)作對應(yīng)的原型。在火控模擬訓(xùn)練仿真系統(tǒng)應(yīng)用中,外設(shè)的輸入信息可被分為兩種:離散的和連續(xù)的。離散的輸入信息是指如鍵盤、鼠標(biāo)等點(diǎn)擊輸入,連續(xù)的輸入信息是指如操縱桿、數(shù)據(jù)手套等高頻輸入。離散輸入信息可以用來表示一個(gè)事件,因而可以代表實(shí)體動(dòng)作的程度,遠(yuǎn)火火控模擬訓(xùn)練仿真系統(tǒng)中實(shí)體的狀態(tài)包括其位置和方向信息。輸入原語的定義如下:
其中,GunFireControl表示一種操作抽象的動(dòng)作,標(biāo)識(shí)對應(yīng)邏輯操作的原語類別;六個(gè)參數(shù)分別表示輸入在三維空間中位置和方向信息;time_stamp為時(shí)間戳,用于實(shí)時(shí)交互約束處理;可選的Device是設(shè)備類型;可選參數(shù)Reserved用來儲(chǔ)存額外的必要信息,如對于操縱桿輸入設(shè)備而言,便可以利用此項(xiàng)儲(chǔ)存各個(gè)信息。
原語系統(tǒng)中用于表示空間的位置和方向信息的六個(gè)參數(shù)沒有給出一個(gè)統(tǒng)一的數(shù)據(jù)表示,它們只在各自的設(shè)備空間中有意義,即仍然是設(shè)備相關(guān)的,也就使得各個(gè)設(shè)備所表示的方向信息彼此之間不具備可比性。為此,需要定義遠(yuǎn)火火控的邏輯設(shè)備坐標(biāo)系、物理設(shè)備坐標(biāo)系到邏輯設(shè)備坐標(biāo)系的映射以及歸一化函數(shù)來解決這個(gè)問題。
遠(yuǎn)火火控邏輯設(shè)備坐標(biāo)系的定義如圖3所示。α,β,γ表示輸入方向信息的歐拉角,單位為rad。其旋轉(zhuǎn)順序定義為依次繞z軸逆時(shí)針旋轉(zhuǎn)γrad,繞x軸旋轉(zhuǎn)αrad,繞y軸旋轉(zhuǎn)βrad,其中α,β,γ的取值范圍從(-∞,+∞)。
從遠(yuǎn)火火控物理設(shè)備坐標(biāo)系到邏輯設(shè)備坐標(biāo)系的映射如圖4所示,物理設(shè)備坐標(biāo)系上取值范圍包圍盒的中點(diǎn)對應(yīng)邏輯設(shè)備坐標(biāo)系的原點(diǎn),各坐標(biāo)軸和“同向”的邏輯設(shè)備坐標(biāo)系坐標(biāo)軸相對應(yīng)。圖中,xmax,ymax,zmax分別為物理設(shè)備空間最大值在x,y,z坐標(biāo)軸上對應(yīng)的坐標(biāo)[3]。
圖3 邏輯設(shè)備坐標(biāo)系
圖4 物理設(shè)備坐標(biāo)系到邏輯設(shè)備坐標(biāo)系的映射
物理設(shè)備坐標(biāo)系中的坐標(biāo)映射到邏輯設(shè)備坐標(biāo)系中相應(yīng)的坐標(biāo)后,還不能直接使用,需經(jīng)過歸一化函數(shù)進(jìn)行歸一化。歸一化函數(shù)f定義為:(X,Y,Z,α,β,γ)=f(x,y,z,a,b,c),其中,(x,y,z)為物理設(shè)備位置輸入值在其設(shè)備坐標(biāo)系中對應(yīng)的坐標(biāo)位置,取值范圍與具體的物理設(shè)備相關(guān);(X,Y,Z)為其在邏輯設(shè)備坐標(biāo)系中對應(yīng)值,取值范圍定義為[-1,+1];(a,b,c)為物理設(shè)備方向輸入值在其設(shè)備坐標(biāo)系中對應(yīng)的方向坐標(biāo),取值范圍與具體的物理設(shè)備相關(guān);(α,β,γ)為其在邏輯設(shè)備坐標(biāo)系中的對應(yīng)值,取值范圍為(-∞,+∞)。
設(shè)當(dāng)物理設(shè)備坐標(biāo)(x,y,z)的取值范圍為x∈歸一化函數(shù)f的定義如下
其中,f′函數(shù)為從物理設(shè)備坐標(biāo)系中的方向坐標(biāo)轉(zhuǎn)換成邏輯設(shè)備坐標(biāo)系定義的歐拉角的函數(shù)。例如,當(dāng)鼠標(biāo)的輸入為豎直方向192,水平方向256時(shí),對應(yīng)的物理設(shè)備坐標(biāo)為(192,256,0),則其在邏輯設(shè)備坐標(biāo)系中的坐標(biāo)為(-0.5,0,-0.5),此處設(shè)屏幕的分辨率為1024×768[4]。
輸入原語映射是建立在交互輸入設(shè)備上的,與物理設(shè)備相關(guān),涉及物理設(shè)備的操作特性。它首先定義好輸入設(shè)備的可能操作對應(yīng)的原語中的Tpye,即輸入原語表,輸入原語表是設(shè)備操作集合到Tpye的一個(gè)滿射。輸入原語系統(tǒng)將直接獲得的設(shè)備輸入中的位置和方向信息首先從相應(yīng)的物理設(shè)備坐標(biāo)系轉(zhuǎn)換到邏輯設(shè)備坐標(biāo)系中,然后按照輸入原語表中的映射關(guān)系找到對應(yīng)的Tpye,從而形成原語輸入。最終,如圖5所示為遠(yuǎn)火火控中按照人機(jī)交互原語系統(tǒng)所建立的遠(yuǎn)火射擊模型效果圖。
圖5 遠(yuǎn)火模型射擊效果圖
遠(yuǎn)火火控模擬訓(xùn)練系統(tǒng)模型的建立中涉及很多人機(jī)交互的方面,包括行軍、操瞄調(diào)炮、解算諸元、參數(shù)修正等。輸入原語的解釋與執(zhí)行是建立在原語基礎(chǔ)上的,與具體的物理輸入設(shè)備無關(guān)。仿真應(yīng)用在接收到原語輸入之后,根據(jù)其所表示的語義動(dòng)作,取出相應(yīng)的參數(shù)信息,并以此來控制仿真實(shí)體的動(dòng)作及行為。輸入原語系統(tǒng)將設(shè)備輸入與實(shí)體控制在軟件實(shí)現(xiàn)上相分離,使得交互輸入原語與物理輸入設(shè)備、實(shí)體控制相關(guān),而實(shí)體控制變得與輸入設(shè)備無關(guān),從而簡化了軟件的設(shè)計(jì),增強(qiáng)了軟件的靈活性和可擴(kuò)展性。
[1]周忠,吳威.分布式虛擬環(huán)境[M].北京:科學(xué)出版社,2009:17-19.
[2]段作義,唐少剛,劉鵬.分布式交互仿真應(yīng)用系統(tǒng)輸入輸出模型的研究與實(shí)現(xiàn)[J].系統(tǒng)仿真學(xué)報(bào),2006,18(1):102-105.
[3]Andreas T,James A M.2004.M&S whitin the model driven architecture.Proceedings of Interservice/Industry Traning,Simulation,and Education Conference(I/ITSEC 04)Montevery Cal-iforma:161-163.
[4]趙沁平,懷進(jìn)鵬,李波,等.虛擬現(xiàn)實(shí)研究概況[M].北京:科學(xué)出版社,1996:7-9.