基于3D Max/Virtools软件的装备虚拟训练系统开发
Development of Equipment Virtual Training System Based on 3D Max and Virtools
DOI: 10.12677/CSA.2021.115138, PDF, HTML, XML, 下载: 393  浏览: 557 
作者: 王 会:陆军炮兵防空兵学院研究生管理大队,安徽 合肥;赵东华, 孔祥彪:陆军工程大学军械士官学校,湖北 武汉
关键词: 3D MaxVirtools装备虚拟训练3D Max Virtools Equipment Virtual Training System
摘要: 针对装备保障教学直观性不够、手段缺乏、损耗大等问题,利用3D Max/Virtools软件开发了装备虚拟训练系统。采用3D Max建立了装备零部件的三维模型,并进行渲染和制作动画,导入到Virtools软件平台上进行集成和交互设计。系统利用Virtools软件BB模块、VSL开发等功能,实现了装备内部构造的分解拆卸、多角度显示交互控制,并设计了故障检修虚拟训练交互模块,开发了实践考核和理论考核功能模块,该系统实用性强,界面和交互性好,对提高装备教学具有重要意义。
Abstract: In order to solve the problems of insufficient intuitiveness, lack of means and large loss of equipment support teaching, a virtual training system for equipment was developed by using 3D Max/Virtools software. The 3D model of equipment parts is established by using 3D Max, which is rendered and animated, and then imported into the Virtools software platform for integration and interaction design. The system uses Virtools software BB module, VSL development and other functions to achieve the disassembly of equipment internal structure, and multi-angle display interactive control. The virtual training interactive module of fault maintenance is designed and the functional module of practical examination and theoretical examination is developed. The system has strong practicability, good interface and interactivity, and is of great significance to improve equipment teaching.
文章引用:王会, 赵东华, 孔祥彪. 基于3D Max/Virtools软件的装备虚拟训练系统开发[J]. 计算机科学与应用, 2021, 11(5): 1357-1364. https://doi.org/10.12677/CSA.2021.115138

1. 引言

装备教学是保障部队装备形成战斗力的重要手段,也是院校教学的关键环节,直接关系到学员岗位和职业能力形成,特别是装备构造原理、检测维修教学一直是困扰相关院校和部队的老大难问题,主要体现在四个方面:一是构造不直观,难以讲解和阐述,教学效率不高;二是实装训练损耗大,装备保障费用高,装备完好率难以保证;三是装备数量少,学员人数多,难以改变一人做多人看的局面;四是实践训练效率低,检测维修故障排除训练时间长等。要解决以上问题,必须借助于信息化教学技术,开发相关的虚拟训练系统,采用虚实结合方式,解决直观性不够、训练效率低、装备损耗大等问题。复杂机械和装备教学训练系统相关院校也有开发,比如文怀兴等发表的《基于Virtools并联机床虚拟装配系统开发》等 [1],李菲等发表的论文《军校电子对抗装备教学问题和对策》等都有相关阐述。但是要实现包括理论学习、装备构造、装备原理、装备使用维护、装备检测、装备维修、实践考核、理论考核等多方面模块内容的虚拟训练系统,需要多种平台软件结合开发,必须具有装备构造拆分、点击查看、部件多角度查看和装配、故障实践操作训练考核等功能,难度较大。下面以笔者开发的某种装备虚拟训练系统为例进行阐述。该型软件针对装备教学和实训需求,开发了包含能够自主学习理论、自主操作和排除故障实训的某型装备虚拟实训系统,主要有概述、构造原理、操作使用、维护保养、分解组装、检测维修等模块。

2. 系统设计需求分析

某型装备保障教学主要培养学员懂构造原理、会使用维护、检测维修的装备保障人才,培养考核合格后,在部队从事装备保障工作。结合装备构造原理复杂、零部件多,拆分训练损耗大,装备数量少和人数众多实际,需要开发一种虚拟实训操作系统。软件基本需求有:一是展示装备构造,通过鼠标控制零部件多角度展示,便于直观学习,开展装备分解组装交互训练;二是开展检测维修训练,采用演示诊断思路和步骤方式,借助于维修工具模拟实装排除故障;三是开展考核,要开展虚拟故障排除、操作实践考核,并且和理论考核结合起来,客观评价学员知识、技能水平。同时要确保虚拟实训系统应提供完整、准确的三维模型,应具备丰富的交互功能、人机界面、运行性。

3. 系统设计方案

本系统以3D Max为建模平台,以Virtools软件为媒介集成开发成一款面向对象的虚拟交互软件。首先通过3D Max创建装备的各个部件、零件三维模型并完成装配、渲染和制作动画,使用Virtools专门为3ds Max开发的插件Max to Virtools导出nmo格式文件,将文件导入至Virtools,Virtools通过BB模块、VSL开发等方式控制,最终完成整个虚拟训练系统。设计总界面如图1所示,系统设计方案如图2所示。

Figure 1. Software interface and function composition

图1. 软件界面和功能组成

Figure 2. System design scheme

图2. 系统设计方案

4. 3D Max建模实现

进行3D Max建模前必须熟悉装备构造和零部件组成,结合开发软件需要用到的拆解零部件进行建模开发。建模要体现装备零部件的真实性和尺寸匹配性,首先用精度较高的游标卡尺测量零部件尺寸并进行绘制,绘制完毕后需要再建模。虚拟现实中的装备构造三维建模模型相对比较复杂,采用单一的建模方式无法实现对整体的建模。针对该装备结构复杂多样、形状不规则的情况,主要采用多边形建模,配合使用其他多种建模方式,按照由简到繁,由易到难的建模思路 [1]。先从结构比较简单形状比较规则的部件着手,比如面板、传达杆、三脚架等,后期在对结构复杂、形状及其不规则的物体进行建模,比如按钮、齿轮等。另外针对装备内部具有复杂的电路板,因为电路板部件不需要展示其构造组成,只是展示电路原理时候用到关键节点,主要是采用高清照相机拍照片处理后,按照实装位置关系,结合面板叠加嵌套配合生成。模型建模后添加和武器装备颜色一致的材质,从而使装备场景变得真实、生动。添加材质效果见图3示。

Figure 3. Model drawing after equipment rendering

图3. 装备渲染后的模型图

在将3ds Max中的文件导出为Virtools的NMO格式文件的过程中需要注意:1) Mesh转换。模型需要先转换为Mesh对象;2) Reset Xform (重置变换)。为了正确而完整的输出所有3ds Max中的模型到Virtools中,在设置从属关系和制作动画之前必须将所有的模型做Reset XForm (重置变换)。3) Material (材质)数据部分。Virtools可接受的贴图尺寸之长与宽数值最好使用2n (如16 × 16,16 × 32,32 × 64等)像素值,这样可以充分利用Virtools中的内存,在保证贴图清晰度的情况下,尽量少的消耗系统资源。4) Light (灯光)数据部分。所有3ds Max的标准灯光等都可以导入到Virtools中。5) Group (组合)数据。为了能够正确的输出组合数据,必须在3ds Max中将组合(Group)打开,成为开放式的组合(Open Group) [2]。

5. 基于Virtools软件平台集成

Virtools是一套具备丰富的互动行为模块的实时3D环境虚拟实境编辑软件,产品为可视化界面,软件内置600多种Building Blocks模块,包括原型设计、模拟虚拟环境和3D互动等。使用Virtools可以利用拖放的方式,将BB模块赋予在适当的对象或虚拟角色上,以流程图的方式,决定BB行为交互模块的前后处理顺序,从而实现了可视化的交互脚本设计,逐渐编辑成一个完整的交互式虚拟世界 [3] [4]。

Virtools读取3ds Max导出的nmo格式文件,设置灯光、摄像机等效果,利用BB (Building Blocks)和VSL (Virtools Script Language)实现预定功能。本软件集成了8大功能模块,其中装备概况主要以动画、配音演示实现,利用PS软件处理好相关界面和材质;使用维护模块主要以视频形式展示;参考学习模块主要以电路图流程演示,原理展示等方式,并集成了装备许多资料和文字等,在此不做介绍,主要介绍几个关键难点模块。

5.1. 装备构造模块开发

复杂的装备构造模块是教学训练系统的重点,也是学员必须掌握的重难点内容。要掌握逼真的装备构造,必须要实现装备零件拆解、部件展示、部件放大缩小和旋转操作等功能,学员能够利用鼠标进行交互演示和操作,提高装备学习的真实性和交互性,提升学习效果。

本模块利用Virtools实现3维模型的控制和操作展示,实现装备构造的学习。利用鼠标左键控制装备旋转、转动等,利用鼠标右键控制装备的缩小和放大,两者配合实现装备构造的学习。同时鼠标放在或者停留在哪一个部件上,就会显示该部件的名称,并且可以同步放大缩小旋转查看。如果该部件可以拆分,点击相应的工具,就可以拆分,显示其内部构造,如图4所示。

Figure 4. Internal structure display, control and split diagram

图4. 内部构造展示及控制、拆分图

基于易于操作和逼近现实的共同考虑,采用鼠标控制摄像机角度来展示零部件的过程,可以展现出立体的效果,以给用户一个真实的体验。鼠标拖动物体运动的效果可以使用BB实现,但是相对于用VSL编写代码来讲,用BB实现过程较为复杂,可读性差,可移植性差,故采用VSL编程实现鼠标拖动物体的效果。

如以下用来实现检测鼠标拾取到的3D物体的功能。

InputManager im_Mouse=InputManager.Cast(bc.GetManagerByGuid(GetInputManagerGuid()));//生成InputManager对象

im_Mouse.GetMousePosition(pos_Mouse); //获取鼠标位置对象

RenderContextrcx=bc.GetPlayerRenderContext();//获取渲染设备

IntersectionDesc idc;//声明描述交点信息对象

int axis_x = floori(pos_Mouse.x);

int axis_y = floori(pos_Mouse.y);

rcx.Pick(axis_x, axis_y, idc);

ent3d = desc.Object; //拾取3D对象

以下程序用来实现零件随鼠标的滚动而旋转的功能。

Vector mouseRePos; //定义变量

im_Mouse.GetMouseRelativePosition(pos_Mouse);

//得到鼠标的移动量

dragDummy.Rotate(dragNormal, pos_Mouse.z*pi/180/16,NULL,false); //旋转零件

5.2. 装备检测维修模块开发

装备检测维修模块涉及到故障诊断思路、工具使用和操作演示等,对于学员来说,关键是要掌握维修技能,对于教学训练阶段来说,主要是要学会装备模拟故障的排除方法,在岗位上出现类似故障会分析和排除等。所以本模块集成了装备常用的30个故障,采用先原理后操作演示方式对学员进行展示。

以某加温功能为例来说明,按照如图5所示流程图进行故障原理演示。如1) 选取手型工具,打开电源开关;2) 观看目镜加温指示灯,察看是否亮;如果没亮,证明存在故障,关闭电源;3) 选取对应拆装工具,在对应螺丝部位进行拆装;4) 选取手型工具,连接对应转接电缆,选取万用表,在指示灯一段测量是否有2 V电压,如有电压,则更换指示灯;如果没有,则测量电源模块输出是否有27 V,如果有,则更换中间分压电阻等。

故障原理演示完毕后,进入到操作演示阶段,如图6所示,建立模拟修理用的真实场景,构建修理用工具图库和模型库,鼠标单击选择相应的工具后,会显示相应的工具模型,将工具拖动到相应的位置进行操作,例如如果需要用到电压表测量,则点击电压表图库,然后将电压表的表笔拖动放置在相应的测量点,选择相应的电压数值。系统会根据设定的情况显示数值是“0”或者是相应正确的数值,这时候需要操作人员进行下一步的判断。如果选择操作提示模式,这时会显示操作提示步骤,并同步进行相应的操作。

Figure 5. Typical troubleshooting ideas

图5. 典型故障排除思路

Figure 6. Troubleshooting interface and tool display

图6. 故障排除界面及工具展示

5.3. 装备考核模块开发

传统的考核一般只有理论考核,实践考核特别是虚拟考核较难实现。本模块开发了理论模块和实践模块,理论模块有20套题库,主要考核理论掌握情况,满分100分,答题正确数量为最终得分。

实践考核模块分为结构认知模块、故障排除模块。结构认知模块设置100道题,每10道为一组,每题10分。主要是随机抽取一个装备部件名称,如果是面板上的部件,可以通过旋转、缩放等方式操作,直接点击找出;如果是内部部件,需要通过选择相应的工具拆分,在内部找出,并点击找出。正确得分,错误为0,最后统计得分情况。故障排除模块考核主要是前面已经学习的30道故障排除题目,提供题目和工具图库,按照步骤操作,选择工具错误或者操作错误,就会扣分,每一个步骤都有其相应的分值,最后得分为步骤计算分值,满分为100分。如图7为操作错误提示画面。

Figure 7. Operation error display

图7. 操作错误显示

操作评分系统是此处难点,在系统建立评分数列errorArray,存储错误要点及相应的扣分,错误要点体现在屏幕,扣分直接体现在得分区。评价功能贯穿操作始终。编写 getErrorArray函数实现以上功能。getErrorArray函数的部分代码如下:

void getErrorArray ( int i_errorID )

{String s0,s1,newString;float errorPoint;

getArrayByID (i_errorID, 0 , s0 , errorArray ) ; //获取错误字记录

getArrayByID (i_errorID, 1 , s1 , errorArray ) ; //获取扣分记录

if ( errorYouPoint <= errorMaxPoint )

{

scoreFloat -= errorPoint ;

errorYouPoint += errorPoint ;

newString=newString+ errorYouPoint ;

updateArrayByID(errorID,4, newString,errorArray);//存储扣分记录

} }

在程序的其余地方,直接调用 getErrorArray函数即可,如下面部分代码所示。

if ( testOrder ( DragTarget ) )

setPosition = true ; //执行操作

else

getErrorArray ( 3 ) ; //读取错误

6. 应用及总结

系统集成开发后,以其良好的界面、人机交互性投入到教学使用,学员在课前预习、教员在讲解和考核当中都应用了此系统,解决了新装备教学过程手段匮乏、技术手段不高、装备损耗大、效率不高等问题。该软件教学使用安排如下表1所示。

Table 1. Virtual training teaching arrangement

表1. 虚拟实训教学安排

该软件2017年评为学校优秀教学软件一等奖,2018年、2019年学员利用系统进行强化训练,特别是结合混合教学模式应用时,学员能够利用系统对装备进行自主预习,对照构造展示模块能够自主掌握枯燥的理论和复杂的构造内容,树立直观印象。通过系统学习,学员实践成绩平均提高了15.2%,装备完好率达到100%,装备维修费用有效降低,2019年作为训练资源获优秀教学成果二等奖,说明该系统应用后,助力提升教学效果明显。

参考文献

[1] 文怀兴, 黄正祥. 基于Virtools并联机床虚拟装配系统的研究[J]. 制造技术与机床, 2017(9): 91-94.
[2] 孔祥彪. 基于Virtools的特种车辆虚拟实训系统研究与开发[D]: [硕士学位论文]. 青岛: 中国海洋大学, 2014.
[3] 傅招国, 王天威, 倪小鹏, 林砺宗. 基于Virtools的虚拟现实技术及在特种设备教学中的应用[J]. 计算机工程与科学, 2012, 34(6): 97-102.
[4] 盖龙涛, 陈月华. 基于Virtools的交互式操作模型系统的设计与实现[J]. 计算机应用, 2009, 29(z2): 308-310.