王浚羽,姜荔峰,張峰,陳蕾
(空軍航空大學軍事仿真技術研究所,長春130022)
基于Google Earth的三維飛行仿真系統(tǒng)設計
王浚羽,姜荔峰,張峰,陳蕾
(空軍航空大學軍事仿真技術研究所,長春130022)
提出了一種利用Google Earth二次開發(fā)能力實現(xiàn)飛機六自由度飛行仿真的方法,使用KML語言描述了地景中的三維參考航線和飛行姿態(tài),將Google SketchUp建立的飛機三維模型導入到Google Earth中,通過面向對象的編程思想,利用Microsoft VC++6.0對Google Earth進行控制,實現(xiàn)仿真系統(tǒng)的人機交互功能;系統(tǒng)采用B/S結構,客戶端采用Google Earth瀏覽器,全部開發(fā)都在服務器端;系統(tǒng)運行結果表明:該系統(tǒng)可逼真地模擬飛機飛行;系統(tǒng)還可以用于三維航跡研究分析、實時航跡監(jiān)視等,具有廣闊的開發(fā)前景。
Google Earth;航跡;飛行姿態(tài);六自由度飛行仿真
飛機在三維環(huán)境下的六自由度飛行仿真在飛行訓練、飛行沖突研究、飛行事故調查、航跡規(guī)劃、飛行仿真和空域規(guī)劃等方面都具有重要意義。通常的飛行仿真,一般會用Creator、3Dmax等軟件創(chuàng)建三維模型,用Vega生成視景仿真,都需要地形模型的建立以及視景仿真,而且僅僅是針對某一局限區(qū)域內。Google Earth是Google公司在2005年6月推出的虛擬地球軟件。Google Earth將衛(wèi)星圖片、航空照相以及GIS布置在一個三維的地球模型上。Google Earth使用了公共領域的圖片、受許可用的航空照相圖片、KeyHole間諜衛(wèi)星圖片以及很多其他衛(wèi)星所拍攝的圖片。還包含了實時的天氣信息,同時可對其進行二次開發(fā)。本文介紹了一種以Google Earth作為平臺,運用了Google Earth為用戶提供的兩種可擴展接口,KML文件形式和組件(COM)API形式,使用KML語言描述飛機參考航跡和飛機在飛行過程中的姿態(tài),通過可擴展接口引入以VC++6.0為開發(fā)平臺的C++程序,設計出人機交互的控件控制窗口,不必做地形建模和視景仿真。系統(tǒng)采用了B/S架構,客戶端采用了Google Earth Viewer,全部開發(fā)都在服務器端。用戶只需訪問服務器便能得到逼真的六自由度實時飛行仿真。
1.1 可擴展的Google Earth
Google Earth為用戶提供了2種可擴展接口,分別是KML文件形式和組件(COM)API形式。基于(COM)API的開發(fā)方式主要用來控制Google Earth的視角、實現(xiàn)動畫效果等功能;而基于KML的開發(fā)方式則主要用來生成地理要素,實現(xiàn)數據的更新等。在實際的應用中,需要將這2種開發(fā)方式結合使用,這樣才能取得較為理想的效果。本仿真系統(tǒng)就是使用了兩種方式相互配合。
在Google Earth COM API中,COM即組件技術,API即應用編程接口。它是一個包括IApplicationGE、ICameraInfoGE、IFeatureGE、IFeatureCollectionGE、IPointOnTerrainGE等11個類的類庫。
在該類庫的11個類中,IApplicationGE類最為重要,Google Earth COM API類庫中的其他類的使用,都會涉及IApplicationGE類中的屬性或函數。在本仿真系統(tǒng)中,客戶端的初始化流程圖如圖1所示。
1.2 KML文件
KML的全稱為Keyhole Markup Language,最開始是由Keyhole公司開發(fā)的,基于XML(eXtensible Markup Language,可擴展標記語言)語法和文件格式的、用來描述和保存地理信息(如點、線、面、圖像、多邊形和3D模型等)的編碼規(guī)范,可以被Google Earth和Google Maps識別并顯示。
KML在吸收和借鑒開放地理信息系統(tǒng)協(xié)會OGC制定的GML(Geography Markup Language)標準的基礎上,舍去地理模型中拓撲關系的描述,簡化描述元素,使用了一種基于標簽(tags)的語法格式來描述地理信息,使KML文件在Google Earth的顯示過程與HTML網頁被瀏覽器處理的過程相類似,也就是說,通過KML標準形成的KML文件是通過Google Earth瀏覽器解釋,并在Google Earth瀏覽器表現(xiàn)出來的。Google Earth中的地圖數據、地物地標以及其他的一些附加的信息圖層大部分是利用KML/KMZ文件來組織的。下面按經度緯度高度的順序,描述一個起始點坐標為(125 m,43 m,500 m),終點坐標為(125.2 m,43.9 m,500 m)的三維平面地標KML文件為:
<kml
xmlns="http://www.opengis.net/kml/2.2"xm lns:gx ="http://www.google.com/km l/ext/2.2"xmlns:km l="http://www.opengis.net/kml/2.2"xmlns:atom="http://www.w3.org/2005/Atom">
<Folder>
<name>三維平面地標</name><open>1</open>
<Placemark><LineString><extrude>1</extrude><tessellate>1</tessellate>
<altitudeMode>relativeToGround</altitudeMode>
<coordinates>125,43,500 125.2,43.9,500
</coordinates></LineString></Placemark></Folder></km l>
KML文件是文本格式,通過簡單的幾段代碼就可以表示出多樣的地理信息。Google Earth中各種地理信息用不同的圖層添加進來,通過編寫KML文件就可以把點、線、圖片、地標、3D模型等疊加在Google Earth上。
1.3 Google Sketchup三維建模平臺
本文以Google SketchUp作為飛機三維模型建立的平臺。SketchUp是一款易于使用的3D設計軟件,是一套直接面向設計方案和創(chuàng)作過程的模型設計工具,它的創(chuàng)作過程不但能夠充分表達設計者的思想而且較大程度地滿足了與客戶即時交流的需要,它使得設計者可以直接在電腦上進行較為直觀的構思設計。再者,SketchUp已經和Google Earth進行了較好的兼容,可通過“添加影像”將待建模區(qū)域在Google Earth中的遙感影像導入到SketchUp中,這樣便可在Sketch-Up環(huán)境中的遙感影像區(qū)域進行建筑物模型的構建。Sketch-Up中的文件格式默認的為skp格式,導入到GE(Google Earth縮寫)中后為kmz格式,還可通過格式轉換保存為kml文件,這兩種格式的文件為文本形式,因此文件很小,易于傳輸。
SketchUp這一GE針對虛擬現(xiàn)實(VR,Virtual Reality)技術提供的模型設計軟件,較之于專業(yè)軟件,雖然在功能等方面有一定的局限性,還無法達到專業(yè)軟件的水平,但是其簡單直觀方便的操作使其具有更大的普及性,可應用于對建模等沒有非常精細要求的諸多領域。圖2為通過SketchUp建立三維飛機模型。
1.4人機交互界面設計
通過Microsoft VC++6.0對Google Earth進行開發(fā),在MFC開發(fā)環(huán)境中,添加控件、編寫控件對應功能的代碼、運行調試,直至系統(tǒng)運行穩(wěn)定良好。人機交互界面的職能劃分及人機交互界面如圖3、圖4所示。

圖3 人機交互界面職能劃分

圖4 人機交互界面
1.5 機動性約束
飛機在運動過程當中限于飛機本身的性能,如最大轉彎角、最大爬升/下滑角等,因此,為了增進飛行仿真系統(tǒng)的逼真度,還需要對相應的參數進行限制約束。本文所涉仿真系統(tǒng)就最大轉彎角和最大爬升/下滑角進行了如下約束。
1)最大轉彎角約束。它限制了三維飛機模型只能在小于或等于預先確定的最大轉彎角范圍內轉彎。約束條件取決于實際飛行當中飛機的機動性能。設最大允許轉彎角為α,它是一個充分大值,具體值的設置可參照公開出版的書籍中的數據。
2)最大爬升/下滑角約束。該約束用于限制飛機模型在飛行過程中在高度方向上爬升和俯沖的最大角度。設定最大爬升/下滑角為θ,同樣,其為一有限值,具體值的設置可參照公開出版的書籍中的數據。
1.6 仿真實現(xiàn)
本仿真系統(tǒng)的演示可分為兩個部分。一個是靜態(tài)展示,通過人機交互界面設置不同參數,調整飛機姿態(tài);另一個是動態(tài)演示,即六自由度飛行仿真。動態(tài)演示過程中的飛行仿真如圖3所示。
本文介紹了一種利用Google Earth二次開發(fā)能力實現(xiàn)六自由度飛行仿真的方法。所設計的仿真系統(tǒng)采用了Browser/Server結構,開發(fā)均在服務器端進行,客戶端采用Google Earth Viewer,提高了系統(tǒng)的通用性。對于視景及地形模型細致程度要求不高的仿真系統(tǒng)省去了地形建模、視景仿真等過程,Google Earth在在線瀏覽的自動加載工程中即可滿足視景仿真的要求。通過運行,發(fā)現(xiàn)該仿真系統(tǒng)的逼真度較高。將所做工作總結如下:首先,通過Google Sketchup進行飛機三維模型的建立;其次,利用Google Earth作為仿真平臺,用KML語言描述起始點和目標點地標、參考航跡和飛行姿態(tài);通過面向對象的編程思想在VC++6.0這一平臺上用C++進行人機交互界面設計。
此系統(tǒng)可用于六自由度飛行仿真、航跡研究等,為飛行訓練提供了便捷、高效的條件。同時可應用于三維航跡規(guī)劃問題的可視化研究和實時的航跡監(jiān)視等領域,具有廣闊的開發(fā)前景。

圖3 動態(tài)飛行仿真
[1]高彥麗,劉建平,賈云鵬.Google Earth和SketchUp環(huán)境下三維場景建立方法研究[J].科技廣場,2012(5):245-247.
[2]唐小桃,陸元會.基于Google Earth 3D原生COM API的二次開發(fā)[J].電腦編程技巧與維護,2012(10):85-89.
[3]歐陽溯,洪陪鈿.Google Earth KML及在日本地震的應用初探[J].礦山測量,2011(4):40-43.
[4]吳肖,彭璇,高宇.在Google Earth平臺上的虛擬社區(qū)構建[J].地理空間信,2010(4):127-129.
[5]邱震宇,楊紅雨,劉強.三維大地形下的飛行航跡優(yōu)化仿真[J].計算機仿真,2008,25(2):59-62.
[6]劉磊,仇菊香,劉曉紅.基于Google Earth API的二次開發(fā)研究[J].測繪標準,2011,27(2):17-19.
[7]王艷,何憑宗.基于VC++的Google Earth KML地標文件的自動生成及應用[J].北京測繪,2009(2):32-34.
[8]唐勇,劉昌忠,吳宏剛.基于Google Earth的三維航跡監(jiān)視及六自由度飛行仿真[J].計算機應用,2009,29(12): 3385-3387.
(責任編輯周江川)
Design of 3D Flight Simulation System Based on Google Earth
WANG Jun-yu,JIANG LI-feng,ZHANG Feng,CHEN Lei
(Institute of Military Emulation Technique,Airforce and Aeronautical University,Changchun 130022,China)
This paper introduced amethod of 6-DOF flight simulation based on secondary development of Google Earth.3D reference flight tracks in the landscape and flight attitude were described by KMLmarkup language,and the 3D model of a plane created by Google SketchUp was put into Google Earth,by the object-oriented programming idea,using Microsoft VC++6.0 to control Google Earth to achieve the function of human-computer interaction of simulation system.The system was built on B/S architecture,and the entire developmentwas put on the server while the clients used Google Earth browser directly.System operation results show that the system can realistically simulate the movement of aircraft,which has low cost of development and good portability.It can also be used for 3D-route research and analysis and realtime track monitor,etc.with a promising development prospects.
Google Earth;flight track;flight attitude;6-DOF flight simulation
:A
1006-0707(2014)07-0100-03
format:WANG Jun-yu,JIANG LI-feng,ZHANG Feng,et al.Design of 3D Flight Simulation System Based on Google Earth[J].Journal of Sichuan Ordnance,2014(7):100-102.
本文引用格式:王浚羽,姜荔峰,張峰,等.基于Google Earth的三維飛行仿真系統(tǒng)設計[J].四川兵工學報,2014(7): 100-102.
10.11809/scbgxb2014.07.028
2014-01-27
王浚羽(1990—),男,碩士研究生,主要從事航空宇航科學與技術研究。
TP391