基于3ds Max/EON的虚拟维修训练系统
2016-09-08朱望纯
秦 英,朱望纯
(桂林电子科技大学 电子工程与自动化学院,广西 桂林 541004)
基于3ds Max/EON的虚拟维修训练系统
秦英,朱望纯
(桂林电子科技大学 电子工程与自动化学院,广西 桂林541004)
针对维修训练成本高、效率低的问题,设计了一种基于3ds Max/EON的虚拟维修训练系统。该系统采用3ds Max建模与优化,利用EON构建虚拟维修场景,并通过维修操作的动画设计和序列化控制实现了人机交互功能。引入数据库技术增强系统的可重用性,通过系统的集成进行多设备、多故障类型虚拟维修训练。应用结果表明,该虚拟维修训练系统能够节约训练成本,提高训练效率。
虚拟维修;场景构建;人机交互;系统集成
目前,装备维修大多是利用维护说明书、多媒体、录像和教材等资源结合实装训练开展,这些训练方式可交互性差,存在受训人员数量和时间难以保证的缺陷。此外,建立培训基地需要投入大量的人力物力,给经济带来很大压力,不利于受训人员的学习。近年来,虚拟现实技术已成为解决维修人员训练问题的新方法,虚拟维修已成为各国装备维修领域的主要发展趋势之一。日本东京大学的Srinivasan等[1]提出了虚拟维修系统的概念,明确了虚拟维修系统包含的内容,美国、日本等国家由于起步较早、基础较好、投入较大,虚拟现实技术已进入实用阶段。相较于国外,国内经过十多年的研究,已取得不少成果,但与发达国家相比,还存在一定差距[2-3]。
为此,在分析虚拟维修训练系统功能需求的基础上,搭建系统框架,引入数据库技术将数据分类存储,提高系统的开发效率,结合EON的外部软件接口技术和数据库访问技术设计人机交互界面,增强交互功能。以某电路维修为例,完成系统的开发与集成,为操作人员进行维修训练提供新的方式和手段。
1 系统总体框架设计
虚拟维修训练系统如图1所示,整个系统主要由建模模块、虚拟维修训练仿真模块、数据库模块、系统集成管理平台4个部分组成。建模模块采用3ds Max建立维修工具及维修对象的三维模型,并以3ds格式进行保存。虚拟维修训练仿真模块完成三维展示及虚拟维修交互操作训练,主要包括维修操作的模块化和序列化,同时,能够为训练过程提供维修操作指导,记录操作过程,评估训练效果。数据库模块存储模型文件、虚拟维修交互场景文件、常见故障类型、维修操作步骤列表、受训人员的考核成绩表等,为系统实现与集成提供数据支持。系统集成管理平台为系统的核心,通过相应接口对数据库及虚拟维修仿真模块进行集成,提供用户界面,实现维修场景及训练模式选择、故障设置、训练评估等功能。
图1 虚拟维修训练系统Fig.1 Virtual maintenance training system
系统功能设计如下:
1)学习功能。系统能够将维修工具及维修对象进行三维可视化展示,包括多视角观测、设备介绍及功能描述等,将用户带入一个信息量大、立体的训练环境,使用户能够熟悉其结构组成、工作原理,达到学习目的。
2)故障模拟。系统能够对故障信息进行分类存储,模拟设备的常见故障现象。受训人员在训练过程中,能够设置故障类型,熟悉各种故障现象和故障诊断的方法,掌握各种维修工具的使用,实现对故障的诊断和定位,提高故障检修能力。
3)维修训练。系统能够根据设置的故障类型给出操作提示,引导受训人员通过交互设备,完成维修训练操作,若操作发生错误,则给出错误提示。
4)考核评估。系统能够记录受训人员的维修操作过程,在考核结束后,制定合理的评估标准,根据虚拟维修仿真模块记录的操作过程信息,评定考核成绩,对维修训练效果进行评估。
2 虚拟维修仿真模块设计
2.1场景构建
虚拟场景的构建是整个系统中最重要的部分,是实现虚拟维修训练的骨架。EON代表最前沿的VR技术,采用基于节点的场景图数据结构描述构建的虚拟场景,能够很好地描述模型的层次特性,同时还具有易学易用、整合性强的特点[4]。使用3ds Max建立三维实体模型并进行优化[5],然后通过模型转换接口导入EON中完成虚拟场景的构建。
场景构建的过程如下:首先,在3ds Max环境下,将维修工具、维修对象的模型文件整合到.3ds文件中,并调整实体模型到合理的位置。同时,为了方便给模型添加动作,通过分组命令,将属于同一实体模型的零部件分为一组,然后将其导入到EON,在此过程中,模型间的相对位置和分组关系仍被保留,便于进行虚拟维修交互功能的设计。最后用Viewport节点调整场景的视角,Ambient节点调整环境光。如果比例关系不合适,还可以通过框架节点的Scale属性调整大小,使整个场景有较好的观测效果。
2.2维修过程的模块化处理
维修过程是受训人员操作维修对象的过程,由使用者的一系列行为构成[6]。根据设备维修规程,将维修训练过程分解为由多个操作步骤构成的序列化模型,对每步操作进行模块化处理,并制作三维动画,使程序的开发过程更加清晰,而且便于控制每个步骤间的逻辑关系。
系统中对各维修步骤的动画设计是通过给模型设定一定的运动路径实现,由鼠标点击触发,并伴随一定的视角切换功能。当用户通过鼠标选择相应的实体模型时,被选对象会按照预定的路径移动到目标位置,完成与虚拟环境的交互,采用EON中的ClickSensor节点、KeyFrame节点和Place节点实现。KeyFrame节点用来设置位置路径,进行路径规划,需要注意的是KeyFrame节点中的每个控制点都是相对于物体自身坐标原点的位置。ClickSensor节点用来接收用户发出的点击指令,通过路由把消息发送出去,触发KeyFrame节点产生路径动画。若对某个模型的操作多于2次,采用计数器节点对鼠标触发事件进行计数,使2次操作相互独立。维修过程模块化路由示意图如图2所示。
图2 维修过程模块化路由示意图Fig.2 Route of maintenance process module
2.3维修过程的序列控制
将维修步骤模块化后,还需要对各步骤间的先后顺序进行规划,监视用户的输入操作事件,如鼠标的点击、键盘的输入等,进而判断当前操作的正误,并作出响应,使用户按照正确的操作步骤训练,完成整个虚拟维修过程的仿真。维修操作规程规定了维修操作的序列,也就是一种顺序结构,以有限状态机的方法处理操作工序状态,对每一操作步骤进行编号,允许受训人员进行第N个操作的必要条件是第N-1个操作被标记为已完成。在正确的操作序列下,系统会响应用户的操作,启动维修步骤对应模型的路径动画。在操作规程中,有些操作是可以并行的,将并行的操作编为相同的号码即可。
Script节点是EON节点中功能最强大的节点[7],采用脚本编程的方式实现一些复杂的功能。采用Script节点实现各维修操作步骤的顺序控制,是功能实现的主体部分,若当前操作正确,则在该步骤完成后,显示下一步操作的文字提示信息,若不正确,操作无法进行,并给出错误提示,直到用户操作正确为止。其设计思路如图3所示。
1)在Script中为每个模型的点击操作建立Clc输入域,用来检测用户的输入操作,同时为每个维修步骤的完成动作建立In输入域,并与该步骤操作模块对应节点的OnRunFalse属性域连接,检测该操作步骤是否完成。
2)在Script中建立N个Out输出域,与对应步骤操作模块对应节点的SetRun属性域相连接,用来触发某个操作步骤。自定义的输入输出属性域均为SFBool型。
3)在Script中设置一个全局变量m,用来记录当前正在进行的操作步骤的编号。当操作步骤n(n≤N)完成时,Script节点的Inn输入域对应子程序被触发,在此子程序中将m的值设置为n+1,指明下一步允许用户进行的操作序列。
4)当用户进行某个点击操作时,会触发Script节点中的Clc输入域,执行子程序,在此子程序中,判断操作的序列是否等于m。若相等,则将控制此操作序列的Out输出域的值设为True,即可触发Stepn操作模块,启动路径动画,同时记录正确操作数;若不相等,则给出错误提示信息,并记录错误操作数。
图3 维修过程的序列控制示意图Fig.3 Sequence control of maintenance process
3 基于SQL Server的数据库设计
不同的虚拟维修场景,可能会用相同的维修工具,具有相同的故障现象。当重新生成维修场景时,维修工具的属性信息存在重复性问题。采用将各项数据信息写入数据库的方式进行管理,当选定不同的维修场景时,只需从数据库中调用相关字段即可。因此,数据库技术可以为实现人机交互提供数据来源,减少重复性工作,简化程序开发过程。
系统的数据实体包括维修场景、故障类型、维修工具、维修对象、考核训练表及人员信息,它们都有各自的属性信息,采用实体-联系的方法描述实体及其属性、不同实体间的关系,将E-R图转换成数据库表,如表1所示。最后利用Windows控制面板中的ODBC数据源管理工具注册数据源,通过建立的ODBC数据源,完成数据表的访问。
当在系统界面中选择虚拟维修场景时,首先使用ODBC数据源读取场景表中所选场景的存储路径,完成场景的加载和显示,再用多表查询方式通过维修场景编号查找维修工具编号、维修工具名称及故障类型名称,并以递归方法向树形控件插入维修工具名称,向故障信息列表框加载故障类型名称进行显示,完成后方可控制场景进行训练。在训练过程中,系统将用户操作与数据库中存储的正确步骤对比,最后自动存储考核成绩到数据库,用户可对历史训练成绩进行查询。
表1 数据库表
4 系统集成与发布
在完成虚拟维修训练仿真模块和数据库设计的基础上,用VC++6.0开发集成管理平台,结合数据库访问技术和EON与VC之间的通信机制[8],设计用户界面,将二维控制面板与三维操作场景结合,实现场景组成、维修工具及对象的结构展示、维修训练控制的集成,使用户在训练过程中可以进行维修场景选择、故障类型设置、维修操作过程控制和多视角观测等。此外,在考核模式下,系统集成管理平台能够接收虚拟维修训练仿真模块记录的错误操作数、考核用时等信息,评估用户的训练效果,并将考核成绩存入数据库。VC与EON的通信原理如图4所示。具体实现步骤如下:
图4 VC与EON通信原理Fig.4 Communication principle between VC and EON
1)在EON中创建InEvent(入事件)或OutEvent(出事件)节点。出事件接口OutEvent负责向VC发送数据,入事件接口InEvent负责接收从VC发出的信号。
2)在EON中建立Script节点与EventIn节点或EventOut节点的连接。
3)在VC程序中添加对虚拟场景OutEvent事件的数据监听函数OnEventEonx(),然后为其添加相应代码获取EON的数据并处理,最后将处理后的指令/数据利用接口函数SendEvent()发送到InEvent节点。需要注意的是EON中出事件和入事件的数据类型应该与VC中设定的数据类型保持一致。
以某电路维修为例,依据维修规程,系统功能界面如图5所示,其流程如图6所示。选择零槽模块,对其进行右视图观测,其零槽模块右视图如图7所示。
图5 系统功能界面Fig.5 Function interface of system
图6 维修训练流程图Fig.6 Flow chart of maintenance training
图7 零槽模块右视图Fig.7 Right view of zero slot module
5 结束语
研究了虚拟维修系统的仿真设计方法和数据库设计,将EON与VC++6.0结合,嵌入多种维修训练场景,实现了多种维修对象及多故障排除训练。以某电路维修为例,对涉及的关键技术与方法进行了验证,用户在维修训练过程中,像操作真实的仪器一样,能够提高训练效率,降低成本。应用结果证明了所设计系统的有效性,具有一定的应用价值。
[1]SRINIVASAN H,FIGUROA R,GADH R.Selective disassembly for virtual prototyping as applied to de-manufacturing[J].Robotics and Computer-Integrated Manufaturing,1999,15(3):231-245.
[2]王文举,李光耀.虚拟维修仿真技术的研究与进展[J].系统仿真学报,2011,23(9):1751-1757.
[3]何嘉武,赖煜坤.武器装备虚拟维修训练系统设计与实现[J].科技导报,2010,28(24):71-74.
[4]EON Reality Inc. EON User Guide 5.0[Z].USA:Eon Reality Inc,2001.
[5]杨宏艳,史卓,钟艳如.基于虚拟现实的数字化校园漫游系统设计[J].桂林电子科技大学学报,2011,31(4):287-291.
[6]孙逊,诸雪征,吴耀鑫,等.某作业系统虚拟维修训练研究[J].系统仿真学报,2013,25(增刊1):323-326.
[7]方传磊,苏群星,刘鹏远,等.EON中基于Script的功能扩展研究[J].科学技术与工程,2008,8(3):799-801.
[8]朱喜青.基于EON的机械基础虚拟实验室的研究与实现[D].广州:华南理工大学,2012:63-64.
编辑:梁王欢
Virtual maintenance training system based on 3ds Max/EON
QIN Ying, ZHU Wangchun
(School of Electronic Engineering and Automation, Guilin University of Electronic Technology, Guilin 541004, China)
Due to the high cost and low efficiency of the maintenance training, a virtual maintenance training system based on 3ds Max/EON is designed. 3ds Max is used to realize modeling and optimization of the system. EON is used to build virtual maintenance scenario and develop human-computer interaction through the animation design and sequence control of the maintenance operation, then database technology is used to enhance the reusability of the system. Finally the system can be applied for more equipments and fault types in virtual maintenance training through system integration. The application results show that the virtual maintenance training system can reduce training cost and improve training efficiency.
virtual maintenance; scenario building; human-computer interaction; system integration
2015-11-19
朱望纯(1976-),男,湖南衡阳人,副教授,研究方向为自动测试总线VXI、PXI,自动测试系统及软件,虚拟仪器及可互换式虚拟仪器(IVI),虚拟现实。E-mail:zhwch@guet.edu.cn
TP391.9
A
1673-808X(2016)03-0234-06
引文格式: 秦英,朱望纯.基于3ds Max/EON的虚拟维修训练系统[J].桂林电子科技大学学报,2016,36(3):234-239.