【装备理论与装备技术】
当前,某型导弹的训练主要存在以下问题:一是实装配发数量有限,保障与训练矛盾突出;二是现有训练设备/系统基本都以单人/单机形式展开,通用性差,训练效果不好。考虑到运输与安全等问题,某型导弹各部件分装在不同包装箱内,使用时,需要对各部件进行装配对接。由于导弹装配对接技术要求高,需要多人协同完成,因此,开发多人协作式模拟训练系统对提高训练效率和导弹的保障能力具有重要意义。随着计算机仿真和网络技术的发展,多人协作式模拟训练系统在雷达装备[1]、坦克战车[2]、防空导弹[3]等作战训练中研究和应用相对较多,但在弹药训练上研究应用较少。
分布式虚拟现实(DVR)是传统虚拟现实技术的多用户发展,每个用户在一个虚拟环境中,通过计算机网络与其他用户进行交互[4]。本文针对某型导弹的技术保障过程,基于DVR思想,采用Virtools虚拟现实开发工具,设计了某型导弹的多人协作模拟训练系统,可实现多人协同进行导弹启封、安装、对接和检测等过程的训练,具有训练周期短、效率高、安全性高、费用低等明显优势[5]。
系统的开发以教学训练实际为依据,设定对应的教学与训练模式,通过计算机界面展示给操作人员,帮助人员提高操作的规范性和配合程度。根据该型导弹的保障特点和训练需求,得出训练系统应具有以下功能:1)教学辅助功能,辅助教员进行装备的理论讲解,可进行导弹结构原理和保障流程的演示。2)部件拆装训练。可根据训练进度,具有具有单步提示和多步连续操作模式;3)保障流程训练,通过训练场景的切换和虚拟装备的交互作用,实现导弹全流程的保障作业。4)多人员协同功能,即实现多个用户同时在一个场景中进行作业。5)数据管理和成绩评估功能。用于管理系统数据和人员操作信息,根据训练数据,对操作人员进行成绩的评定[6]。图1为系统的功能结构框图。
图1 系统功能模块结构框图
Virtools作为虚拟现实的一种开发工具,具有模块化设计优势,开发人员只需拖曳相应的行为模块(Building Blocks,简称BB)就可以建构复杂的交互应用程序,另外,开发人员还可运用Virtools的VSL或SDK编写程序代码,设计特定的BB。Virtools Dev作为Virtools最常用的开发平台,本身不能建模,但导入3DS MAX等建立的模型,通过环境设计,可实现模型与环境的交互[4]。Virtools Multuser Server(多用户服务器)通过网络连线,在标准的TCP/IP网络协议上进行3D多人连线的交互协同。将Virtools开发的文档与Multiuser Server进行整合,即可实现访问资料库、多人连线及数据串流等功能[7]。3ds Max是基于PC机的三维动画渲染和制作软件,广泛应用于建筑设计、三维动画、多媒体辅助教学及工程可视化等领域。Photoshop(PS)是一种图像处理软件,可以有效地进行图片编辑工作。
系统采用C/S架构,即在一个局域网中,设置一台系统服务器,用于对整个训练资源进行管理,主要包括场景管理、协同交互、训练任务管理、用户管理和网络通信等模块,在系统消息控制下进行模块间的数据通信,并通过与数据库层的通信实现数据关联。客户端访问服务器资源,两者通过网络通信模块进行信息交互[7-9]。系统总体架构如图2所示。
图2 多人模拟训练系统总体架构框图
在系统设计时,首先需要对导弹及其保障装备、操作工具和虚拟角色等进行三维建模,在建模时要考虑到真实感,使其尽可能接近实体的外观形态,并具有交互功能。由于Virtools本身没有建模功能,所以虚拟模型通过3ds Max开发实现,采用PS对二维形态进行贴图处理,增强模型真实感,再利用Exporter插件保存成NMO格式,储存到模型数据库中,以备运行程序调用[10]。
系统运行过程中存在着大量的信息交互,若将这些信息直接放置在程序中,无疑会使程序的规模增大,使系统的实时性变差,同时也不便于程序的升级扩展,所以利用数据库对这些信息进行统一管理,可以方便数据的调用,提高仿真效率。设计中建立了操作工具数据库、虚拟模型数据库和虚拟角色及动作管理数据库,分别用于操作工具、装备和人员模型的管理;建立了任务库和规则库,储存训练模式信息及对应的操作规则;建立了用户信息数据库,用于记录操作人员的操作数据,并利用这些数据进行训练成绩数据评定。Virtools在运行中,通过BB实现与各数据库间的实时通信,可以直接调用各数据库中的信息,并将产生的新数据重新保存到相应数据库中,实现信息的实时交互。
Virtools的交互式过程设计是通过对行为交互模块BB进行调用、编程来实现。导弹模拟训练操作涉及多个零部件,其运动各不相同,但总体可归纳为平移、旋转、鼠标移动对象等操作,Virtools提供了“Translate”、“Rotate”、“Move To”等BB,控制对应零部件和弹体运动。另外,通过设置摄像机增加了视角控制,实现多角度的浏览,将每个摄像机的视点指向特定的参考实体,利用“Set As Active Camera”模块切换各个固定的视角。
针对多用户协同操作的交互设计,建立了多人连线协作模型,如图3所示。先通过设置Connect To Server BB连接服务器,建立网络连接并获得Connection ID;再利用Get Sessions List BB获取服务器上的会话列表,该BB的Session Type必须和服务器上的设置相同,若找到其他的Session时,就会使用Join Session加入会话;这时Object Copy BB会从虚拟角色库中复制创建一个本机操作角色,利用Create Distributed Object BB将角色信息注册在服务器Server中,然后通过控制摄像的视角控制虚拟角色的移动;其他用户通过Distributed Object Created收到对方角色注册信息,并在本机上复制一个对方角色,利用Bind Distributed Object BB把复制的角色和Distributed Object绑定,按照Manage Distributed Classes BB所设定要传递的数据进行数据的传送,实现多用户协作交互功能。
图3 多人连线协作流程框图
为避免在虚拟训练环境下物体间发生穿越,需要进行碰撞检测设置。Virtools中Collision Manager(碰撞管理器)用于对运行中的碰撞进行设置和记录[5-6]。由于运行过程中三维实体具有不同的属性,在设置时,可以将属性类似的归为一个Group组,然后根据物体碰撞特点选择不同的碰撞方式。比如,可以根据运动模式将实体分为固定和运动两类,分别利用Fixed Obstacle和Moving Obstacle进行碰撞设置,并利用Collision Detection BB对碰撞进行检测。
用Virtools中提供的3ds Max插件导入后缀名为.nmo的虚拟模型文件。为使增强三维环境真实感,需要对Virtools运行中的Light、Object、视角控制和Frame等要素进行设置[5,10]。另外,在导入三维模型时,要进行合适的比例缩放,以使其尽量符合现实生活中的比例大小。
训练过程中经常需要利用转运车对导弹进行位置转移,一般由2~3人配合操作,下面以实现双人合作推动转运车为例进行协同功能实现。
首先通过部分中介物状态(如场景中某物体的某点坐标)确定场景中的虚拟人员是否处于适当位置,利用Network Send Message BB发送消息通知双方,当人员都处于适当位置时,用Network Wait Message BB 和 Wait For All BB判断并执行下一模块。使用Proximity BB判断人员是否靠近转运车,当两者距离小于设置值时,就会激活Proximity BB执行下一步。Key Event BB用于判断操作人员按键,当按下推动键时,执行Send Message BB,给虚拟人员发送一个名为“push”的消息,人员收到“push”消息后就会在虚拟角色动作库中调用“推”的动作,Threshold BB 和 OP BB模块判断虚拟人员“推”的方向。上述功能脚本流程如图4所示。
图4 虚拟人员位置及动作判断控制脚本流程示意图
转运车在移动过程中,需要判断移动位置,由于在地面二维平面移动,所以用OP取转运车在地板上的坐标。当坐标值小于Test BB中设定值时,执行True输出,导弹会继续移动,同时两人也跟着移动;当坐标值等于设定值时,执行False输出,转运车移动到位,实现效果如图5所示。
图5 推导弹转运车实现效果图
本文根据某型导弹的训练实际,以Virtools为开发平台,结合Multiuser Server和内置的各类行为控制模块,设计了该型导弹模拟训练系统,实现了多人协同训练的目的。采用模块化设计和数据库技术,使系统具有较强的通用性、可移植型和可扩展性。建立了多人连线协作模型,探讨了协作的实现形式,初步实现了系统部分功能。进一步的工作是通过丰富虚拟模型库,增加导弹和设备型号,实现多型导弹模拟训练。另外,可利用网页技术,将C/S架构逐步升级为B/S(浏览器/服务器)架构,实现网上远程训练。
[1] 朱元昌,邸彦强,全厚德,等.通用雷达装备模拟训练系统及其关键技术研究[J].系统仿真学报,2005,17(11):2633-2637.
[2] 杨宏军,韩志军,孙少斌,等.坦克分队战术综合演练仿真系统[J].计算机仿真,2004(3):10-12,15.
[3] 柳鹏,杨锁昌,郑思龙,等.一种防空导弹全任务维修训练模拟器设计[J].火力与指挥控制,2017,42(6):119-123.
[4] 周良.利用Virtools设计开发基于分布式VR技术的教学游戏[D].上海:华东师范大学,2008.
[5] 杨清文,房施东,杨光,等.基于Virtools的某火箭炮技术检查训练仿真研究[J].计算机测量与控制,2012,20(2):407-410.
[6] 王强,宋建社,曹继平,等.复杂装备虚拟维修训练技术[J].兵工自动化,2009,28(12):1-3.
[7] 龙艳军,欧阳建权.基于Virtools的多人协作网络实训教学平台设计[J].计算机与现代化,2013(7):1-4.
[8] 徐晓刚,欧立铭,邵承永.单人/多人虚拟维修训练开发平台[J].兵工学报,2012,33(7):886-891.
[9] 梅朝,舒涛,宋涛,等.武器装备虚拟维修训练系统设计[J].火力与指挥控制,2016,41(9):151-155.
[10] 矫永康,于进勇,李小民.无人机虚拟维修训练关键技术研究[J].测控技术,2015,34(3):116-119.
Citation format:GUO Han, WANG Qian, ZHOU Hongyang.Multi-Person Cooperative Missile Simulation Training System Based on Virtools[J].Journal of Ordnance Equipment Engineering,2020,41(1):83-86.