法律状态公告日
法律状态信息
法律状态
2019-06-18
授权
授权
2017-07-07
实质审查的生效 IPC(主分类):G06F17/50 申请日:20170314
实质审查的生效
2017-06-13
公开
公开
技术领域
本发明属于通信技术领域,更进一步涉及计算机模拟仿真技术领域中的一种多模导航三维动态可视化仿真平台的构建方法。本发明可对多模导航系统提供一个具有三维可视化效果的动态的仿真平台,该平台可用于为多模导航系统硬件设备的测试提供动态的飞行相关数据。
背景技术
飞机导航系统是可以确定飞机的位置并引导飞机按预定航线飞行的整套设备。早期的飞机主要靠目视导航,后来逐渐出现了仪表着陆系统(ILS)、伏尔导航系统(VOR)和微波着陆系统(MLS),着重保障民用航空在进近和着陆过程中的飞行安全,塔康系统(TACAN),着重保障巡航过程中的飞行安全。由以上几种导航系统组合起来所构成的性能更为完善的导航系统称为多模导航系统,本文针对多模导航系统,意在为其提供三维动态可视化的仿真平台。
许志在其发表的硕士论文“塞斯纳172飞机飞行数据可视化仿真技术”(中国民用航空飞行学院硕士论文.四川.2015.05)中通过对大数据的分析与处理,搭建了一个基于塞斯纳172飞机的飞行数据可视化仿真平台。该平台的仿真方法是对FlightGear进行二次开发实现了飞行数据的状态重现,利用C++语言编程实现飞行数据的UDP通信并使用VS2010开发了数字仪表客户端,实现了重要飞行参数与飞行状态的显示。该方法存在的不足之处是,对FlightGear进行二次开发实现飞行数据可视化平台;使用VS2010开发数字仪表客户端显示飞行参数与飞行状态,在飞行数据可视化平台与数字仪表客户端之间利用C++语言编程实现飞行数据的UDP通信,飞行数据从飞行数据可视化平台传输到数字仪表客户端的过程中产生了延时,影响了飞行数据显示的实时效率。
哈尔滨工程大学拥有的专利技术“一种近水面飞行器机动飞行视景仿真方法”(专利号:201210228942.6公开号:CN 102800130B)中公开了一种近水面飞行器机动飞行视景仿真方法。该方法使用Visual Studio 2003.NET软件和Vega Prime视景仿真软件相结合的方法进行近水面飞行器机动飞行视景仿真。利用Creator软件建立海浪和岛屿模型,使用LynX Prime图形界面设计软件进行三维场景模型匹配及初始化设置,采用粒子系统和静态图像纹理映射的方法进行特殊效果模型的实现,通过键盘、鼠标触发事件实现人机交互漫游、视角切换和实体信息查询响应。但是,该专利技术仍然存在的不足之处是,Vega Prime作为一个需要付费且不开源的视景仿真软件,在一定程度上提高该视景仿真的成本,并且不利于对该技术进行二次开发,无法在现有的软件上进行定制修改和功能扩展。
发明内容
本发明的目的在于克服上述已有技术的不足,提供一种多模导航三维动态可视化仿真方法,以解决地面模拟仿真试验所需试验设备复杂、试验成本极高、可重复性差的问题。
本发明的具体思路是:在VC++和OSG三维渲染引擎环境下,基于MFC微软基础类库搭建人机交互平台,利用OSGEarth地形渲染工具包渲染三维数字地球场景及自然环境,利用三维建模软件建立飞机的三维模型和机场的虚拟仿真场景模型,并加载到三维数字地球场景中。获取飞行航线关键点数据,经处理得到插值航线点数据,用于驱动飞机飞行。在飞机飞行过程中,利用漫游器跟踪观察飞机,利用事件处理器更新飞机的飞行数据,并实时显示飞行数据。
本发明实现上述目的的具体步骤如下:
(1)搭建人机交互平台:
在VC++和OSG三维渲染引擎环境下,基于MFC微软基础类库搭建人机交互平台;
(2)渲染三维数字地球场景及自然环境:
(2a)在已搭建的人机交互平台上,利用OSGEarth地形渲染工具包,对三维数字地球场景进行渲染;
(2b)在已搭建的人机交互平台上,利用OSGEarth地形渲染工具包,对太阳、月亮、星空场景以及云、雨、雪天气效果进行渲染;
(3)获取飞行航线关键点数据:
从国际民用航空组织ICAO统一的国际民航技术标准和国际航行规则中提取民用航空飞行航线的数据信息,并从中拣选航线关键点的经度、纬度、高度及飞行速度信息;
(4)从首个飞行航线关键点开始,依次取两个关键点,得到相邻三个关键点;
(5)判断相邻三个关键点的位置是否在同一条直线上,若是,则执行步骤(6),否则,执行步骤(7);
(6)等距插值处理:
(6a)对飞行航线关键点中相邻三个关键点中的前两个关键点进行直线连接,得到前两个关键点间的线段;
(6b)在前两个关键点间的线段上,等距的插入多个点,得到插值航线点;
(7)拐角平滑处理:
(7a)依次连接飞行航线关键点中相邻三个关键点;
(7b)在飞行航线关键点中相邻三个关键点的第二个关键点前后相距等长度的位置处分别插入一个点,得到两个插入点;
(7c)以两个插入点为切点作垂线,相交得到交点;
(7d)以交点为圆心绘制两插入点间的圆弧曲线;
(7e)在两插入点间的圆弧曲线上,等弧度的插入多个点,得到插值航线点;
(8)判断所有相邻的飞行航线关键点间是否都已得到插值航线点,若是,则执行步骤(10),否则,执行步骤(9);
(9)从上一次所选的飞行航线关键点的第二个关键点开始,依次取两个关键点,得到相邻三个关键点后,执行步骤(5);
(10)建立模型:
利用三维动画渲染制作软件3DS MAX和三维虚拟仿真建模软件Multigen Creator,建立飞机的三维模型和机场的虚拟仿真场景模型;
(11)加载模型:
(11a)在三维数字地球场景中,加载机场的虚拟仿真场景模型,所加载的模型覆盖三维数字地球场景中已渲染生成的机场地形和影像;
(11b)将飞机的三维模型加载到飞行航线起始点处,调整飞机机身水平,机头朝向飞行航线方向;
(11c)对机场的虚拟仿真场景模型位置进行调整,使飞机的三维模型位于虚拟仿真场景模型中的飞行跑道起始端,飞行航线平行于虚拟仿真场景模型中的飞行跑道平面;
(12)驱动飞机飞行:
(12a)根据飞机完成一次飞行过程所需要经过的阶段,从插值航线点中提取与各个阶段对应的航线点;
(12b)创建多个驱动文件,分别存储不同飞行阶段的航线点以及飞机完成一次飞行任务的航线点;
(12c)将飞机完成一次飞行过程的驱动文件设置为初始的驱动文件,驱动飞机飞行;
(12d)在进行飞行过程阶段性仿真时,打开并读入对应的飞行阶段的驱动文件,驱动飞机飞行;
(13)漫游器跟踪观察飞机:
在启动飞机飞行时,将漫游器的跟踪对象设置为飞机的三维模型对象,实现飞机飞行过程的实时跟踪观察;
(14)显示俯视缩略图:
在飞行仿真场景中创建新的视口,显示飞行仿真场景的俯视缩略图;
(15)显示飞行数据:
在屏幕每一帧的刷新过程中,利用事件处理器更新飞机的飞行数据,并实时显示飞行数据。
本发明与现有技术相比具有如下优点:
第一,本发明是在VC++和OSG三维渲染引擎环境下,基于MFC微软基础类库搭建人机交互平台,克服了现有技术中不利于对现有技术进行二次开发,无法在现有的软件上进行定制修改和功能扩展的缺陷,使本发明可以在OSG三维渲染引擎基础上进行二次开发,实现定制修改和功能扩展。
第二,本发明在屏幕每一帧的刷新过程中,利用事件处理器更新飞机的飞行数据,并实时显示飞行数据,克服了现有技术中飞行数据从飞行数据可视化平台传输到数字仪表客户端的过程中产生了延时,影响了飞行数据显示的实时效率的缺陷,使本发明可以在屏幕每一帧的刷新过程中,更新显示飞行数据,实时效率高。
附图说明
图1为本发明的流程图。
图2为飞行航线关键点的遍历选取说明图。
具体实施方式
以下参照附图对本发明做进一步的描述。
参照图1,本发明完成多模导航三维动态可视化仿真的实现步骤如下:
步骤1,搭建人机交互平台。
在VC++和OSG三维渲染引擎环境下,基于MFC微软基础类库搭建人机交互平台。其中,VC++用于构建系统平台和界面,OSG三维渲染引擎提供虚拟现实技术用于实现三维可视化仿真。
步骤2,渲染三维数字地球场景及自然环境。
在已搭建的人机交互平台上,利用OSGEarth地形渲染工具包,对三维数字地球场景进行渲染。
所述的对三维数字地球场景进行渲染的具体步骤如下:
第一步,从Google Mapper下载高程数据DEM,从国家基础地理信息中心下载地理信息矢量数据;
第二步,采用可扩展标记语言XML,编写earth文件,分别将高程元素和地理矢量元素及其对应的驱动插件名称添加到earth文件中;
第三步,从谷歌服务器读取地图影像数据缓存到本地,并渲染在圆形地球的三维模型上;
第四步,选择使用已经缓存的地图影像数据对三维地球模型进行直接的渲染,以提高模型渲染效率。
在已搭建的人机交互平台上,利用OSGEarth地形渲染工具包,对太阳、月亮、星空场景以及云、雨、雪天气效果进行渲染。
所述的对云、雨、雪天气效果进行渲染是指,将OSGEarth与SilverLing SDK相结合对云天气效果进行渲染;基于粒子系统对雨、雪天气效果进行渲染。
步骤3,获取飞行航线关键点数据。
从国际民用航空组织ICAO统一的国际民航技术标准和国际航行规则中提取民用航空飞行航线的数据信息,并从中拣选航线关键点的经度、纬度、高度及飞行速度信息。
所述的航线关键点包括飞机滑跑、起飞、爬升、巡航、下降、进近、着陆和最后滑跑时的起始点。
步骤4,从首个飞行航线关键点开始,依次取两个关键点,得到相邻三个关键点。
步骤5,判断相邻三个关键点的位置是否在同一条直线上,若是,则执行步骤6,进行等距插值处理,否则,执行步骤7,进行拐角平滑处理。
步骤6,等距插值处理。
对飞行航线关键点中相邻三个关键点中的前两个关键点进行直线连接,得到前两个关键点间的线段。
在前两个关键点间的线段上,等距的插入多个点,得到插值航线点。
步骤7,拐角平滑处理。
依次连接飞行航线关键点中相邻三个关键点。
在飞行航线关键点中相邻三个关键点的第二个关键点前后相距等长度的位置处分别插入一个点,得到两个插入点。
以两个插入点为切点作垂线,相交得到交点。
以交点为圆心绘制两插入点间的圆弧曲线。
在两插入点间的圆弧曲线上,等弧度的插入多个点,得到插值航线点。
步骤8,判断所有相邻的飞行航线关键点间是否都已得到插值航线点,若是,则执行步骤10,否则,执行步骤9。
步骤9,从上一次所选的飞行航线关键点的第二个关键点开始,依次取两个关键点,得到相邻三个关键点后,执行步骤5。
参照附图2,对本发明的飞行航线关键点的遍历选取做进一步的说明:第一次选取编号分别为1,2,3的相邻三个关键点;第二次选取编号分别为2,3,4的相邻三个关键点;第三次选取编号分别为3,4,5的相邻三个关键点,以此类推,完成飞行航线关键点的遍历选取。
步骤10,建立模型。
利用三维动画渲染制作软件3DS MAX和三维虚拟仿真建模软件Multigen Creator,建立飞机的三维模型和机场的虚拟仿真场景模型。
所述的三维建模的具体方式如下:收集并处理模型素材,包括飞机模型的长宽高等一系列的参数信息、飞机模型三视图以及飞机模型表面的纹理帖图,利用三维动画渲染制作软件3DS MAX重构出相应的虚拟三维对象实体,运用材质贴图、布尔运算方法进行处理和构型,并以FLT格式文件导出,利用三维虚拟仿真建模软件MultigenCreator,采取将一些面合并成一个面以及删除在实际仿真过程中不会被显示的多边形的方式实现模型的简化和优化,最后利用OSG三维渲染引擎自带的osgconv工具,将FLT格式文件转换为OSG中所支持的IVE格式文件。
步骤11,加载模型。
在三维数字地球场景中,加载机场的虚拟仿真场景模型,所加载的模型覆盖三维数字地球场景中已渲染生成的机场地形和影像。
将飞机的三维模型加载到飞行航线起始点处,调整飞机机身水平,机头朝向飞行航线方向。
对机场的虚拟仿真场景模型位置进行调整,使飞机的三维模型位于虚拟仿真场景模型中的飞行跑道起始端,飞行航线平行于虚拟仿真场景模型中的飞行跑道平面。
步骤12,驱动飞机飞行。
根据飞机完成一次飞行过程所需要经过的阶段,从插值航线点中提取与各个阶段对应的航线点。
所述的飞机完成一次飞行过程所需要经过的阶段包括飞机滑跑、起飞、爬升、巡航、下降、进近、着陆和最后滑跑阶段。
创建多个驱动文件,分别存储不同飞行阶段的航线点以及飞机完成一次飞行任务的航线点。
将飞机完成一次飞行过程的驱动文件设置为初始的驱动文件,驱动飞机飞行。
在进行飞行过程阶段性仿真时,打开并读入对应的飞行阶段的驱动文件,驱动飞机飞行。
步骤13,漫游器跟踪观察飞机。
使用OSGEarth自带的漫游器osgEarth::Util::EarthManipulator,在启动飞机飞行时,将漫游器的跟踪对象设置为飞机的三维模型对象,实现飞机飞行过程的实时跟踪观察,并可进行全方位旋转观察、缩放观察以及移动观察。
步骤14,显示俯视缩略图。
在飞行仿真场景中创建新的视口,显示飞行仿真场景的俯视缩略图,并实时更新俯视缩略图中的内容。
所述的飞行仿真场景的俯视缩略图中包括飞机与机场的位置以及飞机飞行航线。
步骤15,显示飞行数据。
在屏幕每一帧的刷新过程中,利用事件处理器更新飞机的飞行数据,并实时显示飞行数据,帧速率维持在60帧/秒左右的范围内,满足了多导航三维动态可视化仿真平台对于飞行数据实时性的要求。
所述飞机的飞行数据包括经度、纬度、高度、速度、俯仰角、滚转角、偏航角。
机译: 用于构建验证平台的集成电路模型的功能验证方法,仿真器设备和验证平台
机译: 用于数据可视化和多种仿真导航的方法,系统和媒体导致城市设计
机译: 电力系统数据三维动态可视化系统及方法