基于EON的装备虚拟维修训练系统的设计与实现*
2012-10-16鲍广宇裘杭萍
周 劼 鲍广宇 裘杭萍
(解放军理工大学指挥自动化学院 南京 210007)
1 引言
装备维修训练是现代军事训练的重要方面。在实体装备上的维修训练成本高、范围受限,效果也不理想。虚拟现实技术的发展为解决装备维修训练难题提供了很好的办法,它能够真实营造虚拟环境,模拟展示装备结构形状,通过传感设备将用户“投入”到虚拟环境,实现用户与装备的自然交互,具有经济、可控、无条件限制等优点,目前已成为现代军事装备维修训练的研究热点之一。
当前国内外主流的虚拟现实平台主要有VirTools、Quest3D、VRP、Java3D、EON等多种开发软件,都能够实现基本的虚拟仿真效果,但都有各自的不足,如VirTools对CAD模型支持不够,Quest3D兼容性不强,VRP的高级语言接口开放不够,交互性不好,Java3D主要针对网络使用等等。相对而言,EON软件兼容性好,能够提供3D模型真实物理特性的模拟,支持多种CAD格式和高级Cg绘图;扩展性强,具有二次开发能力,是世界上公认的整合性、延展性最好的虚拟现实开发平台[1]。
论文在EON虚拟平台的基础上,对装备维修训练进行了模拟,设计了系统的核心工作引擎,实现了虚拟维修训练系统,为维修人员提供了形象具体的、可交互的训练方式,有效地提高了维修人员的训练效率,具有显著的经济、军事效益。
2 系统设计和模型构建
2.1 系统设计
传统虚拟训练软件主要是与虚拟现实软件直接进行交互,通用性和扩展性不强,设计实现较为复杂,论文充分利用EON开放程度高的优点,提出了一种系统核心工作引擎的设计方法,屏蔽了模型底层的操作,应用系统可以直接在引擎的基础上进行设计,保证了系统设计的简单灵活。
根据虚拟维修训练系统功能要求,系统主要划分为装备维修学习系统、装备维修训练系统、装备维修考核系统和核心工作引擎四个部分,其基本组成如图1所示。
图1 虚拟装备维修训练系统基本组成
其中装备维修学习系统是为受训人员提供装备文档资料和结构模块的学习功能;装备维修训练系统主要是通过故障推理过程详细展示,了解并熟悉设备的常见故障及维修方法,提高受训人员对维修过程、故障定位的熟练程度;装备维修考核系统主要支持对受训人员的维修知识、维修过程、熟悉程度进行定量和定性相结合的综合评判,并改进建议意见;核心工作引擎是虚拟维修系统的基础平台,包含模型控制、通信、数据生成和动作跟踪等核心功能,通过对EON接口的封装,屏蔽了对模型的读取、控制等具体操作,上层应用系统不需要和三维仿真平台直接交互,简化了应用系统的设计,实现了系统设计的通用性和可扩展性。
2.2 模型的构建
装备模型的构建是整个虚拟仿真系统的基础,其好坏将直接影响整个系统的质量。考虑到Maya软件处理图像细腻、模型效果好;3ds Max接口丰富,操作简单且EON提供了3ds Max专用插件等因素,系统采取了Maya和3ds Max软件相结合的技术实现模型的构建。具体步骤如下
1)使用Maya软件对装备进行基本建模和优化,充分利用Maya强大的建模功能,针对模型贴图、材质和形状进行精细化的处理,保证了装备模型的真实和详细;同时通过减少模型的数量和面数、合理分配模型密度、规范模型的三角面形状的手段,对模型进行了优化,有效提升了模型运行的效率。
2)将模型文件导入到3ds Max,按照装备结构层次和零件之间的配合关系,自下而上对模型进行分层整合,形成了良好的层次结构;同时搭建了场景环境,增加了训练仿真的真实感。
3)利用EON提供的3ds Max插件EON Raptor将模型导入到EON中[2]。EON Raptor能够完整的识别和导出3ds Max模型的位置关系和层次结构,方便后期设计模型动作;而且可以对模型进行进一步的优化处理,避免了不必要的调整。
3 引擎的设计及关键技术
3.1 引擎的设计
核心工作引擎是系统三维模型的底层驱动引擎,通过封装EON的接口,实现系统所有对模型的操作,其主要功能是从模型库和数据库中读取模型文件和相关设备数据,从知识库中读取并生成相应的模型故障和维修序列,将模型、数据信息等传输到各应用系统,形成系统的设备结构树、故障树、仿真模型动画及相关知识提示,为用户提供与模型相关的维修训练功能。引擎主要包括以下四个模块:
1)控制模块
引擎提供了三维模型的控制功能。应用系统可通过鼠标键盘操作或者系统参数传递实现模型读取、旋转、移动、碰撞检测以及模型选择等方面的功能,不需要直接和三维仿真平台进行交互。
2)通信模块
引擎封装了系统和模型、模型和模型之间的通信机制。通信不需要考虑三维模型的位置、通信协议以及模型类型等因素。
3)数据生成模块
引擎提供了模型维修数据的生成功能。应用系统可以通过引擎调用知识库中的维修知识,灵活选择生成模型的故障状态、维修动作序列以及模型数据等信息,并存放在数据库中。
4)动作跟踪模块
引擎提供了模型动作的跟踪功能。引擎记录用户对模型的操作动作,并将模型动作数据存储在数据库中,为维修训练考核提供评判依据。核心工作引擎的体系结构如图2所示。
图2 核心工作引擎的体系结构图
3.2 引擎的关键技术
在核心工作引擎的开发过程中,最关键的技术主要有三个方面的内容:1)系统与模型的数据交换;2)人机交互功能;3)维修动作的设计。
3.2.1 系统与模型的数据交换
EON软件的开放程度很高,支持与高级语言的通信交互,易于编程控制。核心工作引擎就是在封装EON提供的ActiveX控件EonX基础上,实现EON模型与高级语言的数据交互,其工作原理如图3所示[3];同时EON的Script节点可以对系统发送的消息参数进行处理,保证了系统对模型的参数化精确控制和动作跟踪[4]。数据交换的具体实现步骤如下。
1)在EON Studio中建立InEvent(事件输入)和Out-Event(事件输出)节点。
2)在EON Studio中建立Script节点或者其他功能节点,将InEvent或者OutEvent节点连接至相应接口;在Script节点中添加脚本代码,对输入事件参数进行处理,并输出相应事件参数。
3)在外部程序中添加OnEvent函数对OutEvent(事件输出)进行监听,同时添加SendEvent函数将系统的指令参数发送给InEvent节点[5]。
图3 EON与高级语言交互原理[6]
3.2.2 人机交互功能
人机交互是指受训人员对虚拟场景中模型的操作和反馈,直接关系到虚拟仿真的效果。EON内部提供了200多个传感器、动作等节点,可以供设计者方便地实现人机交互,EON的Script脚本节点还能够对事件消息进行编程处理,实现复杂的逻辑处理[7]。
在本系统中,人机交互行为主要是通过EON提供的传感器触发、事件驱动和路由机制实现的。EON提供传感器节点以接受用户操作指令,然后由路由将相应的事件消息传送给其他功能节点,最终实现对模型的操作或者反馈。其基本原理如图4所示。
图4 人机交互原理图[8]
在交互过程中,传感器一般是指EON中感知用户鼠标、键盘事件的功能节点,响应用户的操作;其他功能节点主要是对传感器节点发送的消息进行响应或处理,能够直接操作模型,并通过输出设备反馈给用户,如Walkabout节点能够根据用户键盘操作实现类似CS游戏的行走、跑步动作,方便用户在虚拟场景中运动;CollisionObject节点能够提供模型碰撞检测功能,实现真实物理世界的碰撞效果[9]。
3.2.3 维修动作的设计
在引擎的设计过程中,维修动作的设计对模型控制、故障生成和动作跟踪影响很大。维修动作要求能够适应各类故障,实现各类维修动作的灵活组合,并能够反馈给引擎,实现对动作的跟踪。系统主要从以下两个方面实现对维修动作的设计:
1)在模型动作设计时,将EON模型中所有动作拆分细化成基本的原子动作,所有的动作都是在原子动作的基础上组合而成的;同时将这些原子动作的消息指令存储到数据库中,引擎能够根据当前模型故障和维修动作序列向EON模型发送动作消息指令,实现动作的组合;
2)在引擎的控制模块设计时,模型接受到的传感器指令全部传输至引擎,由引擎处理是否响应动作;所有模型的动作指令均由引擎控制发送,并由引擎记录到数据库中,实现对用户动作的跟踪。维修动作的指令传输实现如图5所示。
图5 模型指令传输逻辑图[10]
通过对模型动作的设计,引擎能够根据任意模型故障的状态,灵活组合各种原子动作形成相应的维修序列,并能够跟踪用户的操作,实现模型控制、动作跟踪等功能。
系统的核心工作引擎通过上述关键技术的实现,屏蔽了底层对模型的具体操作,解决了传统虚拟训练系统设计的局限,保证了系统设计的通用性和可扩展性,实现了系统对模型的操作和功能要求,为受训人员提供了三维的、可交互的虚拟维修训练场景。图6、图7为虚拟维修训练场景。
图6 虚拟维修发动机场景
图7 虚拟整车场景
4 结语
虚拟现实为装备维修训练提供了强有力的技术手段。论文针对装备维修训练的现状和传统虚拟系统设计上的缺陷,对EON软件平台进行了封装,设计实现了系统核心工作引擎,简化了上层应用系统的设计,开发了一个三维的、可交互的虚拟维修训练系统,为装备维修提供了现代化的、经济实用的训练手段,解决了实物训练耗费大、限制条件多、安全性低的问题,具有广泛的应用前景。
[1]王炜.虚拟仿真系统导论[M].北京:国防科技出版社,2007.
[2]王岚.EON虚拟现实软件应用教程[M].天津:南开大学出版社,2004.
[3]于辉,赵经成,付战平,等.EON入门与高级应用技巧[M].北京:国防工业出版社,2008.
[4]亓永峰,马亮.武器装备虚拟维修训练系统的设计研究[J].舰船电子工程,2010,30(1):133-136.
[5]赵金才,王宪成,孙坦,等.基于EON Studio 5.0的装甲车辆发动机虚拟维修关键技术研究[J].装甲兵工程学院学报,2008,22(1):46-48.
[6]刘诚,付宜利.基于EON的交互式虚拟装配仿真系统的设计与实现[J].东北林业大学学报,2009,37(8):109-111.
[7]EON Reality Inc.EON UserGuide 6.0[Z].USA:EON Reality Inc,2008.
[8]EON Reality Inc.EON ReferenceGuide[Z].USA:EON Reality Inc,2008.
[9]韩放,薛彦兵.3D虚拟环境中使用EON Studio软件的碰撞处理研究[J].河北省科学院学报,2010,27(1):27-30.
[10]EON Reality Inc.EON SDK 6.0[Z].USA:EON Reality Inc,2008.