面向工业培训应用的虚拟现实装配系统研究
2019-11-12朱正伟祝磊饶鹏
朱正伟 祝磊 饶鹏
摘 要: 将虚拟现实技术运用到工业培训中可以弥补传统工业培训指导性不强、耗费资源度大等缺点。文中以工业模具装配为例,利用改进后的预分割OBB碰撞检测算法结合Petri网对模具的装配序列和装配实现方法进行了研究,描述了基于HTC Vive虚拟现实头盔和Unity3d,3ds MAX等软件开发的虚拟现实模具装配系统。最后,通过装配系统训练模块对面向工业培训中的虚拟现实交互训练功能的研究和实现进行详细的描述,结果表明虚拟现实装配系统的研究对工业培训指导有着很大的意义。
关键词: 虚拟现实; 装配系统; 交互技术; 工业培训; OBB碰撞检测; Petri网
中图分类号: TN911?34; TP391 文献标识码: A 文章编号: 1004?373X(2019)20?0058?06
Research on virtual reality assembly system for industrial training application
ZHU Zhengwei1, ZHU Lei1, RAO Peng2
(1. School of Information Science & Engineering, Changzhou University, Changzhou 213164, China;
2. Changzhou Institute of Optoelectronic Technology, Changzhou 213164, China)
Abstract: The application of virtual reality technology in industrial training can make up for the shortcomings of traditional industrial training, such as poor instruction and high resource consumption. Taking industrial mold assembly as an example, the assembly sequence and assembly implement method of mold are studied by using the improved pre?segment OBB collision detection algorithm in combination with Petri net, a virtual reality mold assembly system developed on the basis of HTC Vive virtual reality helmet, Unity3d, 3DMAX and other software is described in this paper. The research and implementation process of virtual reality interactive training function in industrial training are described in detail by means of assembly system training module. The experimental results show that the research of the virtual reality assembly system is of great significance to industrial training guidance.
Keywords: virtual reality; assembly system; interaction technology; industrial training; OBB collision detection; Petri net
0 引 言
创新是企业在当今全球市场取得成功的关键。通过有效地应用新技术和新工艺来解决当前工程设计实践中所面临的挑战在获得竞争优势[1]。虚拟现实(VR)应用技术旨在利用计算机技术对现实或者虚拟的世界进行仿真。随着科学技术的发展,虚拟现实技术在娱乐、动画、医疗康复和工业培训中都得到了广泛运用[2],它可以呈现出现实世界里获取不到的额外信息,使得在虚拟场景里的学习环境更加丰富有趣[3]。在工业制造业,为了降低成本、提高生产效率和产品质量,虚拟现实技术已经逐渐运用到工业生产培训中,尤其在高新技术行业,虚拟现实技术带来的作用是其他技术无法比拟的。因此,越来越多的学者开始关注如何制作出一种现实感强、体验度高的虚拟场景,配合高逼真度的三维重建模型进行工业培训[4]。
本文利用了Petri网对模具装配序列进行了系统的规划,并针对装配过程中的基于传统OBB碰撞检测算法的缺陷作出了改进,提出了一种预分割OBB碰撞检验,使得装配效果更加贴近真实,并由此建立模具虚拟装配系统,结合HTC Vive和Unity交互技术,完成模具虚拟装配。
1 面向工业培训应用的虚拟现实系统
虚拟现实装配系统一般用于工业培训,它是一个集教学、训练、考核为一体的机械零件装配仿真系统,其中训练模块的设计最为重要,要仔细研究零件的装配序列和装配路径规划[5],并验证装配设计和操作在现实中确实可行,通过显示器可视化显示装配过程,利用外部输出设备作为交互工具来对虚拟场景的零件模型按照要求进行装配[6]。但是,大部分传统的虚拟装配系统都是通过PC端构建虚拟场景,然后用鼠标对场景内的工业零件实现抓取、拖拽、安装等交互功能。这样的虚拟装配系统不能让用户切身体验到现实装配的感觉,而且对零件细节的观察也不够直观,有些细小的零件的装配过程并不能生动形象的体现出来[7]。从装配员工的角度来讲,必须全方位地对装配零件进行观察以确保装配过程万无一失,因此采用光学式的头戴显示器设备更具有优势。由于虚拟装配的原则是通过完成每一个装配零件空间位置以及姿态的调整,不断地对零件进行旋转移动,从而达到虚拟实验的目的,因此对交互设备的定位精度要求就很高。考虑到装配过程中零件数量较多布局可能比较分散,本研究中选择定位更加准确追踪范围更广阔的HTC Vive作为实现装配功能的交互设备。选用HTC Vive的理由如下:
1) HTC Vive作为头盔式显示器佩戴在用户的头部,其显示器所映射出来的画面会实时的跟着头部的运动而切换,而且手柄也会被定位器基站捕捉到在显示器里面显示,如同切身实地的在对零件进行操作。用户也可以在虚拟场景中获取相应零件的语音或者文字装配指导信息,无需将视线在手册和装配场景之间切换,从而将注意力集中在装配任务上。
2) HTC Vive强大的Lighthouse定位技术属于激光掃描定位技术,通过两颗激光传感器来识别头盔上的位置追踪传感器获取影像位置和方向信息,它几乎没有延迟[8],不怕遮挡,定位精度可达到mm级别,所以HTC Vive给用户带来了非常好的沉浸感,长时间佩戴也很少出现眩晕效果。
2 基于碰撞检测算法装配过程规划
2.1 基于Petri网的装配序列规划
由于装配过程是不可逆的,必须按照一定的装配顺序逐步的将离散的零件装配成一个整体,该原理和排列组合问题的原理极为相似。因此,可以通过Petri网解决离散事件系统对装配序列进行规划。本次装配模具分为上模和下模,建立Petri网装配过程模型。模具组成零件如表1所示。
根据模具的装配要求,分析各个零件在三维空间里的装配位置以及零件之间的相互约束关系建立Petri网装配序列模型,如图1所示。
表1 模具零件列表
图1 模具Petri网装配序列模型
表2 关联矩阵
对关联矩阵进行分析,结合装配属性,得到的模具下模装配序列为:大底板?凹模板?螺钉?销钉?限位柱?浮升销组件?凹模镶块?步距感应器。上模装配序列为:导柱?导正钉?卸料板盖板?固定板?冲头?上模座。最后上下合模完成整个模具的装配。
2.2 基于方向包围盒算法(OBB)的碰撞检测
在虚拟现实装配过程中,为了减少装配零件的碰撞和避免相互穿透效果的出现,需要对这些零件进行碰撞检测。OBB(方向包围盒)树用于包围盒的层次结构中,以检测对象之间的冲突,它是基于模型点的协方差矩阵来生成的,碰撞检测过程主要是判断对象的OBB树是否重叠,如果没有重叠,说明对象没有发生相互碰撞,如果发生重叠,则继续检测下一层OBB树,直至算法完成。由于装配过程零件会发生旋转,倒置等动作,OBB包围盒的方向会随着物体状态改变作出调整,因此选择此算法进行碰撞检测。
2.2.1 传统的OBB树算法
文献[9]提出了传统的OBB树算法,其主要分为两步:方向包围盒的计算和构建包围盒二叉树。方向包围盒的计算过程如下:假设模型是由多个三角形组成,定义第m个三角形的顶点为pm,qm和rm,利用顶点的均值和协方差矩阵计算所有的三角顶点,通过式(1)可以计算出平均值μ,式(2)可以得到协方差矩阵[Cjk]。
包围盒二叉树的构建遵循自上而下的方法,首先,用一个垂直于轴的平面分割包围盒的最长轴。然后根据三角形的中心点位置对每个三角形进行分类,一部分三角形在左边,其他的在右边。如果出现:
1) 树已经达到一定的高度;
2) 包围盒上的三角形的数目比前缀值低;
3) 包围盒内的三角形沿任意轴都不可分割的情况,则停止构建。创建方向包围盒树的步骤如图2所示,每一步都会对包围盒进行优化,最后获得一组类似于原始网格的包围盒。
图2 OBB树构建步骤
2.2.2 预分割策略改进OBB树算法
在许多情况下,由于装配模具包含许多附属零件,碰撞发生区域较窄,如果来对整个模具进行碰撞检测,包围盒内存在许多间隙会降低算法的效率如图3所示。
图3 传统OBB树方向包围盒
从图3可以看出,利用传统的OBB树算法对零件建立包围盒出现了许多空白区域,其他装配零件进入到这些区域但未与零件直接接触就会产生碰撞效果。因此使用预分割的方法来对传统OBB树算法进行改进,主要分为以下5步:
1) 根据模具表面可以构建出多个包围盒,并把这些包围盒放到队列Q中。
2) 选出Q中的第一个包围盒B,如果Q为空,则进入到步骤4)。
3) 从队列Q中选出一个包围盒Pi,并在B和Pi之间建立一个包围盒D,若[VOL(D)VOL(B)+VOL(Pi)+1<ε](ε为事先定义好的阈值),删除包围盒Pi,将包围盒D放到队列Q的末端,否则将包围盒B放到包围盒队列T中。
4) 如果T的长度大于N(N是一个经验值,大约是三角形数量的5%),增大阈值ε,将T放入到D中,进入步骤1)重新进行判断,否则进入到步骤5)。
5) 输出T的值。
预分割策略使得包围盒的效率得到优化,尤其是对那些外形不规则的零件效果更加明显,图4为优化后的零件包围盒。
图4 改进OBB树方向包围盒
2.3 实验结果和分析
碰撞检测前构建包围盒的过程不会对算法的执行效率产生影响,如表3所示。比较多个三角形碰撞检测所需平均时间,可以发现改进后的OBB树算法的效率比传统的OBB树算法效率提高了15%左右。
表3 三角形平均碰撞检测时间
3 装配系统关键交互技术研究及实现
3.1 软件开发环境交互训练脚本设计
联合Unity3d+VS 2017为开发平台对HTC Vive进行开发。利用3ds MAX对零件进行建模然后导入到Unity中,并对各个的零件添加装配信息提示,设定好零件的装配位置坐标,在VS2017中编写C#脚本来实现零件装配所需的各种交互功能,开发者可以在Unity视图中看到经过处理后的虚拟现实场景效果,然后在Unity中添加SteamVR插件,运行Unity后编辑处理好的场景画面会自动加载到头戴显示器,实现虚拟现实的效果。
采用C#来实现装配交互功能的开发与设计。装配动画教学演示采用Unity3d动画插件DoTween来实现零件的运动功能[10],高亮插件Shader Glow来实现高亮提示功能。装配训练模式分为无提示和有提示两个场景模块,无提示模块即待装配零件及其装配位置没有高亮的提示,完全靠自己的记忆把零件装配到正确位置。有提示模块待装配零件及其装配位置都会产生淡绿色高亮,提示学员们当前装配步骤并将高亮的零件抓取移动到产生高亮的位置,当零件位置与待装配位置的三维坐标距离和空间旋转角度差小于设定值时,利用Object.Destroy的方法即可吸附完成装配。但是,有些装配步骤需要安装的相同零件比较多,如果一个一个的进行装配比较耗时,为了减少麻烦,将相同的零件选出一个代表来,其他零件作为子零件,如果这个代表装配完成,编写脚本使用GameObject.SetActive的方法将其他相同的零件自动浮现出来。所有装配步骤都必须按照Petri网得到的装配序列来操作,只有装配好当前零件后才能对下一个零件进行操作。在训练模式中,交互脚本设计主要解决的功能如下:
1) 如何对零件进行抓取释放等操作。
2) 如何将高亮零件装配到指定位置就能吸附,并浮现与其相同的零件。
3) 如何按照指定顺序来对零件进行操作。
3.2 虚拟现实装配系统交互训练功能实现
3.2.1 零部件的抓取释放功能
在零件组装过程中每一步都要对零部件进行抓取释放,通过按下手柄的后置扳机Trigger键对零件进行操作放置到装配位置。
在Unity3d中,使用HTC Vive手柄实现对物体的抓取释放这个功能首先必须保证手柄碰撞体和零件处于碰撞中,而且要给目标零件添加铰链关节,接着将关节连接到手柄碰撞体上,然后按下扳机才能对零件进行操作。零件模型上要添加预分割OBB方向包围盒和Rigidbody刚体属性,因为碰撞的主动体一方必须是刚体才行,零件抓取如图5所示。
图5 零部件的抓取
3.2.2 识别安裝位置功能
识别零件的安装位置是实现装配功能的最主要的一步,也是零件装配的一个难点。因为在装配过程中,要精细地识别零件的位置,而且待装配零件和已装配零件难免会发生碰撞,需要实时的检测各个零件的相互的接触状态,判断是否发生碰撞的依据是在碰撞检测过程中给零件添加预分割OBB算法包围盒。如果零件进入到包围盒范围内触发碰撞,则颜色会发生变化,如图6所示。图6a)为零件自由下,图6b)为碰撞状态下。
图6 模型碰撞检测
由于装配过程中手难免会发生抖动,所以,给待装配零件和该零件装配位置设定一个合适的位置差就显得比较重要。首先给每个零件都要设定装配位置,在装配位置上有一个待装配零件的复制零件,这些复制零件都是透明的,用来高亮提示。在零件被抓取的过程中,系统会实时监测零件与安装位置的距离,如果待装配的零件与装配位置上的隐藏零件的距离和旋转角度小于一定值时,编写C#脚本使用Object.Destroy的方法会销毁待装配零件的刚体和碰撞体属性,该零件的角度和位置坐标会自动变成已设定好装配位置的坐标和角度,此时高亮消失,手柄发出震动,零件发出特效音,提示该零件装配已经完成。若该零件需要浮现子零件,则先让子零件在各自需要装配的位置隐藏,待零件装配好后编写脚本使用GameObject.SetActive的方法显示出来。零件装配过程如图7所示,识别安装位置功能流程图如图8所示。
图7 零件装配过程
图8 识别安装位置流程图
3.2.3 按照指定顺序装配零件
按照要求,所有的零件都必须按照根据petri网得到的理想装配序列进行装配,如果某一零件没有装配成功,则不能对后面需要装配的零件进行操作,因此,除了第一个装配零件以外的零件均不赋予Rigidbody重力和Box Collider的属性。只有当第一个零件装配好后,利用代码将赋予第二个待装配零件Rigidbody重力和Box Collider的属性,以此类推,直至最后一个零件装配完成。需要装配的零件和位置都会产生高亮提示,装配完成后,高亮功能关闭,下一步需要装配的零件及其装配位置产生高亮,如图9所示,凹模版和装配位置产生高亮提示,装配完毕后高亮关闭。核心部分代码如下(以凹模板为例):
图9 凹模板安装过程
图10 上模和下模装配完成图
图11 上下合模整体装配图
4 结 语
本文结合Petri网对模具装配序列进行了分析,对零件装配过程中可能发生的碰撞进行了研究,提出了一种基于预分割策略改进的OBB树算法,剔除了零件不可能发生相互碰撞的区域,使得用户与零件的交互更加贴切,并结合其技术以Unity3d游戏引擎作为开发平台,HTC Vive作为外部设备开发了一种交互式虚拟现实装配系统,该系统具有实时性、交互性的三维交互仿真的特点。学员们可以进入虚拟世界中对一比一的高精度零件模型实时进行装配。该系统已经在德国一家企业对新员工的培训中运用,并收到了良好的评价。实际证明,对新型工业虚拟装配交互技术的研究给工业机械装配模式开辟了一条新的道路,并对传统工业装配的改进带来了新的思路。
注:本文通讯作者为饶鹏。
参考文献
[1] SETH A, VANCE J M, OLIVER J H. Virtual reality for assmbly methods prototyping: a review [J]. Virtual reality, 2011, 15(1): 5?20.
[2] V?LAZ Y, ARCE J R, GUTI?RREZ T, et al. The influence of interaction technology on the learning of assembly tasks using virtual reality [J]. Journal of computing & information science in engineering, 2014, 14(4): 041007.
[3] 于修洪,项辉宇,牛凯.虚拟现实技术在机械产品装配中的应用[J].现代制造工程,2011(5):39?42.
YU Xiuhong, XIANG Huiyu, NIU Kai. Application of virtual reality technology in mechanical product assembly [J]. Modern manufacturing engineering, 2011(5): 39?42.
[4] 陈祥章,殷智浩,王志杰.虚拟实训技术在工业技术培训中的应用[J].实验技术与管理,2015,32(5):127?131.
CHEN Xiangzhang, YIN Zhihao, WANG Zhijie. Application of virtual training technology in industrial technology training [J]. Experimental technology and management, 2015, 32(5): 127?131.
[5] FAN J, YE Y, CAI J M. Multi?level intelligent assembly sequence planning algorithm supporting virtual assembly [C]// 2004 IEEE International Conference on Systems, Man and Cybernetics. Hague: IEEE, 2004: 3494?3499.
[6] ABIDI M H, TAMIMI A M E, AHMARI A M A, et al. Assessment and comparison of immersive virtual assembly training system [J]. International journal of rapid manufacturing, 2013, 3(4): 266?283.
[7] 安葳鹏,孟卫娟.基于虚拟现实的煤矿设备装配仿真系统研究[J].测控技术,2017,36(8):114?117.
AN Jiapeng, MENG Weijuan. Research on virtual reality coal mine equipment assembly simulation system [J]. Measurement and control technology, 2017, 36(8): 114?117.
[8] 冯建平,吴丽华,王军.基于HTC Vive的交互虚拟漫游系统设计研究[J].电脑编程技巧与维护,2018(3):115?116.
FENG Jianping, WU Lihua, WANG Jun. Design and research of interactive virtual roaming system based on HTC Vive [J]. Computer programming skills and maintenance, 2018(3): 115?116.
[9] GOTTSCHALK S. A hierarchical structure for rapid interference detection [J]. Proceedings of ACM siggraph, 1996, 30: 171?180.
[10] 邱建松.基于Unity3d的实时虚拟仿真系统的研究与实现[J].电子制作,2012(12):11?12.
QIU Jiansong. Research and implementation of real?time virtual simulation system based on Unity3d [J]. Electronic production, 2012(12): 11?12.