摘 要:根據現代作戰仿真中敵我雙方態勢和作戰環境可視化的需求,并依據分布式仿真高層體系結構理論提出了三維作戰場景顯示系統的結構組成和工作流程,利用MAK Stealth軟件的應用程序接口進行設計開發,實現基于HLA的三維作戰場景顯示系統。結果表明利用MAK Stealth進行視景仿真開發十分方便快捷,具有一定的研究意義。
關鍵詞:HLA;三維場景顯示系統;MAK Stealth;視景仿真
中圖分類號:TP3919文獻標識碼:A
文章編號:1004-373X(2010)06-078-04
Development for Three-dimensional Battle Scene Visibility System Based on HLA
ZHAO Jinping,YANG Rennong,WANG Zhong,PANG Jing
(Engineering College,Air Force Engineering University,Xi′an,710038,China)
Abstract:With requirements of visualizing battlefield environment,three-dimensional battle scene system based on HLA is more important in campaign simulation.Procedure and construction of 3D battle scene display system are developed,combining HLA theory.With the help of API of MAK Stealth program,a HLA-based 3D battle scene display system is realized successfully.The result shows that scene simulation developing with MAK Steath is very convenient and easy,and it is good for research.
Keywords:HLA;three-dimensional battle scene visibility system;MAK Stealth;scene simulation
0 引 言
大規模的各軍種協同戰役演習由于受經費和場地的限制,很難達到預想的演習效果,因此將作戰演習通過計算機仿真來實現,便能克服很多客觀存在的困難,而實現多功能多兵種多武器的仿真,分布式作戰仿真已成為軍隊進行大規模真實對抗仿真的研究重點。高層體系結構(High Level Architecture,HLA)作為新一代分布式交互仿真體系結構,已成為國際通用標準,具有突出的技術優勢和廣闊的應用前景,是目前解決分布式作戰仿真應用的主要方案[1]。基于HLA的三維作戰場景顯示系統是作戰仿真中的重要組成部分,主要提供感知逼真的戰場態勢和直觀的戰場環境,用于作戰指揮員進行分析、決策和指揮訓練的仿真。
1 基于HLA作戰仿真系統的總體框架
所謂HLA就是分布交互仿真的高層體系結構,它可以將多個仿真應用連接起來組成一個大型的仿真系統實現分布式交互仿真。在HLA體系結構中,將為達到某一特定仿真目的的分布式仿真系統稱為聯邦(Federation),由若干個相互作用的聯邦成員(Federate)構成的,每個單獨的仿真應用即為大型仿真系統這個聯邦中的一個聯邦成員。在HLA中為了協調多個聯邦成員能進行實時交互仿真,它提供了統一的聯邦規則,確定聯邦的組成及各個聯邦成員之間的職責。此外HLA還為各個聯邦成員提供了聯邦接口規范,規定了聯邦成員之間數據通信和仿真推進的管理,RTI(運行時間結構)就是HLA接口規范的一個具體實現。因此HLA主要是考慮在邦員的基礎上如何進行聯邦集成,使邦員之間達到交互仿真的目的。它最顯著的特點是通過提供通用的支撐服務,將應用層同底層支撐環境分離,從而可以使各邦員相對獨立地進行開發。
美國MAK Technologies公司提供的一整套從HLA底層開發到高層應用的系列軟件工具,它主要是用于進行作戰仿真系統的開發。這些工具主要有:MAK_RTI,VR_Link,VR_Force,Stealth,Data Logger等。在仿真系統開發中,使用MAK RTI工具進行仿真體系底層支撐環境的開發,利用VR_Link網絡工具包進行底層通信連接和數據交互管理開發。在VR_Link的開發工具包中已經封裝好了RTI提供的各種服務,在開發過程中只需要調用開發包中的API就可以完成聯邦成員之間的通信。此外根據演習作戰的需求,對仿真過程進行預想,采用VR_Force工具可以作為仿真引擎,制作演習推進的想定,進行計算機兵力生成的開發。Stealth工具是一款基于Multigen公司的Vega Prime三維場景管理軟件,主要用于顯示仿真中的三維戰場環境,可以進行視景仿真的二次開發。Data Logger工具記錄仿真過程數據,能便于仿真過程進行回放。使用的這些工具可以無縫集成,還可以利用工具提供的API進行相應的二次開發[1]。結合MAK系列工具開發方式,在基于HLA的結構下構建一個作戰仿真聯邦,其主要聯邦成員組成如圖1所示。
圖1 作戰仿真聯邦總體框架
在整個仿真聯邦中,數據采集器通過接口采集到數據并進行過濾,然后在整個聯邦中發布數據作推進仿真循環,在聯邦中它是一個發布數據的聯邦成員,其他各聯邦成員通過VR_Link提供的API函數接收數據。二維態勢顯示系統是以二維地圖為背景,接收聯邦中發布的實體數據,在二維地圖上實時顯示出各實體的位置及相關信息。態勢綜合評估系統主要記錄仿真過程中的交互事件,并對作戰仿真過程進行綜合評估。本文開發的三維作戰場景顯示系統就是在Stealth基礎上擴展的應用程序,是整個作戰仿真聯邦中的一個三維視景邦員,主要用于監控作戰仿真進程,并將各作戰過程中戰場態勢進行形象直觀的三維顯示,彌補二維顯示效果的不足。此外在整個仿真結束后,三維作戰場景顯示系統還可以根據Data Logger工具記錄的數據進行仿真回放。因此在整個聯邦中三維作戰場景顯示系統主要是接收聯邦中的數據,實時顯示整個聯邦場景中各種實體的狀態信息。
2 三維作戰場景顯示系統的組成和工作流程
2.1 基于HLA的三維作戰場景顯示系統的組成
根據作戰仿真總體框架和三維視景仿真的相關理論,可以將基于HLA的三維作戰場景顯示系統分成三大部分:聯邦通信與數據處理模塊、視景模型的建立和視景仿真驅動模塊,如圖2所示。
聯邦通信與數據處理是仿真的基礎,它在仿真過程中幾乎完成所有實體數據、交互數據訂購收集,而后對收到的數據進行分析、過濾、解算等過程后,按照自定義數據包的格式進行存儲和三維顯示。在整個仿真過程中,本文開發的三維作戰場景顯示系統作為一個聯邦成員加入聯邦,主要是進行三維態勢和場景的顯示,因此該系統只訂購其他成員的數據,而不發布數據。在仿真過程中,隨著發布邦員動態地發布數據,該系統即時接收其所訂購的數據,完成場景和仿真對象的實時更新。
圖2 三維作戰場景顯示系統組成結構
視景模型的建立通常分為兩個部分:
(1) 仿真實體與局部精細場景模型的建立,例如在仿真過程中的實體對象飛機、坦克和具體場景中的建筑物,在進行系統開發中,主要是利用Multigen公司提供的Creator軟件創建各種實體模型和精細場景。該軟件以OpenFlight數據格式的層次結構視圖為基礎,采用多層次細節(LOD)方式顯示。
(2) 大場景視景模型的建立,例如幾十公里甚至幾千公里范圍內的山丘、平原和海域等地形,要創建此類模型必須要有較強的地形數據庫管理能力。Multigen公司的Creator Terrain Studio軟件提供了一套獨特的功能強大的工作流程和數據管理方法,對建模可能用到的多種數據格式提供支持,能創建復雜的大范圍多種精度并存的地形數據庫。三維作戰場景顯示系統中的地形都是用此軟件開發的,它很好地解決了在真實地形中進行作戰仿真研究的難題。
視景仿真驅動模塊的主要目的是把建立的靜態視景模型根據聯邦通信與數據處理模塊提供的實時數據,實現多種實體在一個共同的戰場環境進行虛擬作戰演練、模擬戰斗過程和戰斗效果等。三維作戰場景顯示系統主要采用基于Stealth的視景仿真驅動平臺進行系統開發,Stealth提供了良好的HLA聯邦接口,能將仿真實體和場景按照聯邦發布的數據進行實時驅動和管理調度,以及根據用戶需要進行相關特效和碰撞響應的處理,最后控制視角渲染場景輸出到顯示設備上。
2.2 三維作戰場景顯示系統工作流程
三維作戰場景顯示系統根據仿真目的應該包括兩大主要功能:實時仿真和仿真回放。當啟動三維作戰場景顯示系統時,首先進行初始化,載入初始化數據,然后根據需要選擇實時仿真或者仿真回放。在實時仿真中,首先申請加入聯邦,加入成功后開始仿真,然后接收數據進行三維場景顯示并實時更新,直到仿真結束。在仿真回放中,讀取記錄仿真過程的數據開始回放仿真。整個工作流程如圖3所示。
圖3 基于HLA三維作戰場景顯示系統工作流程
3 三維作戰場景顯示系統的實現
Stealth提供開發包應用程序接口,用戶只需要調用相關的頭文件和庫文件,使用Stealth的API進行開發就可以生成自定義的三維作戰場景顯示系統。利用這些API用戶可以以指定實體的視角顯示場景,還可結合開發需求修改Stealth的功能和GUI,擴展其他類型地圖數據的支持以及加載Stealth到其他應用程序上,三維作戰場景顯示系統就是利用Stealth進行的二次開發。
了解Stealth提供的API類層次結構,對于進行Stealth二次開發有著重要幫助。特別是進行三維作戰場景顯示系統開發的過程中,主要是依賴于Stealth提供API類,如圖4所示。
圖4 Stealth類層次結構
DtStealthApplication是Stealth最頂層的類,繼承自QApplication基類。它封裝了DtStealthInlitializer,DtStealth和DtStealthMainWindow三個高層類,其中DtStealthInlitializer繼承自DtVrlApplicationInlitializer,主要用于進行聯邦連接的初始化設置。DtStealth類主要用于管理和控制三維場景,并在仿真過程中接收交互數據進行實體顯示,在這個類的下面還有一些具體控制的類,它們完成整個三維顯示的具體控制。DtStealthMainWindow類將Stealth封裝成一個窗體組件,其可以將Stealth加載到自定義的窗口中。三維態勢顯示系統是在Visual Studio.NET 2003開發環境中利用這些API進行開發,由于這些API是Vega Prime的基礎上開發的,因此在使用這些API之前要配置好相關的文件。根據Stealth提供的API和三維作戰場景顯示系統工作流程,其開發過程為:
(1) 聯邦的連接和Stealth對象的創建和初始化。
MAKStealth::DtStealthInitializer initializer(myArgc,myArgv,\"MAK Stealth\",1);//利用Stealth類進行加入聯邦申請和通信的初始化
initializer.startInNomalMode();//使用普通模式
myStealth=new MAKStealth::DtStealth();//創建Stealth對象
myStealth->init(initializer);Stealth對象的初始化
myStealth->loadAcf(initializer.defaultAcfFile());//加載默認配置
myStealth->LoadTerrain(\"E:\\\\Terrain\\\\YourDataBaseName.mft\"); //加載地形,主要是加載CTS開發出來的地形數據庫文件(*.mft)
(2) 利用QT Designer設計好三維作戰場景顯示系統界面,并將Stealth加載在到界面主窗口上。
mainWindow=new MainWindow();//新建一個系統主窗口對象
MAKStealth::DtStealthWidget*stealthWgt=new
MAKStealth::DtStealthWidget(mainWindow,myStealth);//用一個Stealth窗體將Stealth對象與系統主窗口關聯起來
mainWindow->setCentralWidget(stealthWgt);//將Stealth窗體設置成主窗口的中心窗體
(3) 初始化了聯邦通信后,Stealth內部會自動接收聯邦中的實體信息并顯示,不過對于Stealth視景顯示的控制還需要用戶自定義。對Stealth顯示鏡頭的控制主要是利用以下函數:
myStealth->viewModeManager()->moveRight();//鏡頭向右轉動
myStealth->viewModeManager()->eyePosition();//鏡頭的位置
myStealth->viewModeManager()->moveForward();//鏡頭向后倒退
在Stealth中選擇指定實體視角顯示主要是通過遍歷所有接收到的實體來獲得指定實體:
QStealthApplication*s1=(QStealthApplication *)usr;
QString n1(object1->getId());
for (DtReflectedEntity*ent1=s1->myRel->first();ent1;ent1=ent1->next())
{
if (n1.compare(ent1->globalId().c_str())==0)//比較實體ID,是否與指定一致
{
s1->myAttach=ent1;//將鏡頭關聯上指定實體
}
}
最后將三維作戰場景顯示系統加入聯邦進行測試分析,如圖5所示。
圖5 三維態勢顯示系統仿真顯示結果
圖5(a)為正常模式(Nomal Mode)下顯示兩架飛行的場景,由于沒有消去霧氣,所以地形不夠清晰。圖5(b)是Xr模式下顯示兩架飛機進行空中格斗,其中藍色飛機被紅色飛機命中,在此模式下地形十分清晰。
4 結 語
這里主要完成了基于HLA的作戰仿真三維作戰場景顯示系統的組成和工作流程的開發,并利用MAK Stealth工具實現了三維作戰場景顯示系統,對開發過程中Stealth接口使用的關鍵技術做了詳細的介紹。在整個作戰仿真領域中三維場景的顯示還需要做大量的工作,真實實體模型和戰場場景的建模將是一個難點技術,雖然本文完成了地形的創建,還有待進一步研究。
參考文獻
[1]趙經成.虛擬仿真訓練系統設計與實踐[M].北京:國防工業出版社,2008.
[2]Muligen-Paradigm Inc..Creater Terrain Studio Users′ Guide.2003.
[3]Muligen-Paradigm Inc..Creater Users′ Guide.2003.
[4]MAK Technologies Inc..MAK Stealth Users′ Guide.2008.
[5]汪連棟,張德鋒,聶孝亮,等.電子戰視景仿真技術與應用[M].北京:國防工業出版社,2007.
[6]劉建,劉忠,顏冰,等.基于HLA的潛艇隱蔽作戰仿真系統開發研究[J].系統仿真學報,2004,16(3):420-423.
[7]何楓.視景仿真系統的開發研制[J].飛機設計,2001(3):66-68.
[8]羅秋鵬,高曉光,楊建國.空戰三維視景仿真設計與實現[J].電光與控制,2008,15(10):33-36.
[9]劉揚,沈為群,宋子善.一種基于HLA的多級網絡通訊模型的研究與實現[J].計算機仿真,2006(12):133-135.
[10]凌云翔,邱滌珊,史湘寧.基于HLA結構的分布式仿真的系統設計問題[J].計算機工程,1999(2):25 -27.