基于Unity3D的飞行可视化仿真系统设计
郭聪;王守尊
【摘 要】Considering the requirements of hardware, development and immersion feeling of the current flight sence simulation. We stablish a real-time flight sence simulation system based on Unity3D by the flight simulation model, 3DMAX, and the C# programming technology. Using Oculus Rift head mounted display as a video output device, provides users an immersive and friendly human-computer interaction environment. The establishment of the aircraft motion model is effective and can reflect the dynamic characteristics of the actual aircraft. The experimental results show that the simulation system has good maneuverability and fidelity, implement flight under the keyboard input interface, has good generality, versatility and scalability.%针对当前飞行可视化仿真系统硬件配置要求高、开发难度大、显示设备深度效果差的缺陷,结合飞机运动模型、3DMAX、C#脚本编程技术,实现了基于Unity3D的飞行可视化仿真系统。采用Oculus Rift头带式显示器作为视频输出设备,能够为用户提供沉浸式的人机交互环境。基于飞机运动模型建立了飞行解算模块,有效反映飞机的飞行
品质。实验表明,该仿真系统具有良好的可操纵性和逼真度,仿真系统通过键盘控制指令完成飞行动作,系统通用性和可扩展性较好、制作高效。
【期刊名称】《电子设计工程》
【年(卷),期】2016(024)005
【总页数】4页(P47-50)
数据可视化大屏设计【关键词】虚拟现实;运动模型;Unity3D;飞行仿真
【作 者】郭聪;王守尊
【作者单位】海军工程大学 机械工程系,湖北 武汉 430033;海军工程大学 机械工程系,湖北 武汉 430033
【正文语种】中 文
【中图分类】TP391.9
飞行仿真系统是设在地面能模拟飞行器空中飞行状态的装置,它也是典型的人在回路中的仿真系统,人在回路中的仿真是操作人员在系统回路中进行操纵的仿真[1]。由于在真实飞机上训练驾驶员耗资大,又受到空域场地的限制,而且有些特殊情况还难以在飞机上实现,多年来人们都采用飞行仿真系统(飞行模拟器)来训练飞行员[2]。目前飞行可视化系统的程序开发方法大致可分为两类:基于OpenGL/Direct3-D三维应用程序接口的开发和基于MultigenCreator/VEGA等仿真平台的开发。应用OpenGL/Direct3在开发大型三维虚拟场景时,从建立图形到控制程序开发比较繁琐,工作量和难度都比较大、对开发者的编程技能要求较高。MultigenCreator/ VEGA以其效率高、易用的优点,被目前多数系统所采用。但这种方式缺乏灵活性,而且对硬件性能要求高,多在图形工作站或高性能PC机上使用。目前飞行仿真系统视景显示的手段主要为多通道拼接显示、电脑显示器显示和平面投影显示。多通道拼接显示需要专业的投影设备,硬件配置要求高,不易于大批量配备、电脑和普通平面投影显示则存在视野狭窄沉、浸感不强的问题。笔者提出使用Unity3D进行系统开发,结合Oculus Rift头带式显示器和电脑显示器作为显示设备建立飞行可视化仿真系统。Unity3D在开发效率上采用组件式开发的方法取代纯代码开发,仿真步骤大大简化,降低了开发周期和难度,在开发成本上采用低端硬件亦可流畅运行广阔的场景[3]。在显示方法上,Oculus
Rift头带式显示器为使用者提供虚拟现实体验,使用者所见即整个世界,几乎没有屏幕感,且成本相对于多通道拼接显示方法更加低廉,易于大量配置。
1.1 系统需求
根据前面的定义,飞行可视化仿真系统必须具有以下功能:1)跟踪飞机的位置并接收操作员控制命令的输入;2)图形模拟飞行的各种天气、云、机场等;3)实时、保证帧率恒定。
1.2 系统软硬件基础
系统的开发平台为Unity3D,该平台是由Unity Technologies公司开发的一个可轻松创建三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型开发工具,程序编辑支持脚本C#、Javascript、Boo语言[4]。系统的显示设备为Oculus Rift头带式显示器,该设备对Unity3D引擎提供官方支持,本显示器根据双目视差原理在两个目镜上输出不同的图像,使大脑在综合两幅图像信息后生成具有深度感的三维景象,且具有陀螺仪等惯性传感器,可以随使用者头部转动变换视角,沉浸感极强,双眼的视觉合并之后拥有1 280*800的分辨率。
2.1 系统总体方案
飞行可视化仿真系统由人机交互模块、飞行解模块、视景仿真模块等6部分组成。人机交互模块包括键盘和头盔显示器,操作员可根据头盔显示器输出的视景了解飞机的飞行状态,并通过键盘控制飞机姿态的变化。飞行解算模块主要完成对飞机动力装置、气动性能的解算,实时提供飞行状态数据。视景仿真模块负责生成操作员视点观看到的实时图像。
系统运行时,操作员通过外部设备键盘进行数据的输入,飞行解算模块对输入的信息进行解算,改变飞机的飞行姿态、位置等飞行参数,通过头带式显示器进行视景输出,实现人机交互。
2.2 飞行解算模块
飞行解算模块,根据外部操纵和环境信息,利用飞机运动等等一系列数学模型,对飞机空气动力特性和运动规律进行仿真,实时得到飞机的姿态状态以及飞行参数,为了方便建立飞机的运动数学模型,又使其具有一定的通用性,做如下假设:
1)飞机是刚体,在其运动过程中质量保持不变;
2)视地球表面为平面,不计地球自转与公转的影响;
3)重力加速度不随飞行高度的变化而变化;
4)机体坐标系的xoz平面为飞机几何形状和质量的对称平面,惯性积Ixy=Iyx。
飞机在空中的一般运动可以拆解为质心的空间平动和绕质心的定点转动两部分。根据牛顿第二定律并利用上述假设,得到飞机动力学方程组如下[5]:
其中FX、FY、FZ,L、M、N,u、v、w,p、q、r分别为机体外力和,机体和外力矩,机体质心速度,机体旋转角速度在机体坐标系3个坐标轴上的分量。
为求解飞机相对于地面固定坐标系的方位和飞行轨迹,需要利用坐标转换关系补充运动学方程,即:
式中:ψ、θ、φ分别为偏航角、俯仰角、滚转角,分别为地面坐标轴系下的线速度。
在使用公式(4)当θ=-π/2或θ=π/2时,这组公式中出现了奇点,无法进行计算欧拉角,所以采用4元数代替欧拉角以避免上述问题,设4个4元参数为:
可以得到4元数与欧拉角的关系如下:
通过方程(1)(2)应用四阶经典龙格库塔法,得到沿飞机体坐标系下的线速度u,v,w和角速度p,q,r。再由(3)(4)将数据转换为地面坐标系下的和飞机的偏航角、俯仰角、滚转角,由此让飞机在视景中实现飞行。
2.3 视景仿真模块
视景仿真模块中飞机模型和机场模型都由3DMAX创建,建立好坐标系后,将模型导出为Unity3D官方推荐的FBX格式,导入到 Unity3D场景中,为了在保持模型的尺寸,在导入后应将模型尺寸按比例放大100倍,并将模型材质和贴图重新设置。视景仿真模块中的地面环境、光源、天空盒,摄像机等都是通过Unity3D实现的。利用Unity3D内置的Terrain地形编辑器进行地形、树木、草坪等机场的周围环境和水面的创建。在创建的场景中加平行光(Directional Light)模拟太阳光,在场景中建立两个摄像机,获取了摄像机对象后,去调用”active”引用,通过”true”和”fouse”来激活和关闭显示摄像机,他们分别用来显示机体姿态和机舱内的视景,在渲染设置界面中的“Skybox Material”设置天空盒的材质,然后将其应用在场景中,解决多个摄像机进行视角切换后出现贴图不一致的问题[6]。
控制飞机飞行时,系统先通过控制器输入键盘事件并将具体操作信息发送给飞行解算模块,然后飞行解算模块经过一系列的逻辑计算,得到飞机的姿态和位置并结合碰撞检测模块、特殊效果模块、声音模块,将相关信息发送给视景仿真模块,最后根据摄像机的视角进行显示。图3给出了飞行视景仿真实现流程。
本仿真系统在Windows7环境下运行,采用C#语言和unity3d引擎开发。测试环境:PC计算机一台,Intel Xeon CPU E56202.40 GHz 2.40 GHz CPU,4.00 G内存,NVIDIA Quadro显卡,显示器分辨率1 680*1 050,外接Oculus Rift头带式显示器。在上述配置环境下,对设计的飞行可视化仿真系统进行测试。本系统模拟机场、岛屿、海面,以及拟云、雾、白天夜晚等场景真实,飞行效果逼真,提供了座舱内和飞机姿态两个观察视角,视点可跟随头部的运动而改变,满足了系统在真实感和沉浸感方面的要求。实验表明,能够在保证实时性要求的前提下达到预期的视觉效果。
文中利用Unity3D引擎建立了飞行可视化仿真系统[7-8],并通过Oculus Rift头带式显示器实现了具有深度的显示。本文基于飞机六自由度运动模型建立的飞行解算模块可有效反映目标飞行器的基本飞行品质,视景仿真方面效果逼真仿真度高,系统与飞行员之间交互性好,能够直观地带给飞行员身临其境的效果,视景切换顺畅,具有较好的视景仿真效果。
【相关文献】
[1]黄安祥.现代军机先进仿真技术与工程设计[M].北京:国防工业出版社,2006.
[2]阿勒顿(Allerton,D.)著;刘兴科译.飞行仿真原理[M].北京:电子工业出版社,2013.
[3]郭芮.基于Unity3D的加油车虚拟训练系统设计[J].机械设计,2014,31(3):84-87.
[4]倪乐波.Unity3D产品虚拟展示技术的研究与应用[J].数字技术与应用,2010(9):54-55.
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论