You are on page 1of 12

CN 43—1258/TP 第35卷第6期2013年6月

计算机工程与科学
ISSN 1007—130X
Computer Engineering&Science V01.35,No.6。Juil.2013

文章编号:1007—130X(2013)06—0162—12

虚拟装配中基于公差约束的装配方法研究+

魏 巍1’2, 郭 晨1,段晓东2
(1.大连海事大学航海学院,辽宁大连116026;2. 大连民族学院计算机科学与工程学院,辽宁大连116600)

摘要:针对现实机械装配中零部件存在公差信息的事实,给出了基于公差约束的虚拟装配方法:首
先,构建了虚拟零部件的层次信息表达;其次,提出了基于体分解的空间包围体压缩方法,对零部件原始的
包围体进行切分压缩,并由此构建平衡二又树,建立了与二叉树叶节点对应的零部件碰撞模型,对于包围
体切分中出现的冗余面片采取了冗余面片索引技术;第三,给出了虚拟环境中静态零部件周边空间环境的
切分方法,采用分离轴方法对位于环境剖分立方体内的碰撞模型进行碰撞检测;第四,给出了零部件三角
面片碰撞穿透深度的计算方法,并依据此深度值与零部件间公差范围进行比对,判断碰撞是否在公差范围
内;第五,以轴孔装配为例,给出了零部件在虚拟空间中装配意图的判断方法及装配的约束方程表达;最
后,通过仿真实验给出了零部件之间的装配过程。实验结果表明,该方法可以提高零部件的装配效率,更
好地仿真装配过程。
关键词:虚拟装配;碰撞检测;包围体;冗余面片;公差;约束
中图分类号:TP391.9 文献标志码:A

doi:10.3969/j.issn.1007—130X.2013.06.028

Research on tolerance constraint

based assembly method in virtual assembly


WEI Weil~,GUO Chenl,DUAN Xiao—don92

(1.College of Navigation,Dalian Maritime University,Dalian 116026;

2.School of Computer Science and Engineering,Dalian Nationalities University,Dalian 116600,China)

Abstract:For the fact that the mechanical components and parts have the tolerance information,an

assembly method based on tolerance constraint in virtual assembly was proposed in this paper.Firstly,

the hierarchical information models of the components and parts were constructed.Secondly,the com—

pressed method of space Bounding Volume(BV)based on volume decomposition was proposed to seg—

ment and compress the original BV,the Balanced Binary Tree(BBT)was constructed according to the

result of the segmenting and compressing the BV,the collision model of the components and parts was

constructed corresponding to the leaves of the constructed BBT,and the method of indexing redundant

triangle patches was given to solve the problem of the redundant patches created in the process of the BV

segmentation.Thirdly,the space environment segmenting method nearby the static components and

parts in virtual environment was illustrated and separating axis was used in the segmented virtual envi—

ronment cube to j udge whether the collision occurs between the collision models of the components and

parts.Fourthly,the method of calculating the collision penetration depth of triangle patches was men—

tioned and by contrasting the depth value calculated with the part tolerance range,it was confirmed

whether the collision is in the tolerance range.Fifthly,as the hole—axis assembly an example,the meth—

assembly intention and the assembly constraint formulas were indicated.Finally,the


as一
od of j udging

。警銎是眢;眢紧召笛堵霎星星窭岳妥苔12(6。010574053);交通运输部交通应用基础研究项目(2011—329—225—390);中央高校基本科研业
基金项目:国家自然科学基金资助项目 ;中央两校垂卒科计业 ;交通运输部交通应用基础研究项目( 1一 一 一

务费资助项目(DCl20101083)

盈氯地苎:16jo辽宁省大连市大连民族学院计算机薏学与工Na程tio学na院IiAfldrEs : Schoo l ofComputer Science and Engineering Dalian Nationalities University,Dalian


, 116600,Liaoning,P.R.C…hina
l , ,・K・

万方数据
163
魏巍等:虚拟装配中基于公差约束的装配方法研究

sembly process of components and parts was shown by assembly simulation.The simulation result indi—

cates that this method can increase the assembly efficiency and enhance assembly simulation perform—

ance.

Key words;virtual assembly;collision detection;bounding volume;redundant patch;tolerance;con—

straint

的零部件模型开展的,并没有将零部件的公差信息
1 引言 考虑在内,而在现实的装配过程中,公差信息是必
不可少的。虽然一些研究人员尝试在虚拟装配系
近年来,随着虚拟现实技术和工业制造业的进 统中引入公差信息,但或多或少存在一定的问题。
一步发展,虚拟装配作为虚拟现实和计算机辅助设 王恒等口叩在分析了虚拟环境对公差信息的需求

计CAD(Computer Aided Design)在工程制造领域 后,提出了一种面向多层次结构的双耦合公差模

内的典型应用,正扮演越来越重要的角色。应用虚 型,解决了虚拟装配中公差信息的构件问题,但并
拟装配技术可以使设计者在虚拟的环境中对待组 没有给出公差模型的具体应用。刘检华等[11]从虚
装的零部件进行交互式的装配操作,同时检测和评 拟模型构建精度的角度,提出了虚拟环境下的产品
估设计产品的性能,对零部件的装配过程进行规 精确模型是实现带公差虚拟装配的前提,却并未针
划,从而获取经济、科学、实用和优化的装配解决方 对带公差零部件模型的构建以及碰撞检测的方法

案,避免了原始产品设计中对物理模型的制作依 展开论述。侯伟伟等[12]虽然提出了一种基于公差
赖。不难发现,虚拟装配技术的应用可以极大地降 信息的精确碰撞检测的算法,可并没有给出公差阈
低产品设计成本,缩短制作周期,减少开发风险,提 值的设定方法。
高装配的质量和效率,同时还可以极大地减少培训 实际上,当前虚拟环境中的零部件装配操作已
装配调试人员的工作时间,解决物理模型无法体现 能够实现,但从整个装配应用来看,还存在一些问
的装配情况L1’2j。 题:(1)虚拟零部件模型表达信息单一,缺失了大量
虚拟装配技术作为虚拟制造领域内的一项重 的工程语义信息。目前虚拟装配所用的零部件模
要应用,受到研究者的广泛关注。美国华盛顿州立 型大多是通过CAD软件进行建模的,然而由于装

大学Jayaram S等[3]研发了世界上第一个虚拟装 配系统与CAD构建的模型尚没有形成统一的接


配系统(VADE),利用该系统设计人员将CAD模 口标准,因此需要对CAD软件构建的零部件模型
型的三角面片信息导人到虚拟环境中,可直接对零 格式进行转换才能导入到虚拟装配环境中应
部件进行装配操作,并获得装配的验证信息。近年 用[1 3|。考虑到虚拟装配系统中零部件操作的实时

来,对虚拟装配技术的研究逐渐向提高系统的渲染 性,大部分装配系统仅将CAD模型的三角面片和
实时性、装配精确性和仿真高效性等方向发展,并 极少部分信息导人到了虚拟装配系统中,损失了大
更注重对装配系统的技术实现细节进行深入研究。 量的工程语义信息,如公差信息等,使得装配仿真
北京理工大学的刘检华[4]、郑轶¨1对虚拟装配中零 效果无法与现实装配达到一致。(2)碰撞检测计算
部件的碰撞检测方法开展研究,分别提出了基于精 单一,缺乏弹性机制。受装配模型影响,虚拟装配
确分层的碰撞检测方法以及基于空间剖分和层次 中虽然零部件的尺寸是精确的,但由于缺失了公差
包围盒的方法,本质是通过在碰撞检测阶段减少基 等工程语义信息,导致装配过程中当零部件之间距
本几何元素对的检测数量来提高装配系统的整体 离小于或等于零时,便发生绝对的碰撞;同时存在
效率。哈尔滨工业大学的Peng G L等[6]针对模具 一旦模型之间的尺寸不完全一致,现实中原本可以
的特征,在虚拟装配的碰撞检测阶段利用分离面对 进行装配的零部件在虚拟环境中则无法进行装配
包围盒进行初步检测,并提出了一种基于包围盒的 的现象。(3)装配过程中存在对拾取的零部件装配
层次空间分解法,同时在桌面平台上构建了多视角 干扰的情况。现有的虚拟装配系统大部分是基于
的模具装配模型以辅助装配信息的表达和管理口]。 约束来进行装配的,即实时检测待装零部件之间的
上海交通大学CIM研究所的杨润党等[8’93提出了 约束关系,如果发现尺寸匹配,则会提示进行装配。
基于约束的零部件装配算法,并将其集成到装配环 这就会造成一种现象,虚拟手控制的零部件在移动
境中,取得了较好的效果。这些研究均是基于精确 的过程中会检测到与当前零部件几何尺寸一致的

万方数据
164 Computer Engineering&Science计算机工程与科学2013,35(6)

约束关系,导致原本不该安装的零部件之间也会提 性的要求,又能够充分体现真实零部件的几何特性
示进行装配的信息,造成了不必要的干扰,降低了 和工程语义信息,本文对基于CAD构建的模型进
系统的计算效率。因此,如何在零部件中引入公差 行二次开发,设计实现了多层次信息表达的模型结
信息;如何快速准确地检测零部件之间的碰撞,提 构,以满足装配的实际需求。如图2所示,模型结
高装配碰撞的真实感和合理性;如何辨明零部件的 构分为五个层次,分别是装配体层、零部件层、零部
装配意图,减少不必要的装配约束检测成为当前虚 件特征层、几何面层和三角面片层。装配体层主要
拟装配系统高效仿真的关键。 由不同的零部件来组装构成。零部件层主要包括
本文针对装配的零部件给出了一种新的模型 标示当前零部件的ID序号、零部件名称以及当前
层次表达结构,允许零部件模型在装配过程中依据 零件进行装配的标记厂。设定厂的初始值为0,每
拓扑结构信息映射三角面片所属几何体的工程语 当进行一次装配,厂一厂+1;若1≤,<,2(其中n为
义信息,从而丰富虚拟装配环境中零部件的模型表 依据装配规划获得的当前零部件可装配的总次
述;给出了零部件在装配过程中发生碰撞时穿透深 数),则表示零部件至少完成了1次装配,仍可继续
度的计算方法,提出了存在尺寸公差的零部件在装 进行装配;若,=7"1,则表明零件已完成装配;如果
配过程中允许发生的碰撞范围,并通过比对计算的 f<O或,>行,则表示装配存在错误。零部件特征
碰撞穿透深度和允许的碰撞范围,实时地调整碰撞 层集合了零部件的物理属性、管理属性、装配特征
响应策略,从而实现具有弹性机制的碰撞检测方 和约束属性,每一属性又分别扩展出多项信息。其
法;引入了零部件相对运动速度参数{入},通过计算 中物理属性记录了零部件的工程语义信息,这其中
装配零部件的约束方程对时间的导数来判断真实 包括了基本尺寸信息、公差信息等;管理属性则体
的装配意图,避免不必要的约束检测干扰。图1给 现了设计零部件过程中的一些基本管理信息,譬如
出了带公差信息的装配系统中涉及的功能模块和 版本、设计人员等;装配特征属性集合了零部件之
整体流程。 间相互装配的特征信息,由于装配最终是通过零部
件的点、线、面等装配元素之间相互配合来完成的,

2虚拟零部件建模 因此着重体现了这三类特征之间的配合;约束属性
整合了零部件之间在装配过程中可能发生的约束
虚拟装配系统中通常使用三角面片模型来表 信息,实际上,约束属性是和装配特征属性与物理
达虚拟的零部件,以满足系统实时碰撞检测和显示 属性相互配合使用的,如在进行轴孔装配过程中,
的要求,然而三角面片模型无法体现出工程零部件 在满足基本尺寸一致的前提下,约束信息体现在轴
具体的几何信息、拓扑信息以及工程语义信息。因 孔的轴线重合上,即线线对齐;在零部件特征层设
此,仅由三角面片构建的虚拟装配系统无法高效地 置零部件ID与其上层零部件层中的ID进行相关
仿真现实中真实的零部件装配过程。为了使构建 联,确保每个零部件能够索引到其自身的特征属
的零部件模型能够在虚拟装配系统中既满足实时 性,同时保证每一类零部件的特征属性均有特定的


三础艇三■固阿叠 碡
索引
I构建 I I刚刀

磊习压瓣下惭
l构建

叫公差信息k剥穿透深度
提供
I调整

约束装配}‘∑爿 约束条件 叫装配意图I墨叫响应策略

Figure 1 Function module processes in virtual assembly

图1 装配系统功能模块和流程

万方数据
魏 巍等:虚拟装配中基于公差约束的装配方法研究 165

零部件与之相对应。几何面层是对零部件层中某 样,进而获得相对于前一运动采样点的位置信息。
一零部件jD的面片划分,所划分的面片可以基于 一旦待装配零部件在虚拟手的控制下靠近已装配
B-rep表达,也可基于其他面片表达;三角面片层 零部件时,动态零部件当前时间采样点相对于上一
中的三角面片是对几何面片的具体三角化,是虚拟 时间采样点的运动轨迹将不再发生明显的变化。
装配中零部件碰撞检测及显示的直接表达方式,通 本文根据装配零部件在虚拟环境中运动的时空连
过设置三角面片ID属性,可以方便地检索到发生 贯性特点,提出了一种基于体分解的空间包围体层

碰撞的三角面片所归属的几何面片,并由此索引到 次结构,并在装配预处理阶段构建了零部件的碰撞

具体的零部件及其各类特征属性,这为后续带公差 检测模型,结合静态区域的空间剖分,可以快速高
的碰撞检测计算提供了准确的信息接口。 效地检测零部件之间的碰撞;同时依据碰撞模型与
实际模型之间的映射关系,可方便地检索到零部件

3碰撞检测 模型的详细信息,为碰撞模型的深度计算与公差范
围的比对奠定了基础。

虚拟装配中零部件的显示表达通常是由成千 3.1构建基于体分解的空间包围体
上万个三角面片构成的,在装配过程中,如何快速 构建基于体分解的空间包围体层次结构采用
准确地检测到碰撞的发生,同时又满足用户与装配 自顶向下的方法,将零部件的表面及其内部空间组
系统的实时交互需要。成为碰撞检测算法必须要解 织成一棵平衡二叉树。具体步骤如下:
决的问题。在实际的装配系统中,碰撞检测发生在 (1)生成根节点。在世界坐标系(X,Y,Z)下,
正在进行装配的两个零部件之间,通常一个零部件 设存在任意形状的零部件模型,沿模型方向构建方
是静态的(已装配的零部件),另一个是动态的(待 向包围体,并将其作为树的根节点。该包围体在其
装配的零部件)。静态零部件位于虚拟环境中,等 局部坐标系(V,,V,,V:)实际上是AABB包围体。
待动态零部件进行装配操作,自身不发生移动。动 (2)空间切分。选取父包围体中最长边上的任
态零部件一般由用户通过数据手套进行控制,在虚 一点,过该点作垂直于最长边线的平面,将原包围
拟空间中的运动是任意的,无法用特定公式进行描 体切分为两个子包围体,分别作为平衡二叉树的左
述,但其运动轨迹可以通过对离散的时间点进行采 右子树。

Figure 2 Hierarchical information model of assembly components and parts

图2装配零部件层次信息表达模型

万方数据
166 Computer Engineering&Science计算机工程与科学2013。35(6)

(3)压缩包围体空间。对于切分得到的子包围 冗余面片链表内相应面片节点的指针。当发生包
体内模型,重新构建AABB包围体,并与子包围体 围体之间面片级的碰撞检测时,首先用碰撞包围体
进行比对,进而压缩包围体的冗余空间。 内的面片逐一与当前碰撞体内的非冗余面片组对
(4)递归构建平衡二叉树。递归执行步骤(2)和 进行检测;之后对于当前包围体内的每一冗余面片
步骤(3),直到叶子节点中包含的三角面片个数小于 检测冗余面片链表内相应的面片节点是否已经存
预先设定的阈值或所得的空间包围体内的三角面片 有碰撞包围体的信息,若没有,再进行冗余面片与
个数与其父节点内的个数比不超过2%为止。 碰撞包围体面片之间的干涉检测,同时将碰撞包围
图3给出了基于任意形状的体分解包围体切 体的信息写入到链表内相应的面片节点的数据结
分压缩基本过程。经此步骤构建的空间包围体平 构中。
衡二叉树的每个叶节点对应一个最小切分的空间 3.3包围体冗余空间压缩算法
包围体,其中包含了记录当前包围体内三角面片顶
冗余空间是在对原包围体进行切分后,对子包
点的点集以及与点集对应的三角面片集的信息,同
围体中的模型重新构建包围体并与之进行比对产
时还包含了记录当前与叶节点对应的包围体的基
生的。对包围体进行迭代切分压缩的次数越多,冗
本空间信息。
余空间被删除得越多,新构建的包围体越紧密地包
3.2冗余面片索引 围模型表面。然而,存在一种情况,即切分后的子
在对包围体切分的过程中,由于切分点的任意 包围体内没有模型表面的三角面片信息,这将意味
选取,子包围体内必定存在游离的顶点,无法构成 着该子包围体是模型的内部空间或是冗余空间。
完整的三角面片。从三角面片的角度来考察,则意 对于内部空间,在构建平衡二叉树时,应作为叶子
味着存在三角面片跨越了多个包围体。对于这类 节点进行保留,并不参与后续的切分;对于冗余空
跨多个包围体的三角面片,如果将其分别统计在所 间,则在包围体压缩的过程中被剔除掉。实际上,
跨包围体内,则势必使得模型存在面片冗余信息, 内部空间或冗余空间除了相对于三角面片的位置
这将不仅增加内存的消耗,还将导致计算复杂度的 不同,其本质是一样的,因此在切分和压缩包围体
提高,为此我们采用冗余面片索引技术来解决此类 空间时,必须能够正确区分出这两种不同的空间。
问题。 为此,本文给出一种有效的包围体冗余空间压缩算
为包围体内无法构成完整三角形的三角面片 法。
构建冗余面片链表,链表中每个节点的数据结构包 在局部坐标系(U,V。,V:)中定义三个空间的
括了当前冗余面片的顶点数据信息和已经与该面 点集,分别是模型空间点集MS(Model Space

片发生碰撞检测的包围体信息。由于切分压缩后 Set)、包围体空间点集BVS(Bound Volume Space

的包围体与平衡二叉树的叶节点相互对应,因此为 Set)和体空间点集VS(Volume Space Set)。其中


存在冗余面片的包围体所对应的叶节点构建指向 MS为零件模型在局部坐标系中的顶点的坐标范

Figure 3
移移移 移移移
Segmentation and compression of BV based on volume decomposition

图3基于体分解的包围体切分压缩示意图

万方数据
167
魏巍等:虚拟装配中基于公差约束的装配方法研究

围,可以表示为MS={X—minMS,X—maxMS,Y— 小包围空问,所构建的平衡二叉树的叶子节点即为
minMS,Y—maxMS,Z—minMS,Z—maxMS};8洒 模型切分得到的最小包围体。其中对当前包围体
为在局部坐标系中包围体的顶点坐标集合,可表示 的空间信息的表达可表示为B粥j={P,z,训,h),
为BVS={X—minBVS,X—maxBVS,Y—minBVS, 其中P为包围体的最小顶点坐标'f、硼和h分别表
LmaxBVS,Z—minBVS,Z—maxBVS};VS是局 示包围体的长度、宽度和高度。依据算法的表示,
部坐标系中包围体切分后所形成的新包围体的顶 BVSI又可表述为{(X—minVS,Y—minVS,Z—
点坐标集合,可表示为VS一{X—minVS,X—max— minVS),(X—maxVS--X—minVS),(y—maxVS—

VS,Y_minVS,Y_maxVS,Z_minVS,Z_maxVS}。 Y min粥),(Z maxVS--Z_minVS))。叶节点内


设压缩冗余空间后的包围体为EBV(Eliminated 包围体空间信息的表达为碰撞模型的构建起到极
Bound Volume),其初值为BVS。当对原始包围 为关键的作用。
体进行切分后,会得到两个子包围体,这里考察其 3.4碰撞模型的构建
中之一。对该子包围体中的三角面片进行AABB
通过对模型包围体冗余空间的压缩,使得包围
构建,考虑一种极限情况,即该AABB将BV体划
体对零部件模型的包围程度更加紧密,这在碰撞检
分为6个VS,分别位于此AABB的上VSl、下
测的过程中势必可以大大提高检测的精度。然而,
VS2、左VS3、右VS4、前VS5和后VS6。令
使用模型冗余空间压缩所构建的平衡二叉树内仍
AABB为VSO,则空问BV由VSO~VS6构成。算
然携带了大量的顶点、三角面片和当前包围盒的信
法如下:
息,因此如果直接以平衡二叉树作为装配系统的碰
EBV=Bvs;
撞模型,无疑会增加系统的计算负担。为了提高装
for(i=1;i<=6;i++)


配系统碰撞检测的效率,降低内存的无谓消耗,我

if(vsl-q n MS=D) 们依据所构建的平衡二叉树,创建了更为简洁的碰


EBV=EBVo vsD3; 撞检测模型。
else 考虑到在装配过程中,三角面片是判定是否发
switch(i)
生碰撞的关键因素,而平衡二叉树的叶节点记录了

所有三角面片和当前最小包围体的基本空间信息,
CASEl:
因此需要遍历寻找平衡二叉树的叶节点,并构建与
Ⅷ1.Y_maxVS=Y_maxMS;
当前叶节点相对应的最小包围体的空间表达,这种
break;

CASE2: 空间表达即为所构建的碰撞模型。需要注意的是,
VS2.Y_minVS=Y—minMS; 此时的包围体除了其自身的空间几何信息以及与
break; 平衡二叉树叶节点之间的映射信息外,不包含其他
CASE3: 信息。一旦检测到动态零部件与静态零部件之间
VS3.X—minVS=X—minMS;
的包围体发生了碰撞,将依据发生碰撞的包围体映
break;
射到各自对应的叶节点中,从而进一步判断三角面
CASE4:
片之间是否真正发生了碰撞。因此,采用这种碰撞
VS4.X—maxVS=X—maxMS;
模型一方面可以提高碰撞检测的精度,另一方面可
break;

CASE5; 以降低系统的计算复杂度,提高碰撞检测的效率。
VS5.Z_maxVS=Z_mazMS, 3.5静态空间环境的剖分
break;
虚拟装配中,零部件之间的碰撞检测大多发生
CASE6:
在装配阶段。事实上,装配的发生通常是在静态零
VS6.Z_minVS=Z—minMS;
break;
部件与动态零部件之间进行的,即一旦零部件移动

) 到待装配部件附近,装配碰撞才有可能发生。基于
EBV=EBVU峭[i]; 这一特性,对静态零部件的周边空间环境进行剖
} 分,重点考察剖分后所得的空间立方体内动态零部
上述算法实现了对子包围体中冗余空间的压 件包围体与静态零部件包围体的干涉情况,进而避
缩。递归执行该算法将获得切分后模型表面的最 免了大规模的空间剖分干涉检测的计算。静态空

万方数据
168 Computer Engineering&Science计算机工程与科学2013,35(6)

间环境采用八叉树的剖分方法,对所剖分的立方体 此零部件模型M和N必定发生了碰撞。
使用哈希函数进行编号,通过比较装配零部件包围 (2 7若{口)为空,{口)非空,则表示模型N与模

体与空间环境剖分立方体的投影关系,确定空间环 型M的内部空间发生了碰撞,即零部件模型M和
境剖分立方体内涉及了哪些装配部件的包围体。 N发生了碰撞。
由于装配过程的时空连贯性,同时碰撞检测阶段使 (3)若{口)、{口}均非空,则表示包围体A与B
用的是零部件的碰撞模型,因此在动态零部件移动 所对应的三角面片集有可能发生碰撞,若{a}与(口)
成功后,可以在空问环境剖分的立方体内快速地更 内的三角面片之间存在干涉,则意味着M和N之
新零部件的包围体信息,这为包围体之间进行准确 间发生了碰撞,否则表示没有碰撞发生。因此,对
的干涉检测奠定了基础。 于此种情况需要对三角面片集{口}和{p)内的三角
3.6碰撞检测的方法 面片做进一步的干涉检测。我们采用文献E4]的方

对于判定位于同一静态空间环境割分立方体 法对涉及的三角面片之间进行干涉检测。

内的零部件包围体之间是否发生干涉的理论依据
是方向包围体的分离轴原理。设存在一个超平面
4 多边形面片碰撞深度的计算与零
P能够分离两个包围体A和B,则存在一个垂直 部件公差范围的比对
于P的分离轴L,使得A和B在L上的正交投影
为两个非重叠的区间,进而判定A和B没有发生 当零部件在装配过程中发生碰撞干涉时,碰撞

干涉。通过对15条可能是分离轴的轴线进行包围 检测技术可以及时准确地报告发生碰撞的位置信

体的投影测试,来最终判定剖分立方体内包围体是 息,然而对于碰撞的程度无法体现。现实的零部件

否发生了碰撞干涉。这15条分离轴分别对应包围 装配中,由于制造的零部件无法达到完全精确的尺

体A的3个坐标轴、包围体B的3个坐标轴以及 寸,因此采用尺寸公差来对零部件的加工尺寸进行

垂直于每一个轴的9个轴。如果包围体之间在这 规范,即虽然完全精确无法实现,但在公差范围内

15个轴上的投影均未发生重叠,则表示空间环境 的尺寸便是合理的。虚拟装配中零部件的尺寸信
息是精确的,这就会造成一种情况,原本在现实中
剖分立方体内的盒体之间并不相交,否则意味着包
可以进行装配的带公差零部件之间,在计算机的仿
围体之间发生了干涉,需要进一步判断是否发生了
面片之间的碰撞干涉。 真系统中却由于尺寸的不一致无法实现装配,究其

如果静态空间环境剖分立方体内的包围体发 根本原因就是仿真系统中没有提供一种兼容零部
件公差信息的机制。为此,本文提出在零部件装配
生了干涉,并不能判定发生了零部件面片之间的碰
的碰撞检测阶段,通过计算碰撞面片的穿透深度与
撞。由于此时包围体仅包含了构建该包围体的平
发生碰撞零部件的公差范围进行比对,进而判断零
衡二叉树叶节点的映射信息,因此一旦发生了包围
部件之间是否真正发生了碰撞,即如果碰撞深度在
体之间的碰撞,将会映射到对应的平衡二叉树叶节
公差范围内,便认为是合理的,否则便认为发生了
点中,索引到零部件的三角面片信息,进而将其加
真正的碰撞,需要进行碰撞响应。在具体的实现
载到包围体内;同时,还可以通过装配模型的层次
中,通过对静态空间环境立方体内碰撞模型的初步
信息表达依据具体的三角面片信息检索并加载零
检测来判断零部件的包围体之间是否发生了碰撞,
部件特征层中的各类装配信息,为带公差信息的零
一旦发生碰撞则通过包围体与平衡二叉树的叶节
部件模型的碰撞检测与公差范围的比对提供了前
点的映射关系索引到叶节点中的三角面片集;进而
提保障。
通过构建的零部件层次信息表达,依据三角面片信
假设两个零部件模型M和N正在进行装配
息检索到零部件特征层中的公差信息,实现公差信
操作,A与B分别是模型M和N在某一静态空间
息的提取,通过计算获得的三角面片碰撞深度值与
环境立方体内发生干涉的两个包围体,令发生干涉
公差范围进行比对,确定零部件碰撞响应策略。
的包围体A与B所映射的平衡二叉树叶节点分别
为A’和B 7,若A 7内包含的三角面片集为{口),B’内 4.1碰撞深度的计算

包含的三角面片集为{卢},则三角面片集、包围体和 设零件模型M与N发生碰撞,如图4所示,

零部件模型之间存在以下几种关系: 模型N穿透了模型M。定义穿透模型M内的点
(1)若{口)、{口)均为空,则表示平衡二叉树叶节 集为碰撞点,由图中的黑色标记表示;模型N中未
点A7和B 7分别为各自零部件模型的内部空间,因 穿透模型M的点集定义为非碰撞点,其中与碰撞

万方数据
魏巍等:虚拟装配中基于公差约束的装配方法研究 169

点直接相关的非碰撞点定义为最小非碰撞点,由图 点,因此可采取递归的方式计算其他碰撞点的穿透
中的灰色标记表示,与最小非碰撞点相关的碰撞点 距离和方向向量,如下式所示:
定义为最小碰撞点;介于最小碰撞点与最小非碰撞
点之间且位于模型M边界上的点定义为交叉边界
d(s)=∑(tO(S,S。)・((s—Si)・
i=1

点,由图中黑色圆圈标记。在进行碰撞检测的过程
N,(s;)+d(Si)))/∑tO(S,S,) (5)
中,可以得到交叉边界点的位置及其方向向量,方 f=l

其中,m为与某一碰撞点相关的其他碰撞点的个
向向量由图中与交叉边界点相连的虚线表示;通过
数,cc,(S,S。)为碰撞点之间的权值函数,表明两个
计算,可获得最小碰撞点和其他碰撞点的方向向
量,由图中与最小碰撞点和其他碰撞点相连的虚线 碰撞点之间的关联程度,N,(S;)为碰撞点Si归一

表示。 化后的方向向量。对于碰撞点的方向向量及其归
一化形式可通过式(3)和式(4)迭代求出。通过上
述方法,可将零件模型之间发生穿透的点的穿透距
离求出,但考虑装配的实际情况,穿透的最大距离
是制约公差信息有效的关键因素,因此在求得各碰
撞点的穿透距离后,还需求得最大穿透距离,即
Max(d(S))。

4.2公差与穿透范围的比对

在现实的零部件制造过程中,由于受到工艺技

Penetration depth calculation 术的影响,零部件的实际尺寸往往无法精确到设计


Figure 4

图4穿透深度计算示意图 中基本尺寸的要求,即实际尺寸相对于基本尺寸存

碰撞深度的计算采用递归的方式,重点计算模 有一定的偏差。规定实际尺寸允许变化的两个极

型N穿入M的每个碰撞点的穿透距离。注意到 限值为极限尺寸,其中较大的一个为最大极限尺

最小碰撞点与多个交叉边界点相关,因此在计算最 寸,较小的为最小极限尺寸。使用最大极限尺寸和

小碰撞点的穿透距离和方向时,引入了权值函数 最小极限尺寸分别减去基本尺寸所得的代数差即

to(S,Ci)来表述最小碰撞点与交叉边界点的关联 为尺寸的上偏差和下偏差。所谓的公差即为上下

程度。 偏差的代数差的绝对值,需要注意的是公差是没有

∞(S,Ci)一1/||S—C。lI

(1) 方向性的,但是偏差是有方向性的,可以用正负来

其中,S表示最小碰撞点,Ci表示交叉边界点。不 表示。图5给出了双边和单边公差关系示意图,零

难发现,当S与C。越接近,tO的值越大。对于最小 线表示零部件的基本尺寸,正偏差位于零线上方,

碰撞点的穿透深度可以用下式表示: 负偏差位于零线下方。假使零件基本尺寸为T,对
于双边公差,设定其正负偏差分别为T。和Tz;对
d(s)=∑(tO(S,Ci)・(s—ci)・聘i)/∑tO(S,C,)
i一1 l=1 于仅有正偏差的单边公差,设定其正偏差值分别为

(2) T2和T,;对于仅有负偏差的单边公差,设定其负

其中,m为与某一最小碰撞点相关的交叉边界点的 偏差值分别为T,和T:,则具有不同公差类型的零

个数,竹i为当前交叉边界点的单位方向法向量。 部件实际尺寸与穿透范围的对应关系如表1所示。

最小碰撞点的方向向量的计算可由下式求得: 表1给出了零件实际尺寸与碰撞允许的穿透
范围之间的对应关系,在满足基本尺寸一致的前提
r(s)一∑(tO(S,Ci)・n。)/∑cc,(s,Ci)(3)
i=l i=1 下进行的零部件之间的装配过程中,如果发生了装
如果对其进行归一化,则可以由下式进行表 配碰撞,当计算得到的碰撞穿透深度小于零部件对
示: 应的穿透范围时,这种碰撞被认为是合理的,并不
N,(S)=r(S)/l|r(S)|| (4) 做碰撞响应;一旦穿透深度超过了约束的穿透范
最小碰撞点是与交叉边界点有关联的碰撞点 围,则认为发生了真实的碰撞,需要进行碰撞响应。
集,通过式(2和式(3)近似求得该点的穿透距离和 这种基于基本尺寸一致的带公差信息装配方法,可
方向向量。对于碰撞点集中的其他碰撞点,总能找 以避免存在尺寸偏差的零部件精确模型在仿真系
到与最小碰撞点或求得的碰撞点相关的其他碰撞 统中无法装配的现象,提高装配仿真的合理性和真

万方数据
170 Computer Engineering&Science计算机工程与科学2013,35(6)

实感。考虑系统实现的一致性,对于没有公差信息 围内时,检测约束装配;(4)对于不含公差信息的两
的装配对零部件之间,设定其碰撞穿透范围为[o, 个零件模型,当模型间最小距离小于设定阈值时,
Size(E)×4%],其中Size(E)是求装配基本尺寸 检测约束装配。
的函数。 具体的零部件装配是通过约束几何元素和约
Table 1 Correspondence relationship between the 束类型相互配合完成的,如在孔轴装配中,孔和轴
actual size of part and penetration range 进行约束装配的前提是他们的基本尺寸应保持一
表1零部件实际尺寸与穿透范围的对应关系 致,即孔和轴的半径是相同的,这样即使在装配过
程中发生了碰撞,只要穿透深度在公差范围内,便
检测约束关系。孔轴装配的约束类型是典型的线
线对齐,如图6所示。


iE偏差一

+ fI 负偏差瓦

单边正偏差

Figure 6 Hole-axis assembly

图6孔一轴装配示意图
零线一
实体侧l
II-篙
当轴与孔的轴线发生对齐或两线间的距离小
于设定的阈值时,轴的运动自由度便被约束在轴线

单边负偏差
上,即此时的轴仅可在轴线上做平移和旋转运动。
上述装配的约束条件可以描述为以下公式:
Figure 5 Tolerance relationships of dual size and single one

{F)一{0) (6)
图5双边、单边公差关系示意图
Max d(S)≤toleranceO (7)

Zd) {X。)=0
5零部件装配
乙)
(8)
0n0 }{.Yh{x}。=)0一。
5.1约束装配
,● J(1●, 【 Q0 }・(y^)一0
虚拟装配中零部件的定位、装配是通过约束来
其中,F表示零部件的几何一致性函数,此处函数
完成的。约束定义在虚拟零部件层次表达的装配
F表示四方体零部件中的孔与零部件轴棍各自的
特征层,包含的信息有约束的类型和约束几何元素
公称半径之差;toleranceO表示零部件碰撞穿透所
类型等。约束的类型有很多种,如贴合、偏移、对
对应的公差范围。不难发现,式(6)和式(7)是当前
齐、重合、相切以及坐标系等。约束几何元素类型
轴孔装配的前提条件,式(8)为轴孔装配的约束方
包括装配部件进行装配的几何特征,即点、线和面
程。
等信息。所谓约束装配就是通过零件模型之间的
5.2装配意图的识别
约束类型,约束两个零件之间的关键几何元素和装
配层次关系,实时地计算约束两个几何元素之间的 零部件在进行装配之前,在虚拟空间中的运动

位姿关系,当它们的位姿关系满足设定的阈值范围 是通过虚拟手进行控制的,多数情况下其运动是自
时,自动关联约束类型,并实现零件模型之间的装 由的,因此可以将手的位姿近似等价于零部件的位
配[8]。零部件能够进行约束装配的前提是:(1)零 姿,或可以通过定位手与零件的相对位置关系,使
部件之间满足一定的几何一致性;(2)零部件之间 用变换矩阵来确定零部件的真实位姿。
真实满足某种互相匹配的约束关系;(3)对于带公 对于前者,在获得虚拟手或零部件与世界坐标
差的零部件发生碰撞,在穿透深度在允许的公差范 的变换矩阵后,可分别求得以手或零部件原点为中

万方数据
魏巍等:虚拟装配中基于公差约束的装配方法研究 171

心的各自局部坐标系中点的世界坐标,如图7所 Max d('s)≤toleranceO

示。 0≤0驴l|≤toleranceI (12)

0≤0 A|1≤tolerance2
其中,tolerancel和tolerance2为设定的阈值,即当
零部件满足几何一致性,碰撞穿透的最大深度在对
应的零部件公差范围内,零部件在向满足装配约束
条件的移动过程中相对速度小于设定的阈值,以及
零部件达到约束的条件或十分接近装配约束的条
件时,零部件可以进行约束装配。

Figure 7 World and local coordinate conversion 6仿真效果


图7世界坐标和局部坐标转换

设虚拟手中心在世界坐标系中的位置表示为 我们在Intel Core i7-2600 3.4 GHz,8 GB内

{oh),,虚拟手至世界坐标系的变换矩阵为1"8一,; 存,GeForce GTX 560 Ti图形显示卡的PC机上实


零部件原点在世界坐标系中的位置表示为{oI}。, 现了本文所提出的虚拟装配方法,实验使用5DT
零部件至世界坐标系的变换矩阵为正一。,则对于 数据手套。如图8所示,在虚拟环境中使用虚拟手
虚拟手上的任意一点{H}或零部件上的任意一点 实现了基座、圆饼、方形装配体和轴棍等零部件之
{ob)在世界坐标系中的位置可表示为: 间的装配。图8a给出了系统的初始状态;图8b表
{H),={Oh),+k,{H)h 示虚拟手获取了圆饼,在与基座的装配过程中发生
{0b)。={01)。+T广。{Oh)h (9) 了碰撞干涉,并提示是否进行装配约束检测;图8c
对于后者,设虚拟手的位姿矩阵为MvH,虚拟 和图8d分别展示了圆饼和方形装配体各自装配到
手与零部件的变换矩阵为R—vH,利用这种变换, 基座之后的效果图;图8e给出了轴棍与方形装配
零部件在虚拟空间的位姿Mc可表示为: 体之间的孔轴装配过程:在发生孔轴装配干涉时检
Mc=瓦一vH×MvH (10) 测穿透距离,并提示进行装配约束检测,当几何约
由于装配系统在进行装配前,需要进行几何一 束与装配约束满足条件后,提示是否完成最终装
致性的初步判断,因此在零部件的随机移动中就会 配;图8f展示了装配后的效果图。
造成一种现象,假使装配场景中存在的多个待装零
部件与运动零部件存在相同的几何约束,当虚拟手
控制零部件靠近这些装配体时,便会进行几何约束
一致性的初步检测,而事实上虚拟手控制的零部件
是要装配到其他位置上的,这种多余的计算无疑会
占用系统的资源,降低系统的运算效率。考虑到在 a初始状态 b虚拟手获取圆饼 r圆饼装配到基座
真实的装配过程中,零部件在接近待装的装配体
时,其移动的速度会降低,移动的方向是向着基于
几何一致性和装配成功的约束条件上逐步接近的,
因此,我们引入相对速度参数{A)来对零部件的装
配意图进行判断。{A)定义如下:
{A}一a{≯)/at (11)
cI疗彤装配刨琏堙 r 4L_lltl装眦过程 f装n“i的敏粜I冬{
其中,{妒}为装配运动的约束方程,此处表示式(8)。
速度参数{A)的大小是装配运动约束方程相对于时 Figure 8 Assembly simulation performance

图8虚拟装配仿真效果图
间t的偏导数,方向指向使装配运动约束成功的装
配移动方向。当{A)小于或等于设定的阈值时,便 在仿真实验中,首先在装配预处理阶段对零部

认为零部件有装配的意图,因此对于上述的孔轴装 件的原始包围体进行了基于体空间切分压缩,构建

配完整的约束方程为: 了压缩包围体的平衡二叉树,并据此二叉树的叶节

{F)={0) 点构建了零部件的碰撞检测模型,建立了碰撞检测

万方数据
172 Computer Engineering&Science计算机工程与科学2013,35(6)

模型中每一包围体与平衡二叉树叶节点的对应关 用冗余面片索引技术,以降低系统内存的无谓消
系;同时,对虚拟环境中的静态零部件的周边空间进 耗;构建基于平衡二叉树叶节点的零部件碰撞模
行八又树剖分,得到空问环境剖分立方体,以减少零 型,并将该模型与叶节点建立映射关系,在装配过
部件在装配过程中的碰撞检测计算量。当零部件的 程中仅使用碰撞模型进行碰撞检测,以提高碰撞检
碰撞模型发生碰撞时,将根据碰撞模型对应检索平 测的效率;构建基于静态零部件的虚拟空间环境八
衡二叉树中的三角面片信息,以判断零部件是否真 叉树剖分,基于剖分的立方体进行零部件碰撞模型
正发生了碰撞。一旦确定发生碰撞,将依据三角面 的分离轴检测,以减少碰撞检测的计算量;给出零
片信息检索到零部件的特征信息,进而索引到零部 部件三角面片穿透深度的计算方法,并通过将求得
件层次模型表达中的零部件物理属性中的公差信 的最大穿透深度与模型公差范围进行比对,来判定
息。通过计算三角面片在碰撞过程中的最大穿透深 零部件之间发生的碰撞是否在公差允许的范围内;
度值,并与当前零部件的公差范围进行比对,从而确 以孑L轴装配为例给出了装配约束和装配意图的表
定所发生的碰撞是否合理。我们在实验中分别对圆 达公式,以说明零部件约束装配的实现;最后,给出
饼同基座与轴棍同方形装配体之间的孔轴装配进行 了仿真实验的效果。实践表明,该方法能够较好地
了三次碰撞穿透深度测试,表2给出了穿透计算的 仿真带公差信息的零部件装配过程。
基本信息。不难发现,随着平均穿透顶点数和平均
参考文献:
穿透最大距离的增加,平均计算耗时基本上呈线性
变化,这一方面是由于碰撞零部件模型比较小,模型 [1]Seth A。Vance J M,Oliver J H.Virtual reality for assembly

构建得比较简单;另一方面是由于公差范围内的碰 methods prototyping:A review l-j].Virtual Reality,2011,15

(1):5—20.
撞深度值均比较小,而零部件在装配过程中的穿透
[2]Xia Ping-jun,Chen Peng,Lang Yue-dong.et a1.Study on

深度基本都在公差范围内,因此系统能够满足实时
virtual assembly technology:A survey[J].Journal of System

性的需要。最后,在确定了零部件的几何和约束一 Simulation,2009,21(8):2267—2272.(in Chinese)

致性后,便可以完成零部件的装配动作。 [3]Jayaram S,Jayaram U,Wang Y,et a1.VADE:A virtual

assembly design environment[J].IEEE Computer Graphics

7 结束语 and Applications,1999,19(6):44—50.

[43 Liu Jian—hua,Yao Jun,Ning Ru—xin.Research and realiza—

tion of collision detection algorithm in virtual assembly envi・


虚拟装配作为虚拟制造的关键技术之一,是对
ronment[J].Journal of System Simulation,2004,16(8):
现实零部件装配的高度仿真。现实中零部件产品
1775—1778.(in Chinese)

由于受制造工艺的影响,其尺寸往往无法达到基本 [53 Zheng Yi,Ning Ru—xin,Liu Jian—hun,et el,Research On fast

尺寸的要求,所以每类产品都会根据功能需求在设 collision detection method in virtual assembly environment

计和制造的过程中引入公差信息,然而当前多数虚 fJ].Journal of System Simulation,2005,17(9):2167—2170.

(in Chinese)
拟装配系统对此特征体现得并不充分。本文依据
[6]Peng Gao-liang,Hou xin,Wu Chorlg,et a1.Fast collision
真实零部件存在公差信息这一事实,提出了基于公
detection approach to facilitate interactive modular fixture as—

差信息的虚拟装配方法:对零部件的原始包围体进 sembly design in a virtual environment[J3.The International

行切分,构建基于体分解的空间包围体和基于切分 Journal of Advanced Manufacturing Technology(S1433—

包围体的平衡二叉树,对于切分产生的冗余面片采 30】5).2010.46(1—4):315—328.

Table 2 Basic information of components and parts penetration calculations

表2零部件装配穿透计算基本信息

244

轴棍 263

298

万方数据
魏巍等:虚拟装配中基于公差约束的装配方法研究 173

[7]Peng Gao-liang,Wang Gong-dong,Liu Wen—jian,et a1.A 统仿真学报,2009,21(8):2267-2272.

desktop virtual reality・・based interactive modular fixture con。_


[4]刘检华,姚瑁.宁汝新.基于虚拟装配的碰撞检测算法研究与
figuration design system[J3.Computer-Aided Design。2010,
实现口].系统仿真学报。2004,16(8):1775—1778.
42(5):432-444.
[5]郑轶,宁汝新,刘检华,等.虚拟装配环境下快速碰撞检测方
[8]Yang Run-dang,Wu Dian-liang,Fan Xin—rain,et a1.Research
法的研究[J].系统仿真学报,2005。17(9):2167—2170.
on constraint—based virtual assembly technologies[J].Com—
puter Integrated Manufacturing Systems,2006,12(3):413— [8]杨润党。武殿粱,范秀敏.等.基于约束的虚拟装配技术研究

419.(in Chinese) [J].计算机集成崩造系统,2006,12(3):413—419.


[9]Yang Run-dang,Fan Xin—min,Wu Dian-liang,et a1.Virtual [103 王恒,宁汝新.面向虚拟装配的产品公差模型[J].计算机集
assembly technologies based on constraint and DOF analysis
成制造系统,2006。12(7):961—968.
口]. Robotics and Computer-Integrated Manufacturing
[11]刘检华.侯伟伟,张志贤,等.基于精度和物理的虚拟装配技
(S0736-5845),2007,23(4):447—456.

Ru—xin.Product toleraneed model orien—


术[J].计算机集成制造系统,2011,17(3):595—604.
[10]Wang Heng,Ning
ted tO virtual assembly[J].Computer Integrated Manufac— [12]侯伟伟。宁汝新,刘检华.虚拟装配中基于精确模型的碰撞

turing Systems,2006・12(7):961—968.(in Chinese) 检测算法[J].计算机辅助设计与图形学学报。2010。22(5):


[113 Liu Jian-hua,Hou Wei-wei,Zhang Zhbxian,et a1.Virtual 797—802.

assembly technology based on precision and physical attrib—

ute[J].Computer Integrated Manufacturing Systems,2011,

17(3):595—604.(in Chinese)

[12]Hou Wei-wei,Ning Ru-xin,Liu Jian-hua.A collision detec—

tion algorithm based on accurate models in virtual assembly


魏巍(1980一),男,河南安阳人,博士
口].Journal of Computer-Aided Design&Computer Graph—

iC8,2010,22(5):797—802.(in Chinese)
生,讲师,研究方向为虚拟装配、少数民族

Weidlich D,Cser L,Polzin T,et a1.Virtual reality approa— 语言文字信息化处理和人脸表情合成。E-


[133
ches for immersive design[J].International Journal on In— mail:dearweiwei@126.com

teractive Design and Manufacturing,2009,3(2):103—108. WEI Wei,born in 1980,PhD candi-


』 、

date。lecturer,his research interests include virtual assem-


附中文参考文献:
bly,minority language information processing,and facial

[2]夏平均,陈朋,郎跃东,等.虚拟装配技术的研究综述[J].系 expression synthesis.

万方数据

You might also like