刘桂峰 伍 洁
(海军工程大学船舶与动力学院1) 武汉 430033)(海军工程大学管理工程系2) 武汉 430033)
利用现代科学技术成果,采取先进训练方法,是推进军事训练转变的重要内容,也是提高信息化条件下作战能力的有效途径。虚拟现实技术(Virtual Reality,VR)已发展成为涉及众多学科的高新实用技术之一,并在军事、医学、设计和娱乐等领域得到了广泛的应用[1]。虚拟维修是虚拟现实技术近年来的一个重要研究方向,也是海军当前装备维修训练的重要方法。结合部队实际装备积极开展模拟训练,对于提高训练质量、缩短试验、研制和训练周期、降低训练风险、减少训练消耗具有重要意义,并在各级指挥训练、武器装备操作训练和部队实兵对抗演练中得到广泛应用[2~4]。
系统的设计从海军装备的信息化建设出发,以适应信息化条件下装备维修发展趋势为目标,具体应考虑以下几方面的需求:1)信息化条件下装备维修保障需求;2)现代武器装备对人员维修能力与效率的需求;3)资源与信息共享的需求;4)装备维修决策的需求;5)实际过程中维修流程仿真与优化的需求。
某舰某装置虚拟维修系统,以Vega Prime交互式、实时可视化仿真应用软件为仿真开发平台,以VC++为开发语言,以Creator为三维实体建模软件,后台数据库采用SQL_SERVER,设计为基于组播方式数据传输的分布式系统,系统既可以独立单机使用,又能作为网络版进行批量培训和远程维修支援使用[5]。
Vegaprime是MPI公司开发的用于开发交互式、可视化仿真应用的软件平台和工具集,它最基本的功能是驱动、控制、管理虚拟场景并能够方便地实现大量特殊视觉和声音效果,它还提供了多种方便实用的可视化编辑设置工具。具有易用性、高效性、集成性、可扩展性、跨平台性等特点。由于Vega Prime大幅度减少了源代码的编写,使软件的维护和实时性能的优化变得更容易,大大提高了开发效率[6]。
MultiGen Creator是 Multigen-Paradigm公司专门针对可视化仿真行业应用特点推出的一个功能强大、交互的实时可视化三维建模软件系统[7],可以在它所提供的“所见即所得”建模环境中建立我们所期望的、优化的三维模型。Creator是目前模型建立和控制效果较好的软件,Creator是精确产品建模,可以直接用于模具生产,能够满足舰船装备建模尺寸精确的要求。
在满足系统需求分析的基础上,针对该装置的特点和部队使用需求,在综合分析系统的设计需求和工程需要的基础上,设计出某装置虚拟维修系统的总体框架如图1所示。
图1 系统总体框架
受训人员通过人机交互环境与虚拟环境交互,数据库中的信息在由硬件平台、系统平台、软件平台构成的支持平台导入虚拟环境,或直接由Vega软件编程导入虚拟环境。受训人员的受训记录和信息也可通过虚拟环境或者支持平台完善补充到数据库,从而实现受训人员共享数据库中的数据信息。
图2 减摇鳍装置虚拟维修系统实时仿真应用程序的设计
减摇鳍装置虚拟维修系统的实时仿真应用程序的设计思想是在收集减摇鳍装置故障信息、维修信息等应用环境数据[8]的基础上,通过驱动设备(计算机技术),以Creator和Lynx软件为支持工具,将编辑的数据、ADF 文 件 和FLT文件导入Vega应用程序,最后生成减摇鳍装置虚拟维修实时应用程序,如图2所示。
在开发虚拟系统之前,首先要创建装置的实体模型,由于装置的实体模型由诸多零件组成,为了方便后期编辑程序能够精确快捷的操控所要拆卸的元件,采用整体创建,分步导入的方式进行。
充分利用Creator的OpenFlight数据层级结构优势,在创建时装置模型即以“jyq”命名的组节点,并作为父节点创建代表各个元件的组节点(组节点为CREATOR默认的最高级的节点形式,其下可创建同级的组节点或是较低级的节点模式如体节点、面节点、点节点等)。在创建模型时,以相应零件的组节点为父节点,并在二维平面视图上参照设计图纸尺寸要求画出模型的侧向剖视图(Creator提供高精度的三维坐标平面,可精确把握实体尺寸),然后绕其轴车削出多个闭合的片面来构成其圆柱体结构的表面。按此方法一次创建构成减揺鳍的元件模型。
在Creator层级视图中,不同级别的节点记录着相应模型的结构信息[10],如“jyq”组节点下包含构成缸体的各个零件组节点,零件组节点下包含构成该零件的各个三维实体的体节点,对应的体节点下则包含组成立体结构的点、线、面,并均以节点的形式记录在层级视图中。
完成各个零件实体的建模后应对实体本身赋予相应的纹理材质信息,以达到仿真的视觉效果。
在完成实体的模型建立后,还要将模型导入到VEGA的Lynx中配置ADF文件,这样可以大幅减少源代码的编写。Lynx配置ADF文件流程如图3所示。
图3 配置ADF文件流程图
首先将各零件的FLT文件导入到Lynx中,并在Object模块中依次对导入的实体进行命名;随后在Scenes模块中加入所有已经命名好的Object实体;然后在Scene(场景)选项框中依次将所创建的实体模型名称项添加到选项框中,这样Lynx就会完成虚拟场景的创建;然后开始通过调整vgMotionMode类模块中的参数来设定一个运动模式;最后为了实现减揺鳍零件实体能够响应用户指令在虚拟场景中运动,在vgPlayers模块中创建相应的运动角色对象并分别绑定相对应的零件实体模型,这样每个零件实体模型就都被赋予了动态的运动角色对象,导出ADF文件后就完成了虚拟拆卸系统的前期准备工作。
Vega API函数库为用户提供了一整套方便实用的仿真应用程序接口,用户可以在C++平台上编写相应的控制代码,通过编译和链接后就可实现对虚拟场景的交互性控制。在完成了Lynx配置底层文件后,系统会生成一个*adf文件,整个VEGA程序代码都是围绕这个ADF文件编写的。VEGA程序流程如图4所示。
从流程图可以看出,VEGA应用程序可分为以下几个基本步骤:
1)调用vgInitSys()函数,对系统进行初始化;
2)创建仿真应用所需的各种VEGA类实例,通过调用vgDefineSys()函数读取事先定义好的某装置ADF文件;
图4 系统运行结构流程图
3)调用vgConfigSys()函数完成系统配置;
4)调用vgSynFrame()函数进行当前帧的应用进程同步处理,即保证应用进程与给定的帧频率同步;
5)调用vgFrame()函数完成当前帧的剔除和绘制进程及其相关处理;
vgSyncFrame()函数和vgFrame()函数一起决定了VEGA进程能够与设定的帧频率保持同步,从而能够保证渲染出流畅的动态虚拟仿真画面,再加入相应的交互式控制代码就可以完成各种复杂的仿真应用。
下面是VEGA编程的总框架:
本文在虚拟现实技术的基础上,采用Creator建立三维模形,以Vega Prime为开发平台,Visual C++为开发语言,建立了一种可控制的交互式实时虚拟维修系统,并在海军某型舰艇的减摇鳍装置的虚拟维修系统开发中应用。结果表明,该系统能够提供生动、逼真的虚拟维修效果,并在实际训练中缩短训练周期,提高训练质量和效果。
[1]袁利毫.船舶操纵模拟器视景仿真研究[D].哈尔滨工程大学,2007
[2]甘茂治.军用装备维修工程学[M].第2版.北京:国防工业出版社,2005
[3]朱文革,李世其,等.复杂装备虚拟维修系统设计[J].华中科技大学学报(自然科学版),2009,37(1):1~4
[4]胡小强.虚拟现实技术[M].北京:北京邮电大学出版社,2005
[5]王乘,李利军,等.Vega实时三维视景仿真技术[M].武汉:华中科技大学出版社,2005
[6]方琦峰,康凤举,张楚鑫,等.OpenGL在Vega Prime开发环境中的应用研究[J].计算机仿真,2008,25(6):191~192
[7]王乘,周均清,李利军.Creator可视化仿真建模技术[M].武汉:华中科技大学出版社,2005:6~8
[8]朱文革,李世其,尹文生.海军舰船装备的虚拟维修[J].中国修船,2004(5):37~40
[9]白向华,陶凤和,贾长治,等.基于主成分分析的装备保障能力薄弱环节模型研究[J].计算机与数字工程,2010,38(10)
[10]刘博,徐元铭,史红伟.基于Creator的列车运行三维建模技术研究[J].科学技术与工程,2010(30):7545~7549
[11]王志成,贾希胜,孙宝琛,等.集群装备战时维修保障业务优化排序模型研究[J].计算机与数字工程,2010,38(6)
[12]李永杰,胡坚,汪厚祥.舰艇装备维修信息数据仓库的建立与数据挖掘[J].计算机与数字工程,2010,38(10)
[13]胡长涛,徐淑娟.朱翠兰.基于Creator/Vega的虚拟校园漫游系统的研究与实现[J].机电产品开发与创新,2011(2):128~129