(中国民用航空飞行学院 广汉 618307)
近年来,计算机软硬件的巨大进步推动了三维虚拟可视化仿真技术的发展,三维可视化虚拟仿真技术属于图形图像仿真技术的一种,比以往传统仿真技术有着更真实的视觉听觉效果,更好的交互体验[1],正越来越多地被应用在军事、建筑、教育培训等行业,在跑道侵入三维仿真方面的研究较少,本文对此展开研究。在虚拟仿真领域,韦有双等讨论了系统仿真基本概念[2],孙永涛借助GL Studio和VC++开发了飞行模拟器虚拟仪表系统[3],史扬使用3DMAX等建模工具实现了真实战场的实时仿真[4],吴兴华等利用Vega Prime和OpenGL动态纹理技术搭建了飞机显控系统[5]。Unreal Engine因为其强大的物理虚拟引擎、出色的渲染效果和简单的程序编写方式,逐渐成为虚拟现实应用开发工具的第一选择[6~11]。本文通过三维虚拟软件 3Dmax建模,然后将完成的三维模型导入虚拟引擎Unreal Engine中进行,最终形成虚拟现实环境,实现典型跑道侵入情况的三维虚拟展示。跑道侵入仿真是基于计算机平台对场面运行环境及目标活动过程进行三维虚拟呈现的过程,可直观分析跑道入侵运行过程及评价管制指挥策略有效性。
三维仿真是指利用计算机技术生成的一个逼真的,具有多种感知功能的虚拟环境[12],随着人们对三维仿真的真实感和精确度的更高要求,实现三维仿真的工作量急剧增加,尤其是从2D仿真转移到3D仿真时,仿真软件提供的物理模拟,碰撞,光照渲染等系统一方面使得仿真的场景更具真实感,更贴合现实世界的实际情况,另一方面也使得仿真模型的建立过程更加复杂,仿真结果呈现时间变长。
目前三维虚拟仿真可视化的软件主要有Unity和 Unreral Engine4(以下简称 UE4)两款工具[13~15],二者对比如表1所示。Unity引擎主要针对软件自身的开发,其他插件效果等大部分依赖第三方插件,且不公开程序源代码,开发中遇到的程序上的兼容问题,需要等待Untiy公司来解决。而UE4公开了所有源代码,开发过程中的问题可以自行解决。且UE4用蓝图隔离了业务逻辑和底层功能,使模型设计人员与C++程序开发人员互不干扰,保持了开发架构的稳定性。
表1 Unreal和Unity属性对比
UE4强大的物理虚拟引擎能实现对现实世界中物理现象的真实还原,丰富的API接口和相关工具包降低了仿真开发的难度,场景设计人员不用了解底层代码,仅使用蓝图脚本语言,就能制作出仿真场景代码和界面,提高了系统的规范性,使开发更加高效。本仿真使用Dirext11渲染组件对机场、跑道、航空器场景进行渲染,为仿真场景使用人员提供了逼真的视觉效果。使用PhysX3.3物理引擎[16]来对航空器速度、加速度等进行建模来模拟航空器的物理运动。
航空器跑道侵入场景实现过程中最重要的就是碰撞检测设计,碰撞检测主要是针对航空器与航空器,航空器与车辆之间的碰撞,当碰撞发生时目标会改变运动轨迹。UE4提供了针对不同类型的碰撞检测系统,该系统主要由碰撞检测、碰撞响应和踪迹响应构成。如果发生碰撞事件,UE4碰撞检测系统就会调用碰撞响应,返回碰撞位置、类型和传入深度,对返回数据进行计算,根据计算结果修改航空器的运动状态。UE4中主要有三种碰撞类型,无碰撞、无物理碰撞、启用碰撞。在UE4中,每个实体有一个Collision属性,只有设定了Collision属性的实体才会发生碰撞情况,不同实体的碰撞主要由碰撞通道来区分,常见的碰撞通道主要有World Dynamic,World static,Character等,World Dynamic通道类型常用于静止的物体上,比如跑道,塔台等,World static通道类型常用在运动的实体上,如航空器、车辆等。实体之间碰撞的发生是相互的,当设置了碰撞属性的实体之间发生碰撞时,会改变航空器运动状态,并返回碰撞结果。
跑道侵入事件一般发生在航空器起飞前,降落后的滑行阶段,场景仿真需要对航空器滑行阶段的运动学模型进行研究,合理的运动模型的选取能更好地实现对航空器的运动学仿真,更逼真地在虚拟环境中还原航空器的真实运动状态,并且在C++中更容易实现编程,能降低三维仿真建模的难度,减少在仿真运行过程中的资源消耗。考虑航空器实际运行和三维仿真需求,航空器运动模型引入以下假设:1)航空器,车辆视为刚体且质量为常数。2)航空器,车辆严格按照跑道,滑行道中线运行。3)航空器,车辆的坐标系严格固定为质心为原点。4)航空器,车辆转弯时速率恒定。
得到航空器滑行运动学模型[6],如图1所示。
图1 航空器地面滑行运动模型
如图1所示,飞机作为一个运动刚体,其运动可以由u(t),s(t),l(t)3个向量确定,其关系为
设t时刻飞机前轮转弯角为δ(t),显然有:
可得到U的相对坐标:
根据S和U可得到向量S(t),U(t)确定飞机在t时刻的位置和姿态。
利用层次化的系统架构方案,并在仿真系统功能实现上基于模块化理念来实现,具体思路为表示层只负责外部的表现形式,不进行数据的交互。使用人员在这一层获取提示信息及控制航空器与车辆之间的交互操作。中间层负责仿真系统的逻辑部分,进行逻辑处理,规定了跑道侵入的的规则和情况。数据层将前面建立的不同运动实体的数学模型,封装成一个类,为后续的开发。
图2 系统实现流程图
机场场面三维仿真场景涉及物体类型众多,主要包括跑道、滑行道、停机坪、候机楼等。虚拟仿真需要将机场场面的众多不同功能,不同形状的建筑物呈现在虚拟世界当中,精准的三维模型能产生良好的视觉效果和沉浸感。在三维模型实现过程中主要以3DMAX作为制作模型的软件工具,将整个场面实际模型分为2D和3D模型两类。2D模型主要是指跑道、路面等,3D模型又细分为两类,一类是静止的建筑物模型,一类是运动的航空器、车辆模型。
本文硬件实验环境为CPU为Intel Core i5 8400,内存为64G,显卡为NVIDIA GeForce 2080Ti显存为11 G。在该实验平台上,采用VS2019(C++)和Unreal Engine开发了航空器机场场面跑道侵入仿真系统。通过航空器及车辆不同阶段的运动数学模型,建立航空器及车辆运动的仿真模型。
图3 机场三维场景
图4 机场跑道三维场景
图5 航空器起飞时其它航空器穿越滑行道
图6 航空器降落时其它航空器穿越滑行道
图7 两架空器使用了同一跑道
图8 机场车辆驶入航空器跑道
基于Unreal引擎,针对航空器机场跑道侵入场景进行仿真研究,开展了航空器运动数学模型研究,虚拟场景建模研究,建立了真实感较强的跑道侵入场景。借助Unreal引擎先进的物理系统、地形模块,渲染效果、视角跟随建模技术,提高了系统开发效率及真实性,较以往的虚拟仿真软件,此方法效率更高仿真建模速度更快,渲染效果更强,场景真实度还原更高。对场景还原、岗位培训、事故分析等丰富的应用场景进行支持,但本文只是展示了单跑道机场场面跑道侵入仿真,实际机场跑道还有交叉,平行等情况,需要进一步研究不同跑道构型下的侵入仿真,避免灾难事故的发生。