装备沉浸式虚拟维修训练系统通用开发方法*
2019-03-12杨兆坤李星新
杨兆坤,李星新
(陆军工程大学石家庄校区 装备指挥与管理系,河北 石家庄 050003)
0 引言
作为装备全寿命管理的重要环节,装备维修训练的地位与作用越来越明显。随着信息化的发展,装备呈现出功能复杂、结构庞大、造价昂贵、技术更新换代快等特点。虚拟维修训练自20世纪90年代初应用于实际装备[1],经历多年发展,其相比传统维修训练具有安全性好、承训量大、沉浸感高、趣味性强、不受时间空间限制、降低训练费用等明显优势,可以有效弥补传统维修训练手段的不足,同时提高自主维修训练能力,并促进维修保障能力的快速形成[2]。
自20世纪90年代美国成功实现了哈勃望远境的虚拟维修训练,使虚拟维修训练获得了广泛的关注,成为研究应用的热点[1]。1998年H.Ishii等人对原有虚拟维修训练系统进行了改进,率先将Petri网引入到虚拟维修训练过程控制中来,这一思路被广泛借鉴和引用[3]。
90年代初期,虚拟现实技术一经引入国内,应用重点就集中在虚拟训练和虚拟维修训练。军械工程学院郝建平、李星新等实现了对维修过程的仿真,并形成了沉浸式、桌面式等类型的虚拟维修训练系统[4-7]。苏群星等设计的大型复杂装备虚拟维修训练系统深入研究并提供了基于维修知识描述网的维修知识描述方法和沉浸式虚拟维修训练系统仿真控制流程[8-9]。此外,国内其他研究机构也进行了对不同型号装备的虚拟维修训练系统的开发[10-12]。
随着技术发展,虚拟现实引擎逐渐可以承载更复杂的虚拟环境,有效提升虚拟维修训练的沉浸感、交互效果[13]。此外,开发系统的通用化、标准化也是虚拟维修训练系统发展的必然趋势[14]。
基于上述需求,陆军工程大学石家庄校区于2009年发布“美腾装备虚拟维修训练通用平台”(下文简称“美腾平台”),并持续完善修改。“美腾平台”具有训练数据开发、训练实施与管理两大核心功能,由美腾数据开发系统和美腾虚拟维修训练系统组成。美腾数据开发系统支持装备虚拟维修训练数据的设计、开发、管理、发布。美腾虚拟维修训练系统提供对机械、电子、液压等类型复杂装备的构造原理、操作使用、分解结合、检查调整、故障诊断等5类训练内容的学习、训练与考核。“美腾平台”可支持桌面式、沉浸式、半实物、触摸屏式等多种样式的虚拟维修训练仿真,可支持多种接口。系统结构设计如图1所示。
本文提出一种基于“美腾平台”的沉浸式虚拟维修训练系统通用开发方法,并具体结合HTC Vive设备实现沉浸交互。该方法首先利用3ds Max对装备构建三维模型,然后利用Unity 3D实现人机交互并制作成动画效果,使用“美腾装备虚拟维修仿真系统”建立基本维修科目、形成训练流程,最后使用“美腾协同式装备虚拟维修训练通用平台”开发并实现沉浸式虚拟维修训练系统。
1 基于3ds Max的装备模型建立
相比其他建模软件,3ds Max创建的模型占用空间小,处理速度快,建立的模型文件具有良好的通用性。故本文选用3ds Max软件作为建立装备三维模型的工具软件。
在沉浸式虚拟维修训练系统中,为保证参训人员获得真实的感受并提高训练效果,模型的构建应尽量真实。在模型构建的过程中对于虚拟零部件的尺寸、空间位置形态、装配关系、颜色等应与实际零部件相符。考虑到装备本身的复杂性,同时为了降低内存运行负担、提高仿真模拟效率,要简化零部件中与虚拟维修训练科目关联不大的建模标准。例如不构建螺栓表面的螺纹模型。此外,完成对维修工具的建模,包括徒手、螺丝刀、扳手、钳子等。
图1 系统结构设计Fig.1 System structure design
1.1 建立基本模型
通过创建标准基本体、扩展基本体等构建装备的基本外形。此时应考虑到各零部件组成之间的装配关系、零部件的尺寸大小等实际情况。应按照装配关系将装备模型按照层级由小到大构建,如“燃油箱-燃油系统-发动机-动力系统”。对各模型命名时应按照实际情况加以区分,避免出现重复名,如对于同型号的螺栓编号。
1.2 编辑模型材质
打开材质编辑器,对材质进行编辑并应用于指定的对象。具体材质应与实际情况相符,包含物理性质、特殊效果、变形器参数、明暗器基本参数、Blinn基本参数等。
贴图处理是为了表现模型对象的细节,同时不增加模型的复杂度。材质的贴图处理可以使模型的表现更加精细,呈现出趋于真实的纹理效果。贴图过程中应注意贴图及多边形之间像素值的适应性,避免出现锯齿现象和像素抖动。
1.3 模型优化
模型优化主要是指减少模型的复杂度,降低计算机的运算量。去除因模型穿插或接触而看不到的面,例如焊接在一起的2个长方体,接触的四边形面可以去除。多段曲线可以利用挤出修改器进行拆分加点、自动平滑。利用MultrRes修改器,调整顶点百分比和具体的顶点数,达到减少模型面数的效果。
利用贴图烘焙呈现出模型的光影效果可以有效减少计算机运算量。具体是指将光照信息渲染成贴图,再把带有光照信息的贴图应用到场景中。贴图烘焙节省了三维场景中对于光线的计算时间,在不牺牲渲染效果的同时,大大地提高仿真效率。
1.4 模型导出
将在3ds Max中构建的三维模型导出为*.FBX格式的文件,并选择默认设置,作为下一步交互设计的素材。
2 基于Unity 3D的人机交互实现
Unity 3D具有良好的3D渲染效果,可实现跨平台开发,可集合资源种类丰富。所以本文选取Unity 3D作为沉浸式虚拟训练系统的开发引擎[15]。
2.1 模型导入
将在3ds Max中建立的模型文件导入到Unity 3D的Project栏下的Assets中,模型就可以作为素材出现在场景构建中。将Assets中的素材直接拖拽到Scene视图中,可以实现场景中的模型建立。
2.2 结合HTC Vive的交互实现
结合HTC Vive设备的交互通过Steam VR插件实现。将该插件创建在Project栏中,对该部分进行编写可以实现控制手柄等功能。
2.2.1 制作VR Camera
将Prefabs中的CameraRig拖拽到场景中,即可作为VR头戴式显示器的摄像机使用。在这个预制体中有3个部分,分别对应设备的左右手柄和头戴设备,2个手柄上分别有2个Model,挂载了Render Model脚本,主要用来渲染模型。头部设备分为eye和ears,分别对应头戴显示器的视觉设备和听觉设备。其中Game View脚本用来显示头部,Tracked Object脚本用来跟踪位置。
在摄像机上添加一个脚本,点击Expand按钮,将摄像机分为Origin(位置)、Head(头部)、Eye(眼睛)、Ears(耳朵)4个部分。其中SteamVR _ControllerManager脚本和SteamVR _TrackedObject脚本主要用于设置和检测Vive手柄。在Origin上添加2个子对象代表2个Vive手柄,增加SteamVR_TrackedObject脚本。在Origin上添加SteamVR_ControllerManager脚本,设置左右手柄,完成手柄的集成。
2.2.2 实现手柄控制
Vive手柄由菜单键(Application)、触摸板(Touchpad)、系统键/电源键(System)、扳机键(Trigger)、侧柄键(Grip Button)构成。获取某个按键的状态通过以下代码实现:
var device=SteamVR_Controller.Input(unit);
device.GetTouchDown (SteamVR _ Controller.ButtonMask)
在左右手柄的对象下分别创建一个子对象,子对象上添加SteamVR_RenderModel脚本,根据需求设计Shader,实现虚拟场景内的手柄模型与现实世界中的手柄位置同步。
2.2.3 工具箱的交互
在虚拟环境中创建工具箱,工具箱中加入各工具的实体模型。当按下手柄上的制定按键时,工具箱作为整体出现在头戴显示器视线的正前方,且空间姿态保持水平。在虚拟环境中参训人员用手柄选取某一工具后,工具箱中的该工具模型被取走,工具箱在虚拟场景中消失。
2.3 项目生成
在实现虚拟环境中的交互后,将建立的项目保存为*.unity格式的文件,作为创建训练科目的素材。
3 基于“美腾虚拟维修训练通用平台”的开发
3.1 建立训练科目
在实现虚拟维修训练系统时,应首先建立基本的训练科目,此时选择“美腾装备虚拟维修仿真系统”进行开发。
3.1.1 建立项目
在“美腾装备虚拟维修仿真系统”中选择创建新的项目,需要确定项目名称,同时将Unity 3D生成的*.unity文件导入到“三维场景文件”栏中,完成新项目的建立。如“某型车辆发动机的修理”。
3.1.2 基于项目工程树的操作流程建立
新建项目涉及到具体操作流程,其中要选择仿真内容类型,分为维修过程仿真和故障诊断仿真;选择仿真内容涉及模式,分为流程图式与泳道图式。如“拆卸发动机”,针对维修过程仿真,具体虚拟维修流程选择流程图式表现。
(1) 项目的准备
项目的准备由场景准备、工具准备、设备准备。场景准备是指具体选择的虚拟场景,一般在导入*.unity格式的文件后不需要再进行其他的场景准备。工具准备是指选择虚拟维修过程中需要用到的工具,如徒手、螺丝刀、钳子、扳手等,相应的工具出现在虚拟环境中的工具箱内。设备准备是指选择虚拟维修过程中需要用到的设备,如千斤顶、发电机等。
(2) 维修流程信息编辑
在操作流程建立过程中,必须建立每个步骤的基本信息、提示信息和正确反馈信息,可以选择性建立错误反馈信息、帮助信息和资料信息。
基本信息的编辑。首先确定步骤的编号、步骤的名称及操作人员。然后选择具体交互方式,分为单击样机和回答问题。选择交互类型,具体有操作、拆卸、装配、BIT检测、更换、修理、清洗、擦拭等8种类型。最后确定操作对象。例如对发动机的更换流程建立,操作流程的第5步为“维修人员翻转驾驶室”,交互方式为手柄点击虚拟环境中的驾驶室,交互类型为操作,操作对象为驾驶室。针对上述操作的交互界面如图2所示。
图2 编辑基本信息Fig.2 Editing the basic information
提示信息的建立。提示信息分为动画类、文字类和文件类,用以提示参训人员下一步的操作。建立动画类提示信息要明确三维场景、对象名称、动画名称等信息。例如针对翻转驾驶室这一步骤的动画类提示信息建立,将项目准备阶段的*.unity文件拖拽到“三维场景”栏中,对象为驾驶室,动画名称为“翻转驾驶室动画提示”。
设置正确反馈信息。根据实际情况建立反馈信息。如“维修人员翻转驾驶室”,当参训人员正确的操作后,在虚拟环境中驾驶室被翻转。
(3) 生成维修流程
在正确编辑以上信息后,按照操作规范建立下一步骤的信息编辑,形成项目的虚拟操作流程。由系统生成的维修流程如图3所示。
图3 生成虚拟维修操作流程Fig.3 Generating the operation flow of virtual maintenance
3.1.3 文件的发布与保存
在“美腾装备虚拟维修仿真系统”中完成对该训练科目的编辑后,可以选择发布为*.proj格式的文件,可以直接通过美腾平台打开该文件,查看该训练科目的动画效果。也可以选择生成*.swn格式的压缩包,用于协同式虚拟维修训练平台的开发,用于实现虚拟维修训练系统。
3.2 训练系统实现
实现沉浸式虚拟维修训练系统时,需要通过“美腾协同式装备虚拟维修训练通用平台”开发系统对文中3.1建立的训练科目进行编辑。
3.2.1 创建并连接服务器
构建服务器,当维修任务需要多人同时操作时,可以通过平台进行协同。在登录时需要填写参训人员名称、人员级别等信息。
3.2.2 实现过程
创建数据库并连接数据库。
设置基础信息。包括装备的基本信息,如名称等;装备的组成信息,主要构建虚拟维修过程中涉及到的零部件信息;人员专业信息,如机械专业;人员级别信息,具体是指参训人员所属级别。进行基本信息设置的交互界面如图4所示。
图4 设置基本信息Fig.4 Setting the basic information
导入训练素材。“美腾协同式装备虚拟维修训练通用平台”开发系统具有良好的兼容性,可以支持文本、演示文稿、图片、音频、视频等多种训练素材的导入。在实现沉浸式虚拟维修训练系统的过程中,需要导入“美腾装备虚拟维修仿真系统”生成的*.swn格式的压缩包。
制作训练内容。选择训练类型,包括描述类、虚拟维修操作、故障诊断3类。选择内容类型,包括系统结构、工作原理、操作使用等8种。
设置训练课程。首先添加训练数据包,该过程需要具体的名称和图片。然后进行课程设计,在工程项目下带有讲解演示、自主学习、引导式训练、自主训练、自测、考核等6种训练模式,将需要的训练项目拖拽到相应的训练模式下。例如构建“自主训练-拆卸履带”训练课程项目。
此外还有训练资源管理模块,主要针对技术资料的存储;试题管理模块,可以生成单选题、多选题、判断题、填空题、操作题、排故题等题型;用户管理模块,建立不同的用户,可进行权限设置;帮助模块。可根据需要进行相应设置。对维修训练资源的管理界面如图5所示。
图5 训练资源管理Fig.5 Training resource management
3.2.3 文件发布
由数据发布管理模块发布软件,生成一个ResouceX格式的数据包,在美腾平台目录中打开该数据包可以进行虚拟维修训练。
4 实现与验证
4.1 软硬件需求
开发本文设计的沉浸式虚拟维修系统的硬件开发环境为:操作系统为64位Windows 7;处理器为Inter Core i5-4590 CPU@3.30GHz;显示适配器为NVIDIA GeForce GT 630 MB;安装内存(RAM)为4.00 GB。主要外设为HTC Vive头戴式显示器。软件部分包括:模型开发软件3ds Max 2012,虚拟引擎Unity 3D 5.1.0f3,Visual Studio 2012,“美腾装备虚拟维修训练通用平台开发系统”。
4.2 沉浸式虚拟维修训练系统的实现
本文结合某型自行高炮具体实现了沉浸式虚拟维修训练系统。
首先进行训练前的准备。具体流程为:用户登录;选择训练模式、装备、具体专业;构建并加入局域网;选择交互方式,分为键盘鼠标、头戴式显示器及手柄、数据手套等3种。界面如图6所示。
图6 训练前准备Fig.6 Preparation before training
参训人员进入沉浸式虚拟维修训练后如图7所示。在沉浸式虚拟训练过程中,工具箱如图8所示,选取工具后对零部件操作,当选取错误部件时如图9所示。在虚拟训练过程中可以随时查看维修操作的流程提示,已完成的操作变为绿色,如图10所示。全部操作人员完成维修训练后,有对每名参训人员操作过程的评分,如图11所示。
图7 实现沉浸式虚拟维修训练系统Fig.7 Realization of immersive virtual maintenance system
图8 工具箱Fig.8 Toolbox
图9 选取错误零件提示Fig.9 Prompt information of selecting the false component
图10 维修操作流程提示Fig.10 Prompt information of maintenance operation flow
图11 训练后评分Fig.11 Scoring after training
在虚拟维修训练过程中,参训人员与虚拟环境的交互真实感强,没有延时感,操作结束后的评分公正。系统在保证训练严肃性的同时增加了训练的趣味性,有助于提高训练效率。可以实现虚拟环境中的讲解演示、自主学习、引导式训练、自主训练、自测、考核等,有效巩固参训人员训练效果。
基于“美腾平台”的装备虚拟维修训练系统开发可以实现过程统一、平台通用、数据共享。“美腾平台”通用化、模块化水平较高:开发系统可以支持多种格式的文件,通过简单的素材导入就可以实现多种格式文件的读取;在开发过程中,开发人员可以不具备计算机编程知识,通过对资源的整合就可以实现虚拟维修训练系统的开发,简化了开发流程,提高了开发效率。
5 结束语
本文提出了一种基于“美腾装备虚拟维修训练通用平台”的装备沉浸式虚拟维修训练系统开发通用方法,可实现多人协同、多种训练模式的虚拟维修训练,也可以支持桌面式、触摸屏式、半实物虚拟维修训练。该方法可以有效弥补传统维修训练手段的不足,提高自主维修训练能力,促进维修保障能力的快速形成。