趙銀玲,李治國
(1.西安職業技術學院 陜西 西安 710032;2.中航工業西安飛行自動控制研究所 陜西 西安 710065)
基于GL Studio的儀表面板開發及其應用
趙銀玲1,李治國2
(1.西安職業技術學院 陜西 西安 710032;2.中航工業西安飛行自動控制研究所 陜西 西安 710065)
運動的視景可以顯示出飛機的位置和姿態,但視景沒有直觀的數據以供參考,所以在飛行視景中加入儀表是非常必要的。通過儀表的數據變化實時獲取飛機準確的高度、速度、航向等信息,為研究無人機飛行運動過程提供直觀事實依據。文章從仿真建模到軟件模塊的實現,較全面地介紹了一種專用虛擬儀表制作軟件-GL Studio,以無人機座艙為例,詳細說明了GL Studio的ActiveX代碼實現技術及嵌入視景時的關鍵問題和解決方法。該軟件在無人機半物理仿真試驗中得到了很好的應用,滿足了系統對實時性和流暢性的要求。
虛擬現實;儀表;紋理;控件
近年來,隨著軍事科技的發展,高技術武器裝備在現代戰爭中得到了廣泛的應用,越來越多的高技術武器已經裝配到部隊,對部隊的戰場訓練和技術保障都產生了重大的影響[1]。由于高技術裝備造價貴、品種多、數量少,所以在實際裝備上開展操作和維修訓練都越來越困難。虛擬現實技術的發展為部隊開展脫離實裝的訓練提供了技術基礎[1-2]。
在虛擬座艙的仿真建模中,座艙中的儀表多種多樣,如地評議、高度表、空速表、平顯、航向表等。需要對座艙中的大量的儀表面板的行為,如指針的擺動、指示燈的閃爍、旋鈕的轉動、掃描線的移動等進行仿真。座艙面板的機械結構復雜,利用傳統的建模工具,如3D Max、Solidwork等,建模工作量大,效率低,難度大。為此,座艙面板的建模使用一種快速、新型的建模工具——GL Studio,它支持照片級別的紋理,只要將欲仿真的面板的照片應用為紋理即可[3],從而大大降低建模難度,減小了工作量,提高了效率,而且建模效果非常逼真。在目前無人機半物理仿真中的到了很好的使用。
無人機半物理仿真綜合測試系統由飛行仿真機(包括仿真主控機和目標機)、飛控計算機(以下簡稱飛控機)、飛控臺、導航臺、視景計算機等組成。系統的結構如圖1所示。

圖1 系統結構圖
飛控臺和視景計算機以及導航臺之間均采用高速的網卡代替了傳統的串行通訊系統,使得系統的傳輸效率和運行速度都有大幅度的提高。導航臺通過TCP協議發送給飛控臺航路點信息,飛控臺接收、顯示并通過串口上傳給飛控機。飛控機通過串口RS232向飛控臺輸出遙測數據幀,其中包括無人機的經度、緯度、高度、俯仰角、滾轉角、偏航角、空速、油量等。飛控臺接收并顯示,然后把相關數據通過UDP協議轉發給導航臺和視景計算機。
GL Studio是一個獨立平臺的快速原型工具,用來創建實時的、三維的、照片級的互動圖形界面。它能與HLA/DIS仿真應用相連;生成的C++和OpenGL源代碼可以單獨運行,也可以嵌入其他應用中;它能運行于WindowsNT2000XP、TRIX和Linux等操作系統上[4-5]。
GL Studio設計器包括兩個主要的控制窗口和一個或多個編輯窗口。所有設計的對象的列表用一個可折疊的樹狀結構來顯示。如圖2所示。GL Studio支持照片級紋理的應用。一切多邊形對象都可以貼紋理。紋理工具可以讓你使用大多數格式的紋理,如TIFF,JPEG,SGI,BMP等。GL Studio設計器有10種圖像原型,包括規則多邊形、不規則曲線和TrueType文本對象。原型能被組合成更復雜的對象。設計器支持所有的繪圖操作,包括剪貼和粘貼、轉換、縮放、修剪、剔除、頂點編輯、插入和移除頂點、水平翻轉、垂直翻轉、左旋轉、右旋轉、自由旋轉、扭曲、排列對象和改變繪圖順序等[7]。設計器支持文檔的多視圖,包括3個正投影視圖和一個自由視角的透視視圖。在每個視圖下可以以網格、文體和貼有紋理等方式來觀察。

圖2 GL Studio設計器界面
Vega是國內仿真系統常用的實時驅動軟件,它是MultiGen-Paradigm公司(MPI)以前最主要的三維實時驅動軟件。MPI早在2003年就已經停止對Vega開發和升級,Vega Prime作為Vega的升級版本主要改進之處有:VegaPrime是基于C++平臺,而Vega是基于C平臺;VegaPrime的場景圖VSG(Vega Scene Graph)是高級跨平臺場景圖形應用程序接口,取代了Vega的Performer;Vega是基于進程的,VegaPrime是基于線程的;Vega通過C功能調用,而VegaPrime是通過模塊類。
GL Studio與VegaPrime二者結合,都采用C++代碼進行開發,使得儀表與視景之間的交互問題變得迎刃而解[8]。
3.1 ActiveX控件的建立與使用
視景系統采用GL Studio2.1的兩個向導來建立儀表,GL Studio可生成.EXE的文件單獨運行在其支持的操作系統上,也可生成ActiveX控件嵌入別的軟件平臺上。該系統首先采用生成可執行文件的向導來建立儀表,雖然這樣做并不能實現將儀表載入場景的目的,但是因為如果直接用生成.OCX控件,在沒有數據之前無法觀測到儀表的運動是否滿足要求,所以首先利用向導生成.EXE文件,觀察儀表的運動是否滿足用戶的要求,然后再利用向導生成.OCX控件嵌入視景[9-10]。
以座艙中儀表指針的轉動為例,首先在GL Studio中通過紋理貼圖來建立實例對象 needle,在代碼編輯窗口variables中建立roll變量,在控制窗口的代碼編輯欄中新建Method為NewMethod,在GL Studio原有的Calculate(doudle time)中寫入指針轉動的代碼:

動態效果完成之后,再用ActiveX向導生成一個空的工程文件,將原產生的.gls文件,.h和.cpp文件改成和新建的空工程中的.gls文件,.h和.cpp文件的名字分別相同,這樣在*.h中就包含有公有的虛函數

因void zylClass::Calculate(double time)中的代碼的變量用戶不可知,所以我們使用新的方法NewMethod(),用戶可以隨意定義它的變量,將NewMethod()的函數體寫為


注冊控件之后就可以在ActiveX Control Test Continer中預覽所作控件的效果了。
3.2 GL Studio與VegaPrime坐標系的解決方案
雖然GL Studio與VegaPrime都是在OpenGL基礎上的應用,使用的都是右手坐標系,但是VegaPrime的坐標系與GL Studio的坐標系又有所差別,如圖3所示。

圖3 坐標系
所以在解決這個問題的時候可以將GL Studio的儀表直接設計在XOZ平面上或者將在XOY平面上設計的儀表在載入視景時繞X軸旋轉90度即可。文章采用的方法是還在XOY平面建立儀表,而在載入場景中時將儀表繞X軸旋轉90度。
3.3 GL Studio載入視景時的單位變換
在VegaPrime中根據場景的大小不同,坐標所采用的是長度單位,例如可以是米、千米、英尺或英寸等。而在GL Studio中制作虛擬儀表是以像素為基本單位的。因此將GL Studio載入場景時是以1:1轉換的,即GL Studio載入視景時的一像素即為VegaPrime中的一米,所以在沒有任何處理的情況下儀表載入場景時非常大,所以要根據實際需要進行縮小,解決方案是在程序中縮小儀表面板的大小,一般選擇在GL Studio中制作的儀表面板的0.3或0.4倍。
3.4 數據通信
無人機半物理仿真測試系統中不同設備之間根據需要采用不同的傳輸協議。不同的傳輸協議有不同的試用場合。TCP協議提供了一種可靠的面向連接的字節流運輸層服務。它提供端到端的流量控制,并計算和驗證一個強制性的端到端檢驗和[11]。對數據的解算比較嚴格,采用TCP用戶最終數據的解釋將帶來額外系統開銷,適合海量數據的傳輸以及要求可靠性高的場合;而UDP是ISO參考模型中位于傳輸層的一種無連接的協議,提供面向操作的簡單非可靠信息傳送服務,比TCP頭部消耗少,傳輸效率高,適合少量數據的傳輸和可靠性要求不是很高的場合[12]。
本例中導航臺的主要功能是任務規劃以及和飛控臺之間的以太網通信,它要求可靠發送航點信息,所以采用了TCP協議;由于視景計算機接收飛控臺發過來的數據量并不大而系統對于數據接收的流暢性要求較高,所以采用UDP傳輸協議來接收數據。UDP使用ioctlsocket函數將套結字設置為非阻塞,使數據接收更流暢。
Vega Prime應用程序的運行分為兩個主要的階段。首先是仿真系統的靜態設置階段,在這個階段中主要進行包括內存分配、參數設置、進程分配等在內的系統初始化和配置等,第二階段進入仿真系統的動態循環,系統等待飛控臺傳送數據,在沒有數據傳輸時系統處于等待狀態,否則程序進入飛行姿態設置和儀表驅動顯示階段,一幀數據發送完畢則重新進入下一個循環,仿真應用的主要過程都在這個階段中完成[3-13]。
3.5 視景和儀表驅動的實現
在該實驗系統中,飛控臺已確定的發送數據的時間為50 ms,首先通過套借口自定義函數recvfrom()將飛控臺每隔50 ms發過來的數據放到數據緩沖區數組buffer[10]中,其中在buffer[0],buffer[1],uffer[2]…buffer[5]中將分別存放無人機的位置參數x,y,z以及俯仰、滾轉、偏航的數據信息,這樣就完成了數據的接收任務,然后使用setPlanePosition()函數將收到的數據轉換為飛機位置向量,偽代碼如下:

視景的驅動首先新建一個類myApp*app=new myApp;然后調用用戶自定義的函數fly(),app->fly(),來實現飛行器的六自由度飛行仿真。偽代碼如下:

//對象指針指向無人機模型 getRotate(double*h,double*p,double*r)可以控制對象分別繞 X,Y,Z軸旋轉的數值,getTranslate(double*x,double*y,double*z)可以控制對象分別繞X,Y,Z軸平移的數值。
接收網絡數據完畢之后儀表的驅動就直接使用接收過來的數據,將接收的數據付給變量liner即可,以此類推[14]。運行結果圖如圖4所示。

圖4 飛行視景效果
文中介紹了一種新型的儀表制作工具GL Studio,研究了儀表與視景結合的關鍵問題和解決方法,仿真結果表明,利用GL Studio制作飛行儀表形象逼真、速率快、效率高、生成代碼可讀性好,確實是儀表面板仿真的開發利器[9-15]。將其應用于無人機半物理中仿針實驗中,取得了良好的應用效果。
[1]吳家鑄.視景仿真技術及應用[M].西安:電子科技大學出版社,2002.
[2]耿通奮,無人機實時仿真與測試系統綜合設計[D].南京:南京航空航天大學,2003.
[3]石瓊,無人機任務飛行的三維可視化[D].南京:南京航空航天大學,2004.
[4]喬林,費廣正等.OpenGL程序設計[M].北京:清華大學出版社,2000.
[5]夏衛國,軍用視景仿真系統的開發和應用研究[D].北京:北京理工大學,2002.
[6]Jackie.Neider,Tom.Davis Mason.Woo.OpenGL Programming Guide[M].USA:Silicon Graphics Incoporation,1998.
[7]MultiGen.MetaFlight Concept Guide versoin1.2 February 2005.
[8]MultiGen.Creating Terrain Studio User’s Guide versoin1.2 February 2005.
[9]趙龍.無人機飛行控制仿真視景系統設計與實現[D].南京:南京航空航天大學,2006.
[10]黃健熙,毛鋒等.基于VegaPrime的大型流域三維管理系統實現[J].系統仿真學報,2006(10):2819-2823.
[11]張德鋒,王華兵,等.基于Vega Prime的視景仿真技術研究與應用[J].計算機仿真,2006,23(7):191-195.
[12]黃燕.三維地形地貌的可視化研究[D].北京:北京工業大學,2002.
[13]廖巍.大規模地形的建模與動態繪制技術研究[D].長沙:國防科學技術大學,2002.
[14]王召福,金士堯.HLA仿真系統中 Lookahead的分析與動態調整策略[J].計算機仿真,2003,20(4):78-81.
[15]彭光雷.三維地形生成研究及實現[D].重慶:重慶大學,2005.
Meter panel development and application based on GL Studio
ZHAO Yin-ling1,LI Zhi-guo2
(1.Xi'an Vocational and Technical College,Xi'an 710032,China;2.Xi'an Flight Automatic Control Research Institute of China Aviation Industry,Xi'an 710065,China)
Flying scene of simulation can display location and position of the UAV.but there is no flying data to reference.So it is necessary to add the meter to the scene.the user can obtain the exact information of the plane based of the variation of the meter data,such as altitude、volosity and heading.which provide intuitive and understandable warrant.A kind of expert construction software for virtual meter is presented at the aspects of modeling and realization of simulation modules.taking the UAV cabin as an example,the ActiveX code realization of GL Studio and key technologies and reality methods when embed in the scene are explained.this software behaves perfectly in the UAV half entity simulation trail,fulfilling the system requirement of liquidity and real time performance.
virtual reality;meter;texture;control
TP391
A
1674-6236(2016)23-0035-04
2015-12-28稿件編號:201512287
趙銀玲(1982—),女,陜西渭南人,講師。研究方向:控制理論與控制工程,視景仿真。