柳有权,李 婉,王愿超,徐 琨
基于碰撞检测强化的实时爆炸视图自动生成算法研究
柳有权,李 婉,王愿超,徐 琨
(长安大学信息工程学院,陕西 西安 710064)
爆炸视图在机械设计和装配实践中有着广泛的应用,可帮助人们直观地理解机械结构和装配关系。为解决仿真中的干涉问题,提出一种基于碰撞检测强化的实时爆炸视图自动生成算法。首先,构建各机械零件的方向包围盒,根据包围盒的大小和位置偏差决定零件的分离次序和方向,构造爆炸分离模型。其次,基于真实世界物体互斥属性,对装配的零部件进行实时碰撞检测,借助碰撞响应推动各部件进行进一步分离。该方法简单易实现,保证了零部件之间的合理移动,同时避免穿透现象的发生。实验充分验证了算法可行性和通用性。
爆炸视图;方向包围盒;碰撞检测;空间分离
爆炸视图(exploded view)通过将装配体中的零件按一定顺序、方向和距离层层拆分,可以构建出一种真实立体的表现形式,从而直观地呈现零部件复杂的装配关系。与剖视图、平面图、透视图等方式相比,爆炸视图更能清晰地展现内部零件的形状信息及其关联关系、装配序列以及安装路径。另外,爆炸视图不仅可以视为装配顺序的可视化载体,在产品构思、演示和宣传等过程中的装配、拆卸动画、工业制造、设备检测、场外维护过程中的装配指导、零部件手册等方面,爆炸视图有着广泛应用。
本文提出了一种基于碰撞检测的爆炸视图生成算法。通过构建各机械零件的方向包围盒(oriented bounding box,OBB),根据其位置偏差决定零件的分离方向,构建爆炸分离模型;另外基于真实世界物体互斥属性,对装配的零部件进行实时碰撞检测,借助碰撞响应推动各部件进行自动分离,从而生成爆炸视图效果,保证了零部件之间的合理移动,同时避免穿透现象的发生。本文还利用Hololens头盔结合手势实现了爆炸视图的交互操作,使操作人员更直观、更方便地了解整个装配体的内部结构。
爆炸视图常用于机械制造领域。于嘉鹏等[1-2]提出一种优先搜索层次化装配序列算法。该算法利用递归循环的思想可以实现复杂零件层次化爆炸视图的自动生成。通过多规则筛选算法,将整体复杂的任务分割成若干易于计算的子任务,构建干涉矩阵和交叉矩阵,对二者简单运算得出零部件间装配关系和次序优先级。另外,通过实时计算已分离部分的累积包围盒,确定剩余零部件方向矢量,从而自动生成有次序、有方向的层次性爆炸视图。但该方法在初始化时需要进行大量的相交检测,在爆炸过程中还需要根据算法不断计算包围盒间的距离,因此,爆炸视图生成效率低。
赵鸿飞等[3]提出了一种基于同步解除几何约束的爆炸视图自动生成方法。在定义拆卸轴方向后,建立了干涉矩阵和拆卸约束矩阵,按照同步解除几何约束的优先顺序对零部件进行划分,并判断是否具有母子装配关系。结合OBB算法和FDH (fixed direction hull)包围盒算法,由外向内分层等速率移动零件,实现了装配体爆炸视图的自动生成。但使用FDH包围盒,其算法测试复杂、计算量大、效率不高。
邢宇飞等[4]提出一种利用蚁群算法求零部件分离顺序的局部爆炸视图自动生成方法。该方法较上述2种方法更为简单,通过直接给定零件爆炸距离的算法构建爆炸效果。生成零部件之间的拆卸矩阵和连接矩阵计算内部布局及零件运动方向,但蚁群算法收敛速度慢、易陷入局部最优。如果初始信息不足,蚁群算法一般需要较长的搜索时间。
LI等[5-6]开发了基于图像的爆炸视图编辑工具,在爆炸前设置零部件的装配次序和顺序,通过二维图像重叠放置的方式显示爆炸效果。MOTOMASA[7]同样根据给定的装配方向、次序、距离,手动绘制爆炸视图。KUMAMOTO等[8]开发了可以自动生成爆炸效果及爆炸动画的工具,但仍需对各个零件规定其装配序列、方向和距离。
DRISKILL和COHEN[9]首次使用特征推算爆炸方向法自动生成爆炸视图,但仅局限于单一零件的装配。MOHAMMAD和KROLL[10]通过遍历零件间面面是否接触,生成具有接触关系的有向图(ABOVE graph),将有向图转变为抽象爆炸关系的二维平面有向图,最终绘制出实际立体爆炸视图。
BRUNO等[11]利用投影推断爆炸的大致方向。AGRAWALA等[12]提出了分步装配,但需要手动输入零部件的几何信息、接壤信息、约束方向等,不适用于复杂产品。LI等[13]受其启发,利用手工输入的一种包含相对爆炸顺序的有向图生成三维模型爆炸视图,但耗时长,仅限于50个零件以内。
TATZGERN等[14]选择在所有装配体中最具有代表性的子装配体,通过计算装配体中每个零件分离包围盒以及爆炸方向根据单元球体法进行爆炸,并用评价法选择生成爆炸视图的视角从而生成了更为紧凑的爆炸视图。但干涉检测耗时长,且不能实现全局干涉检测计算。
此外,目前建模软件中如UG、Solidworks、Pro/ENGINEER Wildfire等,均具有生成爆炸视图的功能,但其生成爆炸视图的自动化程度不高,且对复杂装配体生成效果较差,缺乏层次感。而且该爆炸视图无法直接导入到虚拟现实和增强现实平台中。
本文首先利用各零件的包围盒大小和位置偏差决定零件的分离次序和方向,对于仍无法分离的部件,则赋予其物理属性,通过基于碰撞检测的思路实施进一步分离,解决了爆炸仿真中的装配干涉问题,使得爆炸分离过程更加自然,更具表现力。
根据零部件层次结构,本文提出了基于碰撞检测自动生成爆炸视图,通过解析现有模型各个部件之间的相对位置关系使之自动分离,其流程如图1所示。
图1 自动生成爆炸视图流程图
利用碰撞检测来进行自动爆炸视图生成,按理应该是一个更贴近爆炸视图内涵的算法。但是由于机械零件通常相互交叠,尤其是包围盒会相互交叠,当施加物理属性后,各个部件之间会产生碰撞效应,形成的碰撞力将彼此推开,但该方法生成的爆炸视图杂乱无序。如何形成有序且层层剥离的效果,是问题难点和关键所在。
基于此,本文提出了一个粗分离和细分离相结合的爆炸视图生成算法。相对于其他方法,本文算法有着操作简单方便、实时且具有一定的物理效果的优势,只需要将完整的模型导入到场景中即可。
爆炸过程仿真是将原本装配完整的零部件进行有序拆分。爆炸过程粗分离仿真的流程如图2所示。
图2 爆炸过程粗分离流程图
爆炸视图通常以某个大部件作为基准,其他的部件相对做分离移动,这样生成的效果图才符合人们的认知。由于零件中可能出现一些扁长结构,本文采用OBB包围盒最大面积准则来选择基准物体,即计算这个零件的包围盒的3个面积值,选择具有最大面积的包围盒所对应的对象作为基准。
图3 偏移方向(点表示物体中心,箭头表示分离方向)
具体伪代码如算法1。
算法1.计算分离方向伪代码Program CalcOffset(Object baseObject, Object attachObject) Vector3 diff = CenterOfAttachObject – CenterOfBaseObject OffsetCode = 0 if (diff.x > 0) OffsetCode |= 0x01 else if (diff.x < 0) OffsetCode |= 0x02 if (diff.y > 0) OffsetCode |= 0x04 else if (diff.y < 0) OffsetCode |= 0x08 if (diff.z > 0) OffsetCode |= 0x10 else if (diff.z < 0) OffsetCode |= 0x20 End
为了让零件分离呈现出从外到内的爆炸次序,实现有序爆炸,计算其余零件距中心对象的距离并根据距离进行降序排列。并根据排序结果依次对各个零件进行分离,分离距离与原始偏移距离形成一定比例,保证了爆炸分离后各个部件相对位置关系仍然准确,且具有层次感。
上一节中的粗分离方法对于大部分部件可以生成很好的爆炸视图效果。但是对于中心点重合的部件就无法进行分离,如图4所示。
图4 中心点重合导致粗分离失败
本文引入碰撞检测进行此类情形的分离,即通过刚体碰撞检测进一步进行爆炸分离。当两个碰撞体发生碰撞时,碰撞响应产生的作用力会推动两个物体朝着与彼此接触相背离的方向运动,从而实现爆炸效果。如图5(a)所示,两个物体交叠在一起,通过赋予两个物体刚体和碰撞体属性,两个物体将发生碰撞;图5(b)为发生碰撞后的效果,显然两个物体在碰撞作用下会产生旋转运动,整个场景的爆炸视图会显得非常凌乱,其结果不符合爆炸视图要求;图5(c)为左右两个物体同时施加了旋转约束条件,即禁止其产生旋转运动,只允许做平移移动,这样两个物体可以很好的分离。
施加了旋转约束的碰撞检测可以很好地将中心点重合的物体进行分离,然后在此基础上可再次采用2.1节的方法做进一步分离。
图5 碰撞分离模拟图
本文在Unity3D下进行爆炸过程仿真,采用C#脚本控制相关对象的属性和运动。本文给出3个测试场景分别验证该算法的实用性和可行性。
第1个测试场景对比了文献[13]和本文算法,如图6(a)为文献[13]生成的涡轮模型爆炸视图效果,图6(b)为本文算法下自动生成的爆炸视图。其中,标红部分为相应包围盒最大零部件,文献[12]用时1 010 s,本文算法为实时生成,且得到的结果类似,更有层次感。
图6 涡轮模型爆炸视图对比
实验结果表明,本文算法不仅对于存在同轴和包含关系的模型具有可行性,并且在爆炸图的视觉效果上,分离更加细化。
将该算法应用到复杂的飞机模型上。图7(a)为飞机模型的原始状态,图7(b)为飞机零部件分层爆炸的效果图。
同理,将该算法应用到汽车模型上。为了更好的说明粗分离和细分离的主要功能,在汽车测试场景中锁定一个视角(侧视角),如图8(a)为汽车模型的原始状态,图8(b)为汽车零部件粗分离爆炸后的效果图,图8(c)为细分离爆炸后的效果图。
图7 飞机模型爆炸效果
图8 汽车模型爆炸效果
由图8可以清晰地看出算法效果:在粗分离下,中心不重合的车身呈现爆炸效果,但拥有同一中心点的汽车底盘和车厢两者未发生分离。实验证明,经过基于碰撞检测的细分离后,两者呈现明显的理想效果。
为了更好的说明该算法下的爆炸视图具有层次性,在汽车测试场景中锁定另一个视角(俯角)突出分层爆炸效果,如图9所示。
在该测试场景中,由图9可以清晰地看出分层效果:图9(a)中,外层车身作为第1层开始分离;随后,车窗第2层进行分离。图9(b)前后排车轮以及车头、车尾分别作为第3和第4层爆炸,之后作为车头子节点的车灯等进行爆炸。最后爆炸视图生成全部完成,分层效果理想。
图9 汽车模型分层爆炸视图(俯视图)效果
此外,基于碰撞检测的层次化爆炸视图生成算法与增强现实交互设备相结合。本文将爆炸视图最终实现在Hololens头盔上,利用增强现实技术使爆炸视图生成效果更加生动[15]。当给定特定识别手势如图10(a)后,汽车模型如10(b)开始自动分层爆炸,其效果如图10(c)和图10(d)所示。
(a) 手势控制(b) 交互模式下的原始状态 (c) 交互模式下的 爆炸视图(主)(d) 交互模式下的 爆炸视图(侧)
本文提出了一种自动生成爆炸视图的新思路。通过计算相对位置关系的几何算法作为主要判断依据来决定零部件爆炸次序和方向,并利用带有旋转约束的碰撞检测进一步优化分离操作,最终得到的带有物理效果的爆炸视图。实验充分验证其可行性和通用性。
由于本文基于零部件完整模型进行爆炸分离,没有对这些模型进行切割剖分来生成更为细腻的爆炸视图效果,因此效果上仍有改进空间,未来将围绕此开展相关工作。
[1] 于嘉鹏, 王成恩, 张闻雷. 基于装配序列规划的爆炸图自动生成方法[J]. 机械工程学报, 2010, 46(21): 149-157.
[2] 于嘉鹏, 王健熙. 基于递归循环的层次化爆炸图自动生成方法[J]. 机械工程学报, 2016, 13(7): 175-188.
[3] 赵鸿飞, 张琦, 王海涛, 等. 基于同步约束解除的零件爆炸图自动生成方法[J]. 中国机械工程, 2015, 26(1): 70-73.
[4] 邢宇飞, 王成恩, 于嘉鹏. 基于蚁群算法的爆炸图自动生成方法[J]. 东北大学学报, 2012, 33(6): 883-886.
[5] LI W, AGRAWALA M. Interactive exploded views from 2D images: US, 20050248560 [P]. 2005-11-10. http://www.freepatentsonline.com/y2005/0248560.html.
[6] LI W, AGRAWALA M, SALESIN D. Interactive image-based exploded view diagrams [C]//Proceedings Graphics Interface Conference. New York: ACM Press, 2004: 203-212.
[7] MOTOMASA K. Exploded view automatic creation apparatus, storage media and methods: EP, 20030043177 [P].2003-03-06. http://www.freepatentson line.com/y2003/0043177.html.
[8] KUMAMOTO K, SHIMOTSUKA Y, ISHIDA T, et al. Apparatus for producing exploded view and animation of assembling, and method thereof: US, 7262766 [P]. 2007-08-28. http://www.freepatentsonline.com/7262766.html.
[9] DRISKILL E, COHEN E. Interactive design, analysis, and illustration of assemblies [C]//Proceedings of the Symposium on Interactive 3D Graphics. New York: ACM Press, 1995: 27-33.
[10] MOHAMMAD R, KROLL E. Automatic generation of exploded view by graph transformation [C]//The Ninth Conference on Artificial Intelligence for Applications. New York: IEEE Press, 1993: 368-374.
[11] BRUNO J M, YAMROM B, DAVIS J E. Method and system for generating automated exploded views: US, 7295201 [P]. 2007-11-13. http://www.freepatentsonline. com/7295201.html.
[12] AGRAWALA M, PHAN D, HEISER J, et al. Designing effective step-by-step assembly instructions [J]. ACM Transactions on Graphics, 2003, 22(3): 828-837.
[13] LI W, AGRAWALA M, CURLESS B, et al. Automated generation of interactive 3D exploded view diagrams [J]. ACM Transactions on Graphics, 2008, 27(3): 101-109.
[14] TATZGERN M, KALKOFEN D, SCHMALSTIEG D. Multi-perspective compact explosion diagrams [J]. Computers and Graphics, 2011, 35(1): 135-147.
[15] 潘仁宇, 孙长乐, 熊伟, 等. 虚拟装配环境中碰撞检测算法的研究综述与展望[J]. 计算机科学, 2016, 43(S2): 136-139.
Real-Time Automatic Generation Algorithm of Exploded View with Collision Detection Enhancement
LIU You-quan, LI Wan, WANG Yuan-chao, XU Kun
(School of Information Engineering, Chang’an University, Xi’an Shaanxi 710064, China)
Exploded view has been widely applied in mechanical design and assembly practice, facilitating the understanding of the mechanical structure and assembly relationship visually. To solve the interference problem in simulation, this paper presents an automatic exploded view generation algorithm enhanced by collision detection. Firstly, according to the size and position deviation of the bounding boxes, the sequence and direction of explosion is calculated to conduct the initial separation. Secondly, based on the mutual exclusion properties of objects, the real-time collision detection is done to further separate exploded parts to enhance the exploded view effect with physics effects. The method is easy to implement, allows for reasonable movement between parts and avoids potential penetrations. The experiments have verified our method’s feasibility and universality.
exploded view; oriented bounding box; collision detection; spatial separation
TP 391
10.11996/JG.j.2095-302X.2019020235
A
2095-302X(2019)02-0235-05
2018-08-31;
2018-09-14
中央高校基本科研业务费专项资金(310824173401)
柳有权(1976-),男,湖北秭归人,教授,博士,硕士生导师。主要研究方向为计算机图形学、虚拟现实技术。E-mail:youquan@chd.edu.cn