APP下载

基于Google Earth的三维飞行仿真系统设计

2014-06-28王浚羽姜荔峰张峰陈蕾

兵器装备工程学报 2014年7期
关键词:视景二次开发航迹

王浚羽,姜荔峰,张峰,陈蕾

(空军航空大学军事仿真技术研究所,长春130022)

基于Google Earth的三维飞行仿真系统设计

王浚羽,姜荔峰,张峰,陈蕾

(空军航空大学军事仿真技术研究所,长春130022)

提出了一种利用Google Earth二次开发能力实现飞机六自由度飞行仿真的方法,使用KML语言描述了地景中的三维参考航线和飞行姿态,将Google SketchUp建立的飞机三维模型导入到Google Earth中,通过面向对象的编程思想,利用Microsoft VC++6.0对Google Earth进行控制,实现仿真系统的人机交互功能;系统采用B/S结构,客户端采用Google Earth浏览器,全部开发都在服务器端;系统运行结果表明:该系统可逼真地模拟飞机飞行;系统还可以用于三维航迹研究分析、实时航迹监视等,具有广阔的开发前景。

Google Earth;航迹;飞行姿态;六自由度飞行仿真

飞机在三维环境下的六自由度飞行仿真在飞行训练、飞行冲突研究、飞行事故调查、航迹规划、飞行仿真和空域规划等方面都具有重要意义。通常的飞行仿真,一般会用Creator、3Dmax等软件创建三维模型,用Vega生成视景仿真,都需要地形模型的建立以及视景仿真,而且仅仅是针对某一局限区域内。Google Earth是Google公司在2005年6月推出的虚拟地球软件。Google Earth将卫星图片、航空照相以及GIS布置在一个三维的地球模型上。Google Earth使用了公共领域的图片、受许可用的航空照相图片、KeyHole间谍卫星图片以及很多其他卫星所拍摄的图片。还包含了实时的天气信息,同时可对其进行二次开发。本文介绍了一种以Google Earth作为平台,运用了Google Earth为用户提供的两种可扩展接口,KML文件形式和组件(COM)API形式,使用KML语言描述飞机参考航迹和飞机在飞行过程中的姿态,通过可扩展接口引入以VC++6.0为开发平台的C++程序,设计出人机交互的控件控制窗口,不必做地形建模和视景仿真。系统采用了B/S架构,客户端采用了Google Earth Viewer,全部开发都在服务器端。用户只需访问服务器便能得到逼真的六自由度实时飞行仿真。

1 仿真系统设计

1.1 可扩展的Google Earth

Google Earth为用户提供了2种可扩展接口,分别是KML文件形式和组件(COM)API形式。基于(COM)API的开发方式主要用来控制Google Earth的视角、实现动画效果等功能;而基于KML的开发方式则主要用来生成地理要素,实现数据的更新等。在实际的应用中,需要将这2种开发方式结合使用,这样才能取得较为理想的效果。本仿真系统就是使用了两种方式相互配合。

在Google Earth COM API中,COM即组件技术,API即应用编程接口。它是一个包括IApplicationGE、ICameraInfoGE、IFeatureGE、IFeatureCollectionGE、IPointOnTerrainGE等11个类的类库。

在该类库的11个类中,IApplicationGE类最为重要,Google Earth COM API类库中的其他类的使用,都会涉及IApplicationGE类中的属性或函数。在本仿真系统中,客户端的初始化流程图如图1所示。

1.2 KML文件

KML的全称为Keyhole Markup Language,最开始是由Keyhole公司开发的,基于XML(eXtensible Markup Language,可扩展标记语言)语法和文件格式的、用来描述和保存地理信息(如点、线、面、图像、多边形和3D模型等)的编码规范,可以被Google Earth和Google Maps识别并显示。

KML在吸收和借鉴开放地理信息系统协会OGC制定的GML(Geography Markup Language)标准的基础上,舍去地理模型中拓扑关系的描述,简化描述元素,使用了一种基于标签(tags)的语法格式来描述地理信息,使KML文件在Google Earth的显示过程与HTML网页被浏览器处理的过程相类似,也就是说,通过KML标准形成的KML文件是通过Google Earth浏览器解释,并在Google Earth浏览器表现出来的。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设计软件,是一套直接面向设计方案和创作过程的模型设计工具,它的创作过程不但能够充分表达设计者的思想而且较大程度地满足了与客户即时交流的需要,它使得设计者可以直接在电脑上进行较为直观的构思设计。再者,SketchUp已经和Google Earth进行了较好的兼容,可通过“添加影像”将待建模区域在Google Earth中的遥感影像导入到SketchUp中,这样便可在Sketch-Up环境中的遥感影像区域进行建筑物模型的构建。Sketch-Up中的文件格式默认的为skp格式,导入到GE(Google Earth缩写)中后为kmz格式,还可通过格式转换保存为kml文件,这两种格式的文件为文本形式,因此文件很小,易于传输。

SketchUp这一GE针对虚拟现实(VR,Virtual Reality)技术提供的模型设计软件,较之于专业软件,虽然在功能等方面有一定的局限性,还无法达到专业软件的水平,但是其简单直观方便的操作使其具有更大的普及性,可应用于对建模等没有非常精细要求的诸多领域。图2为通过SketchUp建立三维飞机模型。

1.4人机交互界面设计

通过Microsoft VC++6.0对Google Earth进行开发,在MFC开发环境中,添加控件、编写控件对应功能的代码、运行调试,直至系统运行稳定良好。人机交互界面的职能划分及人机交互界面如图3、图4所示。

图3 人机交互界面职能划分

图4 人机交互界面

1.5 机动性约束

飞机在运动过程当中限于飞机本身的性能,如最大转弯角、最大爬升/下滑角等,因此,为了增进飞行仿真系统的逼真度,还需要对相应的参数进行限制约束。本文所涉仿真系统就最大转弯角和最大爬升/下滑角进行了如下约束。

1)最大转弯角约束。它限制了三维飞机模型只能在小于或等于预先确定的最大转弯角范围内转弯。约束条件取决于实际飞行当中飞机的机动性能。设最大允许转弯角为α,它是一个充分大值,具体值的设置可参照公开出版的书籍中的数据。

2)最大爬升/下滑角约束。该约束用于限制飞机模型在飞行过程中在高度方向上爬升和俯冲的最大角度。设定最大爬升/下滑角为θ,同样,其为一有限值,具体值的设置可参照公开出版的书籍中的数据。

1.6 仿真实现

本仿真系统的演示可分为两个部分。一个是静态展示,通过人机交互界面设置不同参数,调整飞机姿态;另一个是动态演示,即六自由度飞行仿真。动态演示过程中的飞行仿真如图3所示。

2 结论及展望

本文介绍了一种利用Google Earth二次开发能力实现六自由度飞行仿真的方法。所设计的仿真系统采用了Browser/Server结构,开发均在服务器端进行,客户端采用Google Earth Viewer,提高了系统的通用性。对于视景及地形模型细致程度要求不高的仿真系统省去了地形建模、视景仿真等过程,Google Earth在在线浏览的自动加载工程中即可满足视景仿真的要求。通过运行,发现该仿真系统的逼真度较高。将所做工作总结如下:首先,通过Google Sketchup进行飞机三维模型的建立;其次,利用Google Earth作为仿真平台,用KML语言描述起始点和目标点地标、参考航迹和飞行姿态;通过面向对象的编程思想在VC++6.0这一平台上用C++进行人机交互界面设计。

此系统可用于六自由度飞行仿真、航迹研究等,为飞行训练提供了便捷、高效的条件。同时可应用于三维航迹规划问题的可视化研究和实时的航迹监视等领域,具有广阔的开发前景。

图3 动态飞行仿真

[1]高彦丽,刘建平,贾云鹏.Google Earth和SketchUp环境下三维场景建立方法研究[J].科技广场,2012(5):245-247.

[2]唐小桃,陆元会.基于Google Earth 3D原生COM API的二次开发[J].电脑编程技巧与维护,2012(10):85-89.

[3]欧阳溯,洪陪钿.Google Earth KML及在日本地震的应用初探[J].矿山测量,2011(4):40-43.

[4]吴肖,彭璇,高宇.在Google Earth平台上的虚拟社区构建[J].地理空间信,2010(4):127-129.

[5]邱震宇,杨红雨,刘强.三维大地形下的飞行航迹优化仿真[J].计算机仿真,2008,25(2):59-62.

[6]刘磊,仇菊香,刘晓红.基于Google Earth API的二次开发研究[J].测绘标准,2011,27(2):17-19.

[7]王艳,何凭宗.基于VC++的Google Earth KML地标文件的自动生成及应用[J].北京测绘,2009(2):32-34.

[8]唐勇,刘昌忠,吴宏刚.基于Google Earth的三维航迹监视及六自由度飞行仿真[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的三维飞行仿真系统设计[J].四川兵工学报,2014(7): 100-102.

10.11809/scbgxb2014.07.028

2014-01-27

王浚羽(1990—),男,硕士研究生,主要从事航空宇航科学与技术研究。

TP391

猜你喜欢

视景二次开发航迹
虚拟现实技术在游戏设计中的应用及研究
某炮模拟训练系统中三维视景的设计与实现
梦的航迹
浅谈Mastercam后处理器的二次开发
基于预测和双缓冲区的直升机视景仿真
自适应引导长度的无人机航迹跟踪方法
例谈课本习题的“二次开发”
视觉导航下基于H2/H∞的航迹跟踪
基于航迹差和航向差的航迹自动控制算法
全回转拖轮运动建模与视景仿真