摘 要:【目的】为解决现有虚拟装配环境中装配工作不够具体、装配精确性无法保证的问题,构建减速器虚拟装拆系统。【方法】采用SolidWorks和3ds Max软件建立减速器实验场景,完成建模和格式处理,并收集装配关系信息。基于分层割集法来确定装配序列规划的装配过程模型,并解决装配序列问题;使用包围盒碰撞检测算法处理装配过程中零件间的干涉或穿透问题。在Unity 3D平台中导入减速器3D模型,编写控制脚本,通过鼠标、键盘等交互方式,实现碰撞检测及虚拟装拆操作,并设计系统交互界面。【结果】实验结果表明,在应用所构建的系统后,能显著提高用户体验和操作效率。【结论】与传统装配方法相比,虚拟装拆操作不仅提高了教学和培训效果,还能有效降低设备损耗和成本。
关键词:虚拟仿真;仿真设计;装配序列;碰撞检测
中图分类号:TG95;TP391.9" " 文献标志码:A" "文章编号:1003-5168(2024)22-0027-05
DOI:10.19968/j.cnki.hnkj.1003-5168.2024.22.006
Design and Implementation of Reducer Assembly Simulation Based on Virtual Reality
Abstract:[Purposes] To address the issues of lack of specificity and insufficient assembly precision in current virtual assembly environments,the reducer virtual assembly and disassembly system is constructed.[Methods] The study employs SolidWorks and 3ds Max software to establish the experimental scene for the reducer, completing modeling and format processing, and collecting assembly relationship information. Based on the layered partition method, the assembly process model for assembly sequence planning is determined to solve the assembly sequence problem. The bounding box collision detection algorithm is used to handle interference or penetration issues between adjacent parts during the assembly process. The 3D model of the gearbox is imported into the Unity 3D platform, where control scripts are written. Through mouse and keyboard controls, collision detection and virtual assembly and disassembly operations are realized, and the system interface is designed.[Findings] Experimental results show that the constructed system significantly enhances user experience and operational efficiency.[Conclusions] Compared with traditional assembly methods, virtual assembly and disassembly operations not only improve teaching and training effectiveness but also effectively reduce equipment wear and costs.
Keywords: virtual simulation; simulation design; assembly sequence ; collision detection
0 引言
在现代工业制造中,机械零件装配是一个非常重要的环节,其装配性能的好坏将直接影响产品的质量、可靠性及生产效率。然而,现有的虚拟装配方法一般是在Solidworks、UG等三维软件中绘制装配图、爆炸图,或者将装配过程以动画的形式展现出来[1]。目前,这种虚拟装配方法对真实的装配环境模拟不够具体,操作者依赖大量的图纸、手册及个人经验来指导操作,且因人为因素和操作技巧的不足,往往无法保证装配的精确性和正确性,导致装配效率低下、成本增加等[2]。为了解决上述问题,虚拟现实(virtual reality,VR)技术应运而生,为机械装配提供了全新的解决方案。
在虚拟仿真技术的应用中,宋辛辛等[3]、张宏帅等[4]利用Solidworks、3ds Max等软件建立实验场景,并以Unity 3D为开发平台,实现了对液压元件的虚拟拆装;谢振清等[5]利用碰撞检测、坐标转换等技术,通过交互控制实现了模型的移动、旋转、装配功能。 上述研究在一定程度上实现了某些机械产品的虚拟化,但在装配过程中仍以动画的形式控制装配路径,并没有求解出最优的装配序列。
因此,本研究以减速器拆装实验为研究对象,利用分层割集法对来确定装配序列规划,并用包围盒碰撞检测算法对系统交互界面进行设计。
1 系统总体设计
1.1 系统整体架构
减速器装配系统的整体框架可分为模型层、控制层和应用层。模型层主要使用Solidworks软件和3ds Max 软件来完成减速器建模、格式处理等工作;控制层通过在Unity 3D 中导入减速器模型资源,从而完成碰撞检测、虚拟装配等工作;应用层通过PC端来对减速器虚拟装配场景进行发布。系统整体架构如图1所示。
1.2 系统开发流程
本研究以减速器的拆装为例,进行虚拟装配系统设计,开发流程图如图2所示。其中,技术方案主要包含以下四个步骤。首先,在Solidworks软件中完成减速器的建模工作,并收集用于虚拟装配时的装配关系信息;其次,根据减速器装配时零件的配合及约束关系,使用分层割集法来确定装配序列规划的装配过程模型,得到装配序列规划;再次,将减速器的三维模型导入到3ds Max中,制作减速器装配过程动画,并将生成的资源文件导入到Unity 3D平台中;最后,在Unity 3D平台软件中添加控制减速器拆装的相关脚本,并通过鼠标、键盘等控制方式,实现对减速器装拆操作。
2 减速器模型处理与装配序列规
2.1 减速器模型处理
当减速器模型建立后,需要导入到3ds Max软件中进行优化处理,从而提高虚拟仿真系统的流畅性,减少系统运行时所占用的内存。因此,需要在不影响减速器模型准确的前提下,通过调整面域值、偏差量等参数来减少模型的面数[6]。 模型优化前后对比如图3所示。优化前的模型面数为97 750、顶点数为48 327;优化后的模型面数为69 204、顶点数为34 054。优化后模型面数减少了29.2%,顶点数减少了29.5%。
2.2 减速器模型装配序列规划
减速器在装配过程中,需要按照一定的装配序列将零件组装起来,组装序列是否合理将直接影响后续的装配效率及质量[7-9]。本研究采用分层割集法对各个组件中的零件装配序列进行求解,从而获得减速器最优装配序列。求解流程如图4所示。
为了求解最优的装配序列,需要对零件进行编号,如图5所示,零件名称见表1。为了降低计算量,将减速器划分为3层。其中,聚族1零件包含12、13、27,聚族2零件包含4、5,聚族3零件包含7、8,聚族4零件包含22、23,聚族5零件包含24、25,聚族6零件包含螺塞1、螺塞垫片2。
子装配体ZPT1包含齿轮轴28、高速轴轴承9,子装配体ZPT2包含低速轴18、平键17、齿轮19、定距环20、低速轴轴承21,子装配体ZPT3包含上箱盖10、通气器14、螺钉15、窥视孔盖16,子装配体ZPT4包含聚族6、 箱体26、油标尺3。
根据分层割集法,求解出的每一层装配序列见表2。减速器的最优装配序列为:(26-2-1-3)-(18-17-19-20-21)-28-9-11-(10-16-15-14)-8-7-25-24-5-4- 22-23-27-13-12。
3 减速器元件交互功能实现
3.1 碰撞检测算法
在减速器虚拟拆装过程中,为避免零件之间产生干涉,要对每个零件添加包围盒碰撞器。Unity内置的碰撞器有盒碰撞器(Box Collider)、球碰撞器(Sphere Collider)、胶囊碰撞器(Capsule Collider)和网络碰撞器(Mesh Collider)。其中,Box Collider结构简单、效率高,适用于立方体,特别是长方体对象之间的碰撞;Mesh Collider密封性比较好,适用于形状比较复杂的零件。因此,对形状简单、类似于长方体的零件可添加盒碰撞器Box Collider(Box Collider),对形状复杂的零件可添加网络碰撞器(Mesh Collider)。
对复杂的模型采用网络碰撞器(Mesh Collider),虽会提高装配精度,但也会降低碰撞效率。因此,本研究使用AABB层次包围盒碰撞检测算法,以提高碰撞效率。
3.1.1 AABB包围盒树的建立与更新。设组成对象的基本元素集合为S,对集合S采用自顶向下的方法构造包围盒树[10-11]。自顶向下构造包围盒树如图6所示。
减速器零件具有刚体属性,因此,包围盒的更新只考虑对象运动,如果对象零件坐标点发生变化,就必须更新包围盒树。
设减速器零件沿[x]、[y]、[z]轴平移的向量为[T=(x,y,z)T],绕[x]、[y]、[z]轴的旋转参数为[θ]、[φ]、[ϕ],各坐标轴旋转对应的变换矩阵见式(1)至式(3)。
[Rot(x,θ)]、[Rot(y,φ)]、[Rot(z,ϕ)]合成的旋转矩阵见式(4)。
减速器零件经平移和旋转后,对其包围盒进行坐标转换,即可得到新状态下的包围盒。
3.1.2 AABB包围盒间的相交测试。由分离轴定律推理可知,如果两个AABB包围盒在三维坐标轴上的投影区域都重合,则其必定相交[12]。
设AABB1的最小、最大顶点坐标分别为[P1(L10,L11,L12)]、[P2(H10,H11,H12)],AABB2的最小、最大顶点坐标分别为[Q1(L20,L21,L22)]、[Q2(H20,H21,H22)]。要判断两个零件是否相交,只要满足式(5)中的一条,即可判断两个零件不相交。
3.1.3 AABB层次包围盒与Mesh Collider 碰撞检测算法。为了提高零件碰撞检测的精确度,需要建立AABB多层次包围盒,如果检测到两个零件接触,Unity引擎中的OnCollisionEnter()就会被触发。
建立接触点集合[C=c0c1⋅⋅⋅cn-1cn]。设接触点为[c0(x0,y0,z0)],AABB1[(xmin,ymin,zmin),(xmax,ymax,zmax)]包围盒要满足的条件见式(6)。
如果接触点不在包围盒内,则从集合[C]中删除。一直递归到AABB1包围盒叶子的节点,此时集合[C]为零件最终的接触点。如果集合[C]是空集,则结束递归程序。当检测到包围盒内包含有接触点时,则证明两个零件相接触。
3.2 减速器零件的拾取与装拆功能
3.2.1 减速器零件拾取功能。为了使零件与零件在虚拟场景中发生接触时能及时被发现,需要给每个零件添加包围盒碰撞器,避免零件在装配时发生干涉等现象。当鼠标接触零件,且按下鼠标左键时,即可实现对零件的抓取移动。
3.2.2 减速器零件装拆功能。为了实现减速器的准确装配,该虚拟系统为每个零件设置有待装配的位置。在装配时,当零件被移动到对应的安装位置时,松开鼠标后,零件即被安装到对应位置。由于零件安装时,装配的第一个零件会被赋予Pigidbody重力属性,在完成上一个零件装配后,下一个零件才会被赋予以上属性,直至完成所有减速器元件的装配。
4 系统界面设计及发布
减速器拆装系统界面主要包含减速器装配和减速器拆解两个模块,如图7所示。在完成减速器拆装功能开发后,发布至Windows平台,通过键盘和鼠标等控制方式,实现对减速器的装拆操作。
5 结语
本研究主要对减速器虚拟拆装系统总体设计、分层割集法装配序列规划、交互功能实现和系统设计等进行研究,使用包围盒碰撞检测算法解决装配过程中可能存在的干涉或穿透问题,以Unity 3D软件为开发平台,并将减速器模型导入该软件,实现碰撞检测、虚拟装拆等功能,完成减速器虚拟装拆操作和系统交互界面的设计。
参考文献:
[1]吴琪.基于Unity 3D的车间虚拟现实系统研究与实现[D].武汉:华中科技大学,2020.
[2]马帅.基于Unity3D的机械产品虚拟仿真及增强现实应用技术研究[D].石家庄:河北科技大学,2017.
[3]宋辛辛,陈永当,顾金芋,等.基于Unity3D的液压元件虚拟拆装实验系统[J].微型电脑应用,2022,38(7):7-11.
[4]张宏帅,姜宝柱.基于Unity3D的数字化工厂建模仿真系统[J].河南科技,2020,39(29):71-74.
[5]谢振清.基于Unity3D的虚拟装配技术研究与实现[D].哈尔滨:哈尔滨工业大学,2018.
[6]田博.探讨3DSMAX在虚拟现实构建中三维模型建立的方法和技巧[J].中国管理信息化,2017,20(14):133-134.
[7]秦建华,邓晨韵,李稳.基于分层割集法的行星齿轮减速器的装配序列求解[J].制造业自动化,2017,39(3):60-63.
[8]ONESES M S, SONG C, WILLIAMSON L, et al. Hierarchical patterns of three-dimensional block copolymer films formed by electro-hydrodynamic jet printing and self-assembly[J].Nature Nanotechnology,2013,8:667-675.
[9]张根保,罗冬梅,冉琰等.基于相对熵排序的装配序列质量模糊评价方法[J].中国机械工程,2016,27(8):1089-1095.
[10]杨浩凡.基于Unity3D的虚拟肝脏手术形变建模与碰撞检测研究[D].南昌:南昌大学,2023.
[11]林菲,邹玲,张聪.基于混合层次包围盒的快速碰撞检测算法[J].计算机仿真,2023,40(9):454-457.
[12]李永强.基于Unity3D的神经外科虚拟手术训练软件设计与开发[D].杭州:浙江工业大学,2016.