基于Unity3D的无人机蜂群作战可视化研究
2020-02-14王婧羽胡晓阳
王婧羽 胡晓阳
摘 要:对于目前虚拟现实技术在军事领域中的广泛应用,通过使用三维交互程序开发引擎Unity3D在计算机平台上开发了无人机蜂群作战场景可视化的仿真应用,实现了该作战过程中逼真的效果。结果表明该系统能增加分析人员的真实感,在一定程度上降低了实验成本。
关键词:虚拟现实;Unity3D;无人机;蜂群作战;可视化
中图分类号:U675.79 文献标志码:A 文章编号:2095-2945(2020)02-0013-03
Abstract: For the wide application of virtual reality technology in the military field, the simulation application of UAV swarm combat scene visualization is developed on the computer platform by using the three-dimensional interactive program development engine Unity3D, and the realistic effect in the combat process is realized. The results show that the system can increase the reality of analysts and reduce the experimental cost to a certain extent.
Keywords: virtual reality; Unity3D; UAV; bee swarm warfare; visualization
随着现代科学技术的发展,控制技术、计算机技术、电子技术、航空技术等一系列高新技术出现了日新月异的变化,无人机应运而生,并逐步作为一种现代化的武器装备应用于现代高技术局部战争中[1],面对日益多样化的复杂任务和高度复杂的战场环境,无人机蜂群作战也逐渐从理论变为了现实。
Unity3D游戏引擎是近几年非常流行的一个3D游戏开发引擎。该软件可以实现三维场景的搭建,并进行场景的交互[2]。因此,提出Unity3D为主要开发工具的无人机蜂群作战场景可视化的设计思路。
为实现一定逼真度并兼顾系统性能要求,可以从以下两个方面加以考虑:(1)模型在具备一定逼真度基础上,精细程度不能太高,可以采用把场景中的各实体由简化处理的模型来模拟。(2)选择格式匹配的纹理贴图及合适的纹理映射方式,提高实体和战场环境仿真的逼真度。
为实现战斗场景可视化,利用3DMax建立飞机、无人机和战场地形模型;利用Unity3D搭建模型;利用C#编程开发出战斗场景可视化系统。
1 仿真工具
目前三维交互建模工具较多,其中3DMax是市场上较为主流的三维建模、动画及渲染解决方案之一,被广泛应用在视觉效果、角色动画及游戏开发等的领域内[3]。
Unity实时开发平台,打造面向游戏、汽车、交通运输、电影、动画、建筑、工程等领域的3D、2D VR和AR可视化效果,是一个全面整合的专业游戏引擎。其编辑器可运行在Windows、Linux、Mac OS X下,可发布项目至Windows、Mac、Wii、iPhone、WebGL、Windows phone 8和Android平台[4]。也可以利用Unity web player插件发布网页游戏,支持Mac和Windows的网页浏览。基于这种跨平台开发的思考,选用该工具作为作战场景模拟再现的主要开发工具。
2 创建场景
2.1 图片处理
搜集有三视图的飞机、无人机和坦克模型图,在Photoshop里进行处理,用钢笔工具修剪图片的三视图,按一定方向摆放三视图后并存储,接着使用Photoshop里的锐化工具增加模型纹理使之更加清晰便于后期处理。
整理素材,在3ds Max中导入三视图,搭建模型,再利用占展UV贴图给飞机模型贴图并渲染,导出文件。
2.2 搭建地形模型
设置地形系统,Unity3D内置了一套强大的山体系统(也叫地形系统)。在Unity3D中创建一个新的场景,通过地形属性面板画出山体形状并调整山体大小,选择贴图纹理添加地形贴图后绘制山体贴图。使用画树和画草工具为地形增色[5]。设置天空盒纹理,添加合适的灯光,完成地形创建如图1所示。
2.3 搭建飞机模型
将从3ds Max中导出的飞机模型文件拖拽到Unity3D的Project面板中,然后将飞机模型拖拽到建好的场景中,命名为Plane,调整模型尺寸。飞机初始状态为略倾斜,并且在地面等待起飞,因此将飞机设定一定角度旋转,完成后的飞机模型如图2所示。
2.4 搭建无人机模型
将从3ds Max中导出的无人机模型文件拖拽到Unity3D的Project面板中,然后将无人机模型拖拽到建好的场景中,命名为Drone,调整模型尺寸,所建无人机模型将如图3所示。
由于无人机起初与飞机同步运动,体现飞机装载着无人机,因此将无人机与飞机建立父子关系,飞机为父物体,无人机为子物体。
为达到比较真实的效果,在无人机的旋翼上添加Animation組件,录制旋翼旋转动画xuanyi,添加到Animation组件中如图4所示,提供无人机旋翼动画的功能。
2.5 搭建坦克模型
与搭建其他模型相同步骤,将坦克模型加到场景中作为无人机群攻击的目标点,完成后的模型如图5所示。
3 实现过程
3.1 飞机飞行控制
选择plane对象,添加Script组件,编写c#代码,脚本需求包括以下四方面:(1)飞机以固定速度起飞;(2)飞机以设定加速度做加速向前运动到速度为指定速度;(3)飞机到达特定位置时,通过外界输入空格命令,投放无人机;(4)投放无人机后飞机回到起飞点。
飞机飞行控制基本实现思路:定义float型数据飞机的上升速度、向前飞的实际速度、加速度与飞行时间,飞机以指定上升速度上升同时旋转回正常飞行角度,上升指定时间后飞机做匀加速运动,到指定速度后匀速前进,飞行过程利用transform.Translate函数实现;此时外界可以输入命令,飞机通过Input.GetKey函数获取外界命令,之后飞机通过使用transform.DetachChildren函数解除与无人机的父子关系,达到投放无人机的目的。投放无人机后,飞机飞回原地。
将上述逻辑通过脚本代码实现,即飞机模型所挂在的Script脚本组件的内容。
3.2 无人机蜂群控制
3.2.1 无人机个体行为控制
模拟无人机蜂群作战,要先给每个无人机赋予各自的行为模式:(1)避免无人机之间相互碰撞——分离;(2)向目标方向移动——队列;(3)向无人机的领航者位置移
动——聚集[6]。将无人机模型预制,复制多个预制体,构成无人机群,在无人机群的个体上挂载Script组件,控制无人机蜂群飞行过程。
代码实现思路:定义移动速度、旋转速度、随机力的频率及大小、向心力、分离力、规避力的大小、追随速度及半径等个体属性;由平均位置来计算无人机的聚合,判断规避半径与个体间的距离来改变推力,同时还要与领航无人机保持一定的距离;计算与无人机领航者的相对速度后调整速度由领航者带领飞向目标点;为产生随机力,还需定义一个方法IEnumerator UpdateRandom,通过随机返回单位球体类一点坐标来更新随机力,依据随机频率在一定时间分为类变化随机力。
将此思路编为c#代码命名为Flock,挂在单个无人机上,控制每个无人机个体行为,Flock组件视图如图6所示。
3.2.2 无人机领航者控制
创建无人机领航者及群体控制器,这个类会决定飞行的方向,引领其他无人机向目标飞行。选择Drone对象,添加Script脚本组件后编写代码。
定义偏移大小、范围、领航无人机速度、加速度、对目标位置的误差值等属性,定义目标位置,用Transform[]target字符串来实现。开始时,飞机接收命令与无人机解除父子关系,无人机同样接收命令,通过if语句与Transform.parent函数判断是否与飞机解除了父子关系。当确定已解除父子关系后,无人机寻找并飞向目标。为使无人机可以搜索指定目标,需定义寻找目标的方法,命名为Move To,实现思路为:首先使用字符串string类型定义目标,定义float类型目标数值;然后通过transform.LookAt函数使无人机朝向目标点,同样通过transform.Translate函数使无人机移动,最后通过if语句判断无人机是否到达指定目标。
将上述逻辑编辑成c#脚本,命名为FlockController,挂在领航无人机对象上实现需求,组件视图如图7所示。
4 运行验证
无人机蜂群作战场景可视化运行截图如图8所示。
5 结束语
Unity3D引擎在作战场景可视化系统开发上的具有效率高、逼真度和可信度高、能满足系统仿真实时性等明显优势。直接运用编辑器自带的功能接口和组件就能够快速得到模拟作战过程所需要的无人机间碰撞检测等复杂功能。目前其在无人机蜂群作战模拟方面的应用瓶颈在于多无人机之间的通信处理问题。
参考文献:
[1]沈林成,牛轶峰,朱华勇.多无人机自主协同控制理论与方法[M].北京:国防工业出版社,2013:1.
[2]仇乐.基于Unity3D的船舶航迹三维显示系统[J].船舶科学技术,2019(41):145.
[3]李志,李舰,付玉峻.基于Unity3D的某型地空导弹战斗场景可视化研究[J].电脑编程技巧与维护,2016(03):71.
[4]姜子奇.基于Unity3D的矿山虚拟采矿技术研究[J].矿业工程,2019(17):60.
[5]罗培羽.Unity3D網络游戏实战[M].北京:机械工业出版社,2016:10-12.
[6]王洪源,陈慕羿,华宇宁,等.Unity3D人工智能编程精粹[M].北京:清华大学出版社,2014:5.