马 天, 李洪安,, 马本源, 康宝生
(1. 西安科技大学计算机科学与技术学院,陕西 西安 710054;2. 西北大学信息科学与技术学院,陕西 西安 710127)
三维虚拟维护训练系统关键技术研究
马天1, 李洪安1,2, 马本源1, 康宝生2
(1. 西安科技大学计算机科学与技术学院,陕西 西安 710054;2. 西北大学信息科学与技术学院,陕西 西安 710127)
针对三维虚拟维护训练中设备拆装操作复杂的问题,提出一种通用的拆装关系数据格式和处理方法,可方便定制各种设备的拆装训练应用;提出一种高效简洁的自动轴对齐约束拆装操作方法,并以此设计实现了一种二维屏幕空间的移动拖拽器。通过OSG引擎进行场景渲染和管理,分析了系统的体系结构和场景组织设计,开发了一套虚拟拆装训练三维仿真系统,实现了拆装操作记录的统计和报表输出。应用结果表明,该系统具有较好的实时性和显示效果。
虚拟维护训练;三维仿真;拆装关系;轴对齐约束
飞机、舰船等复杂设备的零部件较多、关系复杂、价格昂贵,在复杂设备保养维护训练方面,针对已成熟产品的维护需求,迫切需要引入虚拟装配和虚拟维修技术。虚拟装配仿真技术主要应用于产品的设计和制造领域,其应用主要面向产品设计工程师,侧重于设计、分析、验证、评估和优化产品装配过程[1];虚拟维修仿真技术主要应用于维修性设计、保障性规划和人员培训等领域[2-3],其中前两个领域主要面向产品设计和维修工程师,侧重于设计、分析、验证、评估和优化产品维修过程;第三个领域主要面向设备使用人员,侧重于用户操作训练。
虚拟维护训练主要面向设备日常保养维护人员,侧重于设备的拆装演示和交互训练,使操作人员熟练掌握正确地拆装操作步骤和过程。严格意义讲其并不属于传统的虚拟装配或虚拟维修系统,而是用于维护操作训练和统计,着重于拆装标准化顺序和装配关系的熟悉训练和测评。文献[4]最早提出虚拟维护训练桌面式仿真系统,并基于OpenGL设计实现了离心泵的虚拟车间环境,可完成基本的拆装训练,能够读取STL模型;文献[5]基于 OpenGL设计并实现了一种桌面式虚拟仿真训练教学系统,但系统的渲染效果和功能扩展不够丰富;文献[6]针对虚拟维修过程中部件间关系描述混乱的问题,提出了一种Petri 网和语义网络结合的过程建模方法,在基于OSG 的飞机电子设备三维虚拟设备维修平台上验证了方法的有效性,但每个步骤的规范约束格式不太直观;文献[7]针对单点式力反馈器工作空间狭小的问题,研究了改进的动态空间匹配算法和代理点移出视锥体时的漫游技术,但方法只针对特定设备;文献[8]设计实现了数字机床的虚拟拆装仿真培训系统,但只能进行动态拆装演示,不能进行用户拆装交互操作;文献[9]基于EON软件平台开发了一套推土机变速箱虚拟维修训练系统;文献[10]基于VRP软件平台实现了船舶柴油机三维场景及虚拟拆装仿真过程,该类系统受商业软件功能和接口限制,显示效果和再开发自由度受到一定限制;文献[11]基于OSG设计实现了一套某型号电牵引采煤机虚拟装配应用系统,重点描述了系统的软硬件系统的结构、方案和结合UG和3DMax的精细建模方法,该系统功能完备、交互性好,但没有操作步骤规划、控制等关键技术的具体研究。
综上所述,本文针对三维虚拟维护训练中设备拆装操作复杂的问题,提出了一种通用的拆装关系数据格式和处理方法,可方便定制各种设备的拆装训练应用;提出了一种高效简洁的自动轴对齐约束拆装操作方法,并以此设计实现了一种二维屏幕空间的移动拖拽器。通过OSG进行场景渲染和管理,分析了系统的体系结构和场景组织设计,研究开发了一套虚拟拆装训练三维仿真系统,实现了拆装操作记录的统计和报表输出;还实现了拆装过程中的错误点记录,并可供后续评价参考。
为满足可自由定制训练设备和加载多种格式的设备三维模型的需求,需将每个设备的拆装关系信息写在对应的数据文件里,模型文件可根据需要选择3DMax、Maya等主流三维建模工具,以制作高品质的设备模型。
1.1数据文件设计
数据文件应包括设备拆装所需的各个零件的装配位置、装配起始位置、拆装序列、操作类型等信息。为增加操作灵活性,特别定义出同组无序拆装零件,例如固定某个零件的多组螺钉、螺栓,这样操作时可随意拆解某一组,当所有组都拆解完毕后方能进行后续的操作;特别定义出非拆除零件,特指还需继续拆解的子零件,例如桨毂拆下后不能直接放入物品栏,还要继续拆解每一个桨叶。操作类型可简化为旋转、平移和综合3种,如转开联动轴、卡箍等操作为旋转;取下套管、螺钉等分离操作为平移;拆解螺母需要同时完成旋转和平移操作,为综合操作。最终设计的数据格式如图1所示,第1~4行为文件头数据,包括设备名称、零件个数、总步骤数、同组无序拆装零件的个数及其对应编号、非拆除零件的个数及其对应编号;第5~n行为零件的基本数据(每个零件信息占一行),包括零件的装配坐标、装配起始坐标、拆装序列、操作类型、名称等信息。
图1 拆装关系数据文件示例
1.2数据处理流程
拆装关系数据的处理流程如图2所示,首先读取设备数据文件,并根据数据初始化每个零件的位置和显示状态,装配模式需要隐藏拆除零件。然后开始训练操作,拆解模式:直接在零件上点击进行操作拾取,根据当前操作序列判断拾取是否正确,如果正确则添加拖拽操作器进行拆解操作,正确拆解后若是非拆除零件则直接进行下一步,如果不是则将拆下零件隐藏,并放入物品栏;装配模式:直接在物品栏里选择待装配零件,根据当前操作序列判断选择是否正确,如果正确则从物品栏里删除该零件、并在场景中显示该零件,并添加拖拽操作器进行装配操作,正确装配后直接进行下一步。在推进拆装序列前,还要对同组无序拆装的零件进行处理,需要在组内进行序列推进,当所有组都拆解完毕后方进行整体序列推进。最后,当拆装序列推进到最大拆装步骤后,结束训练操作。
图2 拆装关系处理流程图
对于桌面式的三维拆装操作,一般用二维鼠标操作,但没有沉浸式的直接在虚拟空间三维操作灵活。为简化三维空间的移动操作,通过继承osgManipulator::TranslatePlaneDragger类[12],设计了一种二维屏幕空间移动拖拽器,在构造函数时,需将观察空间的(0,0,1)向量逆向变换到三维世界空间,设置移动面的法线为变换后向量,以使移动面为正对观察者的屏幕;在handle()函数里处理鼠标拖拽操作时,需将二维屏幕空间的位移映射到移动面上。当选中添加拖拽器时,同时需将拖拽器添加到拾取检测的节点路径里、调用handle()函数处理拖拽初始化,以实现直接拖拽选中零件的操作。
因为模型类型、复杂度无限制,所以没有引入传统物理引擎进行碰撞检测,这里提出了一种自动轴对齐约束的方法,通过临近自动约束与轴对齐,可以避免拆装时的复杂碰撞检测,并可根据装配坐标和装配起始坐标进行拆装操作完成判断。具体方法的几何示意如图 3所示,虚线框面为移动面,P0点为装配位置,P′1点为装配起始位置,L为P0P′1的距离,α为P0P1与P0P′1的夹角。对于拆解操作,如果使用屏幕空间移动拖拽器在移动面上沿着P0P1方向拖动操作,为保证拆解物体根据约束关系正确移动,需将位移投影到 P0P′1方向,直到P′1点,即确定拆解后,零件转变成沿着P0P1方向移动,即跟随鼠标拖动。对于装配操作,初始在拖拽器的移动面进行拖动操作,如果当前位置与装配位置P0点的距离小于L,且夹角α小于一定角度,即认为接近安装位置,需将零件从当前位置移动到P0P′1的投影位置,即自动进行零件轴对齐,确保根据约束关系正确移动到装配位置;当与P0点距离小于L/10,即认为达到安装位置,通过OSG更新回调实现慢放动画的形式展示最后一段装配过程。
图3 自动轴对齐约束方法示意图
3.1数据驱动设计实现
该虚拟训练系统采用数据驱动方式,数据关系如图 4所示。通过读取拆装关系数据自动加载设备零件模型、初始化每个零件的状态和位置,并根据数据控制拆装序列判断、拆装检测和操作约束,所有操作过程数据都需进行记录,结束后进行统计输出。整个三维虚拟场景采用OSG进行管理和绘制,设备零件的位置、状态、界面和文字信息更新通过OSG的更新回调机制实现;用户鼠标、键盘的交互操作通过OSG的事件回调机制响应实现。
图4 数据关系框图
3.2场景组织设计实现
OSG是通过场景图的方式管理和绘制三维场景,采用一种自顶向下的分层树形结构来组织数据,以提升渲染的效率。场景图树结构的顶部是一个根节点,从根节点向下延伸,各个组节点中均包含几何信息和用于控制其外观的绘制状态信息。场景树结构如图 5所示,图中圆角矩形框为OSG的基本类型结点,矩形框为实际界面、素材等对象。场景树分为背景、设备零件、界面 3个部分,其中:背景和界面部分都是使用相机类型结点进行管理,能控制背景部分前需渲染以保证不会遮挡其他对象,以保证界面部分后续渲染对象始终在最上层显示;设备结点部分所有零件都放在自定义的移动控制结点下,选中结点并通过添加自定义拖拽器结点控制拆装操作。
图5 场景结构组织
3.3操作记录统计实现
需要记录的操作数据包括总操作次数、错误操作次数、错误点和错误类型,根据专家评价权重计分,评价权重可根据不同训练设备进行设置。训练结束后可直接弹出统计结果,并生成 Excel统计报表。Excel统计报表的实现是基于开源xlslib库,设计了一个Excel报表生成类,通过调用xlslib库中workbook、worksheet、cell_t类的功能函数,实现了Excel表格的常用单元格内容、格式设置等功能函数。
系统运行硬件环境:CPU为Inter Core2 Duo T5870/2.0 GHz,内存为DDR II 800/2 G,显卡为NVIDIA GeForce G105 M/512 M,硬盘为SATA 250 G /7200/16 M;操作系统为Windows XP SP3,开发软件环境为Visual Studio 2005 SP1和OSG 2.8.2。基于osgWidget设计实现了人性化的系统界面,包括右侧菜单栏、底部物品箱栏和工具条等。某型飞机尾桨设备的拆装应用效果如图 6所示,为零件浏览时的高亮、透视三维显示效果。
图6 某型飞机尾桨设备应用效果图
通过在场景中添加渲染状态监测StatsHandler,实时记录不同复杂程度设备模型在不同状态下的帧率,为了与本文提出的自动轴对齐约束方法(简称自动对齐法)进行拆装操作效率进行对比,分别测试了典型物理引擎 ODE和osgPhysics进行安装碰撞检测(基于网格形状检测)的效率,见表1。
表1 显示帧率记录表(帧/秒)
由表1可见,模型面片数在200万以下时,该系统的显示帧率在30帧/秒以上,可完全满足实时交互训练的要求;当超过 200万时,实时性有所下降,但对于特别复杂的设备,进行整体拆装训练过于复杂,一般需分解成若干子部分,这样模型面片数一般都可以控制在 200万以下。通过本文的自动轴对齐约束方法进行拆装操作时,因为每帧只进行装配距离的判断,对系统帧率的影响小于0.2,所以基本不影响拆装交互操作的实时性;而通过ODE和osgPhysics进行安装碰撞检测时,在模型复杂度增加后帧率明显下降,会明显影响交互感受。表中没有记录模型加载时间,当面片数超过 100万时,初始加载模型可明显感觉到停顿,这可以通过进度条的形式提示加载等待,也不会影响拆装交互操作的实时性。
本文设计实现的复杂设备维护拆装训练三维仿真系统,属于桌面式三维虚拟系统,基于 OSG三维渲染引擎开发。通过提出的通用拆装关系数据格式和数据处理流程,可方便定制各种设备部件的拆装训练应用,并可自由加载3DMax、Maya等主流三维建模工具制作高品质的设备模型;根据提出的自动轴对齐约束拆装操作方法设计实现的二维屏幕空间移动拖拽器,可协助正确地进行训练操作,避免操作复杂的碰撞检测,可提高操作效率;实现了拆装过程中的错误点记录,并可对训练操作进行统计评分。本文没有考虑实际拆装过程中人员活动范围对拆装操作的影响,使用时可配合人员操作三维动画进行全面演示。该系统可用于复杂设备保养维护人员的拆装操作培训,成本较低,使用方便,直观地操作感受,可以提高维护人员的培训效率,降低拆装操作风险和培训成本。
[1] 刘佳, 刘毅. 虚拟维修技术发展综述[J]. 计算机辅助设计与图形学学报, 2009, 21(11): 1519-1534.
[2] 焦玉民, 张琦, 屈宏伟. 虚拟维修技术研究与展望[J]. 中国工程机械学报, 2011, 9(3): 359-366.
[3] 王文举, 李光耀. 虚拟维修仿真技术的研究与进展[J].系统仿真学报, 2011, 23(9): 1751-1757.
[4] Li J R, Khoo L P, Tor S B. Desktop virtual reality for maintenance training: an object oriented prototype system (V-REALISM) [J]. Computers in Industry, 2003, 52: 109-125.
[5] 贺少华, 吴新跃. 基于 VC++和 OpenGL 的大型机械装置虚拟教学训练系统的开发[J]. 系统仿真学报, 2009, 21(4): 1059-1062.
[6] 刘家学, 刘涛, 耿宏. 基于Petri 网和语义网络的虚拟维修过程建模与应用[J]. 图学学报, 2013, 34(2): 113-118.
[7] 卢丽婷, 刘林, 熊巍. 基于单点式力反馈器的虚拟装配研究[J]. 图学学报, 2014, 35(2): 280-284.
[8] 周智勇. 虚拟拆装仿真培训系统的研究和开发[D]. 长沙: 湖南大学, 2010.
[9] 王斌, 周建钊, 焦玉民. 一种推土机变速箱虚拟维修训练系统[J]. 中国制造业信息化, 2011, 40(9): 66-69.
[10] 潘玉平, 万隆君, 徐轶群, 等. 船舶柴油机虚拟拆装仿真[J]. 交通信息与安全, 2012, 30(2): 103-105.
[11] 王学文, 秦毅, 杨昕宇, 等. 采煤机虚拟现实装配仿真系统研究[J]. 图学学报, 2015, 36(2): 268-273.
[12] Wang R, Qian X L. OpenSceneGraph 3 cookbook [M]. Birmingham: Packt Publishing, 2012: 210-217.
Key Technology of 3D Virtual Maintenance Training System
Ma Tian1,Li Hongan1,2,Ma Benyuan1,Kang Baosheng2
(1. College of Computer Science and Technology, Xi′an University of Science and Technology, Xi′an Shaanxi 710054, China; 2. School of Information Science and Technology, Northwest University, Xi′an Shaanxi 710127, China)
In order to solve the problem of complex operation in 3D virtual maintenance training, a general data format of disassembly and assembly relation was proposed, and the data processing method was realized, which could be used to customize training application for various equipments easily. A simple and efficient disassembly operation method was presented, which has automatic shaft alignment constraint, and a 2D screen space dragger was designed and realized based on that. A 3D virtual maintenance training simulation system was developed, and the virtual scene was rendered and managed through OpenSceneGraph (OSG) engine, which architecture and scene organization were analyzed. The disassembly operation record and report output were realized. The application results show that this system has good performance on real-time and 3D display effect.
virtual maintenance training; 3D visual simulation; disassembly and assembly relation; shaft alignment constraint
TP 391.9
10.11996/JG.j.2095-302X.2016010097
A
2095-302X(2016)01-0097-05
2015-09-21;定稿日期:2015-10-11
陕西省教育厅科研计划项目(2013JK1148)
马天(1982–),男,河南商丘人,副教授,博士。主要研究方向为虚拟现实与三维视景仿真。E-mail:matian@xust.edu.cn