CN1564165A - 基于三维vrml模型的虚拟装配方法 - Google Patents

基于三维vrml模型的虚拟装配方法 Download PDF

Info

Publication number
CN1564165A
CN1564165A CN 200410033618 CN200410033618A CN1564165A CN 1564165 A CN1564165 A CN 1564165A CN 200410033618 CN200410033618 CN 200410033618 CN 200410033618 A CN200410033618 A CN 200410033618A CN 1564165 A CN1564165 A CN 1564165A
Authority
CN
China
Prior art keywords
theta
centerdot
cos
rightarrow
sin
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN 200410033618
Other languages
English (en)
Other versions
CN1303559C (zh
Inventor
田凌
王巧玉
尤国平
陈继忠
童秉枢
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Original Assignee
Tsinghua University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tsinghua University filed Critical Tsinghua University
Priority to CNB2004100336184A priority Critical patent/CN1303559C/zh
Publication of CN1564165A publication Critical patent/CN1564165A/zh
Application granted granted Critical
Publication of CN1303559C publication Critical patent/CN1303559C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

基于三维VRML模型的虚拟装配方法,其特征在于,它是一种在计算机网络上基于虚拟现实建模语言的异地跨平台协同直接预装配的方法,它能够恢复基础装配件和零部件的主要几何信息使VRML在具有网络浏览功能的同时又具有可装配性。它提出了圆柱轴孔配合、面贴面配合、面对齐配合共三种装配方法,能够准确地实现装配的约束,完成对异构CAD系统生成VRML模型的完整装配操作,实现异地协同装配,具有易于实现,计算效率高的优点,计算误差在0.02%以下,可普遍用于基于网络的虚拟设计系统。

Description

基于三维VRML模型的虚拟装配方法
技术领域
基于三维VRML模型的虚拟装配方法属于计算机辅助协同产品设计工具领域。
背景技术
对于异构CAD信息的集成问题,目前常用的解决方法是基于STEP标准的信息集成,由于STEP标准仍处于发展阶段,各软件厂商采用的应用协议不完全一致,难以做到通用化的集成,而基于点对点的专用化集成方式得到了较好的应用。随着CAD技术的不断发展,“虚拟工厂”、“动态企业联盟”等将会是各企业内部和企业之间的主要工作方式,在这种应用背景下,点对点的专用化集成方法无法满足要求,而且,基于STEP的CAD模型文件通常比较庞大,受到网络传输速度和容量的限制,也不适合在Internet上传送。
VRML(虚拟现实建模语言Virtual Reality Modeling Language)格式文件具有交互性强、文件短小、易扩展性强、分布式、平台无关等特点,而且它以脚本语言定义的动画也比其它格式的文件小的多,是目前网络环境下描述三维场景的主要语言。VRML作为一种虚拟现实建模语言,提供了适合在Internet上可视化显示和操纵3D实体模型的理想方式。VRML在Internet上提供了有景深、有立体感的三维世界,使得在Internet上基于3D模型进行可视化协同成为可能,成为支持协同设计的一种切实可行的解决方案。同时,VRML受到众多CAD软件厂商的支持,目前,主流CAD软件均提供VRML格式的3D和2D图形输出。因此许多网络化产品协同设计支持系统采用基于VRML标准的信息集成来解决异构CAD信息的集成问题。
对于一个通用型的协同设计平台而言,异地协同虚拟装配工具是一个非常重要的工具。来自不同平台的CAD模型,尤其是跨地域、跨平台的CAD模型,需要在网络环境中由单人或多人(包括专家、设计师、销售人员和用户)相互协同进行产品的预装配,以达到检验来自不同任务组的零部件的可装配性,或对产品进行可视化协同评价的目的。跨平台的直接预装配给基于VRML标准的信息集成带来了新的挑战。
VRML在拥有以上适于协同设计的优点,同时也存在某些不足之处,这些不足给异地协同虚拟装配带来了困难。其主要原因是VRML标准化的文件格式,VRML文件的基本格式如下:
DEF Cylinder02 Transform{translation000                                   #平移域rotation 0.5774-0.5774 0.5774-4.189              #旋转域children[Shape{geometry DEF Cylinder02-FACES IndexedFaceSet    #索引面集节点{coord DEF Cylinder02-COORD Coordinate        #几何造型节点{point                                     #顶点集[0.6993 0 0.02198,               #第0个点0.6965 0 0.06584,               #第1个点0.691 0 0.1095,                 #第2个点0.6828 0 0.1526,                #第3个点......]}coordIndex                                  #多边形顶点索引[0,1,2,-1,                        #第一个三角面片1,2,3,-1,                        #第一个三角面片......]}}]}
从上面的格式描述可以看出,对于复杂的零部件其VRML文件都是采用高级造型方式,即通过IndexedFaceSet节点描述面的形状并通过面的拼接实现任意形状的几何体外观(如图1),即使用IndexedFaceSet节点造型。IndexedFaceSet是由coord域给出一系列的空间点,然后在coordIndex域中对其进行引用,即选取coord域中的某三点构成一个三角面片域,这些三角面片就构成了我们最终看到的零部件的形体。采用IndexedFaceSet造型几乎不受形体复杂性的限制,生成的VRML文件也比较简单和短小。但同时当CAD模型转换为VRML模型之后,将会丢失精确性和具体的装配特征,从而不利于装配时对其进行精确的控制,所以采用IndexedFaceSet造型是以牺牲零部件形体的几何信息参数为代价的。最终得到的VRML文件中除了记录了一些三角面片的顶点外,就别无任何其它信息了。并且,一些基于VRML的装配系统正是收到这种限制,所以只能依托于其它CAD系统的支持而完成装配操作、装配规划等工作的,VRML模型只是用于浏览功能,所以这样的系统并不是完全的“基于VRML”的结构,也不是独立的系统。这就在系统的使用过程中造成不便,也给系统与其它系统集成带来困难。
在进行装配操作时,首先要亲自恢复零部件的几何信息参数,以便完成零部件产品的预装配。本发明提出了几种主要的装配方法,以满足大部分虚拟装配操作的要求,并根据定位需要,采用同步移动搜索算法计算出轴心等重要几何信息,实现了对VRML模型的预处理,解决了预装配操作种缺少几何信息的问题。
发明内容
本发明的目的在于提供一种基于三维VRML模型的虚拟装配方法。
本发明特征在于:它是一种在计算机网络上基于虚拟现实建模语言,即VRML格式文件的异地跨平台协同直接预装配方法,它由一下三种装配方法共同组成,它们各依次含有以下步骤:
圆柱、轴孔配合,即fit装配方法,它依次含有以下步骤:
设定:
装配基础件的一个顶面定位点为P0,一个顶面定位法向量为 三个侧面定位点为P1,P2,P3,三个侧面定位法向量为
Figure A20041003361800102
零部件轴的一个顶面定位点为Pi0,一个顶面定位法向量 三个侧面定位点Pi1,Pi2,Pi3,三个侧面定位法向量 i为零部件的编号;
Figure A20041003361800105
与装配基础件和零部件的几何位置有关,可由已有的软件包Cortona SDK得到,在本申请文件中是给定的;
(一)用同步移动搜索算法计算轴心的位置,依次含有一下步骤:
(1)对各已知定位向量
Figure A20041003361800106
单位化,再把单位化后的新分量值赋给上述各向量;
(2)保持点P1的位置不变,把不在同一平面的点P2,P3投射到与
Figure A20041003361800111
垂直且点P1
在的平面内,点P′2,P3′表示点P2,P3在平面ψ内的投影,得到:
Figure A20041003361800112
(3)计算 且单位化;
(4)计算出ψ平面内点P1,P2′,P3′各自沿着所在弦的搜索方向向量
Figure A20041003361800115
(5)在平面ψ内找出点P1,P2′,P3′所在各弦的中点,它依次含有以下步骤:
(5.1)分别计算P1点的搜索方向向量 和矢量 夹角α的余弦、矢量
Figure A20041003361800118
与P2′点的搜索方向向量 夹角β的余弦:
cos α = T P 1 → · P 2 ′ P 1 → ,   cos β = P 2 ′ P 1 → · T P 2 ′ →
(5.2)比较α,β,根据比较结果,移动P1,P2′点:
若α>β,则把P1,P2′分别移动到P1′,P2″点,移动步长分别为 Step · T P 1 → , Step · T P 2 ′ → , 即:
若α<β,则同α>β时所述,即
Figure A200410033618001114
再重新计算cosα,cosβ,比较α,β大小,直到α=β,转入下一步;
(5.3)分别计算P2′点的搜索方向向量
Figure A200410033618001115
和矢量 夹角_的余弦、P3′点的搜索方向向量 和矢量 夹角γ的余弦:
(5.4)比较γ与_,根据比较结果移动P1,P2′,P3′点:
若γ>_,则把P1,P2′,P3′点分别移至P1′,P2″,P3″点,移动步长分别为
Step · T P 1 → , Step · T P 2 ′ → , Step · T P 3 ′ → :
Figure A20041003361800125
若γ<_,则同γ>_所述,即:
再重新比较γ与_,直到γ=_,进入下一步骤;
(5.5)分别计算点P3′的搜索方向向量 和矢量
Figure A20041003361800128
的夹角λ的余弦、点P1的搜索方向向量
Figure A20041003361800129
和矢量 夹角δ的余弦:
cos λ = T P 3 ′ → · P 3 ′ P 1 → ,     cos δ = T P 1 → · P 3 ′ P 1 →
(5.6)比较λ与δ,根据比较结果移动P1,P2′,P3′点:若λ>δ,则把P1,P2′,P3′分别移动至P1′,P2″,P3″,移动步长分别为
Step · T P 1 → , Step · T P 2 ′ → , Step · T P 3 ′ → :
Figure A200410033618001214
若λ<δ,则同λ>δ所述,即:
再重新比较λ与δ,直到λ=δ,进入下一步骤;
(6)根据步骤(5)得到的各弦中点P1,P2′,P3′,计算得圆心Pc
P c - P 1 → = | P 1 - P 2 → | | V 1 → - V 2 → | · V 1 →
(二)根据装配的条件,计算变换矩阵,完成装配操作,它依次含有以下步骤:
(1)单位化步骤(一)得到的所有向量;
(2)判别 是否同向或反向:
若同向,则按下述方法直接作平移计算;
若反向,则令旋转角θ=π,以 为轴翻转π角;
若不同向也不反向,则转入下一步骤:
(3)按下式得到的旋转向量
Figure A20041003361800135
和旋转角θ,再设置旋转域:
cos θ = V i 0 → · V 0 → ,    R → = V i 0 → × V 0 →
按下式得到第i零部件的变换矩阵Ti[4][4]:
T i [ 4 ] [ 4 ] = R x 2 + ( 1 - R x 2 ) cos θ R x · R y ( 1 - cos θ ) + R z · sin θ R x · R z ( 1 - cos θ ) - R y · sin θ 0 R x · R y ( 1 - cos θ ) - R z · sin θ R y 2 + ( 1 - R y 2 ) cos θ R y · R z ( 1 - cos θ ) + R x · sin θ 0 R x · R z ( 1 - cos θ ) + R y · sin θ R y · R z ( 1 - cos θ ) - R x · sin θ R z 2 + ( 1 - R z 2 ) cos θ 0 0 0 0 1
(4)按下式把零部件轴的坐标体系Mi[4][4]变换到装配基础件坐标体系M[4][4]内,即:
                 M[4][4]=Mi[4][4]×Ti[4][4]
(5)将Pi0,Pi1,Pi2,Pi3各点分别经过旋转变换矩阵Ti[4][4]变换为新的坐标位置
Pi0′,Pi1′,Pi2′,Pi2′,Pi3′;
(6)利用同步移动搜索算法分别计算装配基础件的轴心Pc和零部件的轴心Pic
Figure A20041003361800141
(7)由下式计算Pi0′,Pic在装配基础件坐标系下经过平移变换后的位置Pi0 *,Pic′:
Figure A20041003361800142
其中与Pi0′与Pi0′,Pic与Pic′满足如下关系(Δx,Δy,Δz未知):
其中,Pi0′(P′i0x,Pi0y′,Pi0z′)为Pi0在零部件坐标系下经过旋转变换后的三维坐标;Pi0″(Pi0x′,Pi0y′,Pi0z′)为Pi0′在装配基础件坐标系下经过平移变换后的三维坐标;
Picx,Picy,Picz为Pic在零部件坐标系下的三维坐标;
Picx′,Picy′,Pic′在装配基础件坐标系下的三维坐标;
(8)按下式计算平移域,得到(Δx,Δy,Δz)
(9)把Δx,Δy,Δz代入Ti[4][4]得到最终变换矩阵Ti[4][4];
R x 2 + ( 1 - R x 2 ) cos θ R x · R y ( 1 - cos θ ) + R z · sin θ R x · R z ( 1 - cos θ ) - R y · sin θ 0 R x · R y ( 1 - cos θ ) - R z · sin θ R y 2 + ( 1 - R y 2 ) cos θ R y · R z ( 1 - cos θ ) + R x · sin θ 0 R x · R z ( 1 - cos θ ) + R y · sin θ R y · R z ( 1 - cos θ ) - R x · sin θ R z 2 + ( 1 - R z 2 ) cos θ 0 Δx Δy Δz 1
(10)将平移域的值(Δx,Δy,Δz)和旋转域的值
Figure A20041003361800151
写入VRML模型,完成
位置变换实现装配;
(三)Align即面贴和装配和Against即面对齐装配,它们依次含有以下步骤:
(1)对于法向量 构成的装配基础件坐标系M[4][4],首先判断
Figure A20041003361800153
是否正交,若正交,则执行下述步骤,否则终止执行;
(2)对于法向量
Figure A20041003361800154
构成的零部件坐标系Mi[4][4],判断
Figure A20041003361800155
是否正交,
若正交,则执行下述步骤,否则终止执行;
(3)利用式
Ti[4][4]=Mi[4][4]-1×M[4][4]或Ti[4][4]=Mi′[4][4]-1×M[4][4]算出坐标系变换矩阵Ti[4][4]:
其中,Ti[4][4]=Mi[4][4]-1×M[4][4]由Align的装配关系必须满足的下述关系式得到:
                            M[4][4]=Mi[4][4]×Ti[4][4]
Ti[4][4]=Mi′[4][4]-1×M[4][4]由Against的装配关系必须满足的下述关系式得到:
                            M[4][4]=Mi′[4][4]×Ti[4][4]
(4)Ti[4][4]还可以表示为
T i [ 4 ] [ 4 ] = R x 2 + ( 1 - R x 2 ) cos θ R x · R y ( 1 - cos θ ) + R z · sin θ R x · R z ( 1 - cos θ ) - R y · sin θ 0 R x · R y ( 1 - cos θ ) - R z · sin θ R y 2 + ( 1 - R y 2 ) cos θ R y · R z ( 1 - cos θ ) + R x · sin θ 0 R x · R z ( 1 - cos θ ) + R y · sin θ R y · R z ( 1 - cos θ ) - R x · sin θ R z 2 + ( 1 - R z 2 ) cos θ 0 Δx Δy Δz 1
根据步骤(3)(4)中的Ti[4][4],求出旋转矢量 和转角为θ,以及平移域值(Δx,Δy,Δz);
将旋转域和平移域值写入VRML模型,完成Against/Align装配。
实验证明:网络化产品协同设计理论及支持系统(CodesignSpace)包括协同平台和协同工具两个部分,我们将上述基于三维VRML模型的虚拟装配方法应用于其中的一个协同工具--Via-VRML(基于VRML的虚拟装配系统)——的开发,本发明有效地实现了对不同CAD系统生成的VRML模型文件进行几何信息恢复预处理和装配操作,成为该系统实现异构CAD系统生成零部件的装配和异地用户的协同装配的关键技术。目前该系统已通过专家组验收。以下是该系统的一些运行实例。
表1是Via-VRML的运行环境
       表1  Via-VRML运行环境
操作系统     Windows 2000/XP,TCP/IP
支撑软件     CortVRML VRML浏览器
本算法对于VRML这种适于在网络上传输的三维模型进行分析和计算,能够恢复其主要几何信息,使其在具有丰富网络浏览功能的基础上又具有了可装配性,使得网络化的协同装配成为可能。本算法完全基于向量空间,采用搜索比较方式大大降低了计算难度,具有易于实现,计算效率高的优点。如果定义误差计算公式如下:
Figure A20041003361800161
同步移动搜索算法的计算误差在0.02%以下。Fit、Align、Against三种装配方法能够有效准确实现装配的约束。综上所述,这几种基于三维VRML模型的虚拟装配方法可以完成对异构CAD系统生成VRML模型的完整装配操作,使异地的协同装配成为可能,可普遍应用于基于网络的虚拟设计系统。
附图说明
图1VRML模型的特点。
图2常用的三种装配方法。
图3装配基础件坐标系及其初始几何数据。
图4零部件坐标系及其初始几何数据。
图5装配基础件坐标系与零部件坐标系装配结果。
图6将P2,P3投射到ψ平面内。
图7ψ平面内各参量。
图8步长搜索结果及计算轴心各量关系。
图9同步移动搜索算法计算轴心程序流程图。
图10fit装配流程图。
图11Align/Against装配流程图。
图12Via-VRML的运行界面。
图13Align与Against的装配结果。
图14、15fit的装配方式及装配结果。
具体实施方式
零部件模型的装配最后要落实到零部件表面的几何约束上。装配方法有许多种,常用的主要有面贴合(Against),轴对齐(Fit),面对齐(Align)三种。
约定:点P1所在的体为装配基础件,
Figure A20041003361800172
为所在平面的法向量,点Pi1所在的体为零部件(Pi0,Pi1,Pi2,Pi3
Figure A20041003361800174
表示第i个零部件的定位点和定位法向量), 为所在平面的法向量,装配操作是将零部件装配到装配基础件上。
1.Against-面贴合
实现贴面装配(图2(a))需要满足两个约束:
1)端面重合:
2)端面法矢方向相反:
Figure A20041003361800177
2.Align-面对齐
实现平面对齐(图2(b))同样需要满足两个约束:
1)表面平齐:
2)面法矢方向一致:
从图形变换的角度面对齐与面贴合是相同的,只是面法矢由反向变为同向。
3.Fit-圆柱轴孔配合
实现轴、孔配合(图2(c))Pc为装配基础件轴线上一点,Pic为零部件轴线上一点,同样需要满足两个约束:
1)圆柱、圆柱孔轴线对齐:
P c - P ic → × V 0 → = 0
2)端部面贴合:
P 0 - P i 0 → · V 0 → = 0
本发明的实现方法如下:
(一)同步移动搜索算法计算轴心
首先通过选取装配基础件的一个顶面定位点P0,一个顶面定位法向量 和三个侧面定位点P1,P2,P3三个侧面定位法向量
Figure A20041003361800184
同样,选取零部件的一个顶面定位点Pi0,一个顶面定位法向量
Figure A20041003361800185
和三个侧面定位点Pi1,Pi2,Pi3,三个侧面定位法向量(Pi0,Pi1,Pi2,Pi3
Figure A20041003361800187
表示第i个零部件的定位点和定位方向)。大致情况如图3,图4所示。
计算轴心时,以装配基础件为例,已知几何条件如上所述,首先将不在同一平面的P1,P2,P3映射到与 垂直的ψ平面内P2′,P3′点(见图6),由VRML模型的几何特征可知P1,P2′,P3′在以轴心为圆心,以轴横截面半径为外切圆半径的正多边形的弦上,所以应首先将在弦上位置任意的P1,P2′,P3′移至各自所在弦的中点,其方法大致为首先计算出P1,P2,P3各自的搜索方向向量
Figure A20041003361800189
(即P1,P2′,P3′移动的方向),把平面的已知条件整理如图7,依照以下步骤进行循环搜索,即可使P1,P2′,P3′到达各自所在弦的中点,最后根据简单的几何关系计算得到轴心,具体步骤如下:
(1)为了方便计算,首先要对各已知定位向量
Figure A200410033618001810
进行单位化,以
Figure A200410033618001811
为例,设 在x,y,z方向上的分量为(V1x,V1y,V1z),单位化公式如下:
Figure A20041003361800191
将单位化后的新分量值再赋给
Figure A20041003361800192
进行类似 的操作;
(2)将不在同一平面的P1,P2,P3映射到与 垂直的同一平面,为了便于几何计算,保持P1位置不变,将P2,P3投射到与 垂直,P1所在的平面ψ内,如图6所示,关系如下,
利用式表示的关系即可将P2,P3映射到与
Figure A20041003361800199
垂直,P1所在的平面ψ内的P2′,P3′点;
(3)计算三点各自的连线方向,用于后面计算
单位化 P 1 P 2 ′ → , P 2 ′ P 3 ′ → , P 3 ′ P 1 → ;
(4)计算出P1,P2′,P3′各自的移动搜索方向向量
Figure A200410033618001912
如下式,使P1,P2′,P3′分别同时沿按照指定步长移动至弦中点;
Figure A200410033618001914
(5)得到平面ψ内各参量的初始情况如图7;
(6)计算 cos α = T P 1 → · P 1 P 2 ′ → cos β = P 1 P 2 ′ → · T P 2 ′ → , 得到cosα和cosβ值;
(7)比较α,β,根据比较结果移动P1,P2′点,具体如下(Step为搜索步长,其具体值可由计算精度要求及VRML模型几何尺寸确定):
如果α=β,则进入步骤(8)
设P1′,P2″为P1,P2′移动后的新位置,
如果α>β,则令
如果α<β,则令
令P1=P1′,P2′=P2″, P 1 P 2 ′ → = P 2 ′ - P 1 → 重复步骤(6),(7)直到α=β,进入步骤(8)
(8)同理计算cosγ,cos_,然后移动P1,P2′,P3′,使γ=_如果γ=_,则进入步骤(9)
设P1′,P2″,P3″,为P1,P2′,P3′移动后的新位置,
如果γ>_,则令
如果γ<_,则令
令P1=P1′,P2=P2,P3=P3′, P 2 ′ P 3 ′ → = P 3 ′ - P 2 ′ → , 重复步骤(8)直到γ=_,进入步骤(8)
(9)同理计算cosδ,cosλ,然后移动P1,P1,P2′,P3′,使δ=λ如果δ=λ,则进入步骤(10)
设P1′,P2″,P3″为P1,P2′,P3′移动后的新位置,
如果λ>δ,则令
Figure A20041003361800211
如果λ<δ,则令
Figure A20041003361800212
令P1=P1′,P2′=P2″,P3′=P3″, P 3 ′ P 1 → = P 1 - P 3 ′ → 重复步骤(9)直到δ=λ,进入步骤(10);
(10)计算轴心Pc。得到P1,P2′,P3′现均为各弦中点,如图8所示,可由比例相似得到:
P c - P 1 → = | P 1 - P 2 | → | V 1 → - V 2 → | · V 1 → ,
Pc即为轴心。
同步移动搜索算法的流程如图9
依据同步移动搜索算法确定轴心的位置后,根据顶面定位法向量计算旋转轴 和旋转角θ,然后得到旋转变换矩阵Ti[4][4],利用Ti[4][4]对零部件坐标系进行旋转变换,最后根据装配约束的条件计算平移域值(Δx,Δy,Δz),将旋转域值的旋转轴
Figure A20041003361800216
旋转角θ和平移域值(Δx,Δy,Δz)写入VRML模型文件,完成装配的操作。具体步骤如下:
(1)单位化所有向量。
(2)判断两个顶面定位向量
Figure A20041003361800218
是否同向或反向,因为这属于变换中的特殊情况(此时叉积为0,无法求出旋转轴),要首先排除。如同向则直接进行平移计算,不用指定旋转轴和旋转角;如反向则直接令θ=π,指定 为旋转轴(见图5);
(3)如既不同向也不反向,则由式得到旋转轴向量
Figure A200410033618002110
和旋转角θ,然后进行旋转域的设置;
cos θ = V i 0 → · V 0 →
R → = V i 0 → × V 0 →
(4)由上面得到旋转轴向量 和旋转角θ,由计算机图形学知识,而Ti[4][4]可由向量 和旋转角θ确定,于是得旋转矩阵Ti[4][4](Ti[4][4]为第i个零部件坐标系与装配基础件之间的变换矩阵)
R x 2 + ( 1 - R x 2 ) cos θ R x · R y ( 1 - cos θ ) + R z · sin θ R x · R z ( 1 - cos θ ) - R y · sin θ 0 R x · R y ( 1 - cos θ ) - R z · sin θ R y 2 + ( 1 - R y 2 ) cos θ R y · R z ( 1 - cos θ ) + R x · sin θ 0 R x · R z ( 1 - cos θ ) + R y · sin θ R y · R z ( 1 - cos θ ) - R x · sin θ R z 2 + ( 1 - R z 2 ) cos θ 0 0 0 0 1 得到
Ti[4][4]即为装配基础件坐标系M[4][4](可未知)与零部件坐标系Mi[4][4](可未知)之间的变换矩阵,即
                      M[4][4]=Mi[4][4]×Ti[4][4]
求出了Ti[4][4]即可将零部件坐标系内的任何点变换到装配基础件坐标系内;
(5)将Pi0,Pi1,Pi2,Pi3各点分别经过旋转变换矩阵Ti[4][4]变换为新的坐标位置Pi0′,Pi1′,Pi2′,Pi3′;
(6)使用上述同步移动搜索算法分别计算装配基础件和零部件的轴心Pc,Pic
(7)由下式计算Pi0′,Pic在装配基础件坐标系下经过平移变换后的位置Pi0″,Pic′:
Figure A20041003361800226
其中Pi0′与Pi0″,Pic与Pic′满足如下关系(Δx,Δy,Δz未知):
Figure A20041003361800231
 
Figure A20041003361800232
(8)计算平移域,得到(Δx,Δy,Δz)
(9)得到最终的变换矩阵Ti[4][4]
R x 2 + ( 1 - R x 2 ) cos θ R x · R y ( 1 - cos θ ) + R z · sin θ R x · R z ( 1 - cos θ ) - R y · sin θ 0 R x · R y ( 1 - cos θ ) - R z · sin θ R y 2 + ( 1 - R y 2 ) cos θ R y · R z ( 1 - cos θ ) + R x · sin θ 0 R x · R z ( 1 - cos θ ) + R y · sin θ R y · R z ( 1 - cos θ ) - R x · sin θ R z 2 + ( 1 - R z 2 ) cos θ 0 Δx Δy Δz 1
(10)将平移域的值(Δx,Δy,Δz)和旋转域的值 写入VRML模型,完成位置变换实现装配。
将轴装配算法的流程如图10:
(二)Align、Against装配方法
在虚拟装配系统中,面对面的装配所要实现的是将“平移域”和“旋转域”都不同的两个物体按照一定的装配约束装配到一起。
首先得到装配基础件的三个定位点P1,P2,P3和三个定位法向量
Figure A20041003361800236
和零部件的三个定位点Pi1,Pi2,Pi3和三个定位法向量
Figure A20041003361800237
由此得到装配基础件的坐标系为M[4][4],且M[4][4]可表示为:
M [ 4 ] [ 4 ] = V 1 x V 1 y V 1 z 0 V 2 x V 2 y V 2 z 0 V 3 x V 3 y V 3 z 0 0 0 0 1
其中V1x,V1y,V1z在x,y,z方向上的各分量,其它类似。
零部件的坐标系为Mi[4][4],Mi[4][4]可表示为:
M i [ 4 ] [ 4 ] = V i 1 x V i 1 y V i 1 z 0 V i 2 x V i 2 y V i 2 z 0 V i 3 x V i 3 y V i 3 z 0 0 0 0 1
装配操作本质上就是将零部件的坐标矩阵Mi[4][4]通过变换成为与装配基础件的坐标矩阵M[4][4]同向(Align)或某一个方向相反(Against)。设该变换矩阵为Ti[4][4]。Align的装配关系下三个矩阵满足如下关系:
                          M[4][4]=Mi[4][4]×Ti[4][4]
Against的装配关系下三个矩阵满足如下关系:
                          M[4][4]=Mi′[4][4]×Ti[4][4]
(Mi′[4][4]与Mi[4][4]某一个向量方向相反)
由于Mi[4][4]、Mi′[4][4]均已知,由上式可以得到Ti[4][4]:
Ti[4][4]=Mi[4][4]-1×M[4][4]                      (1)
或Ti[4][4]=Mi′[4][4]-1×M[4][4]
如果旋转变换的轴为
Figure A20041003361800242
旋转角为θ;X,Y,Z方向上的平移量为(Δx,Δy,Δz),则Ti[4][4]还可表示为:
R x 2 + ( 1 - R x 2 ) cos θ R x · R y ( 1 - cos θ ) + R z · sin θ R x · R z ( 1 - cos θ ) - R y · sin θ 0 R x · R y ( 1 - cos θ ) - R z · sin θ R y 2 + ( 1 - R y 2 ) cos θ R y · R z ( 1 - cos θ ) + R x · sin θ 0 R x · R z ( 1 - cos θ ) + R y · sin θ R y · R z ( 1 - cos θ ) - R x · sin θ R z 2 + ( 1 - R z 2 ) cos θ 0 Δx Δy Δz 1 - - - - ( 2 )
这样便在装配关系与VRML模型旋转平移域值之间找到了关系,只要通过式(1)得到Ti[4][4]矩阵的值,再通过式(1)与式(2)的等量关系解出旋转变换的轴向量(Rx,Ry,Rz)、旋转角θ和平移域(Δx,Δy,Δz),照一定的位置约束实现Align及Against方式的预装配。如果给了一定的偏移值,此算法还可以扩展到有一定位移间距的装配。具体步骤如下
(1)法向量
Figure A20041003361800251
构成的装配基础件坐标系M[4][4],首先判断 是否正交,若正交,继续计算,否则终止计算;
(2)法向量 构成的零部件坐标系Mi[4][4],判断 是否正交,若正交,继续计算,否则终止计算;
(3)利用式Ti[4][4]=Mi[4][4]-1×M[4][4]或Ti[4][4]=Mi′[4][4]-1×M[4][4]求出坐标系变换矩阵Ti[4][4];
(4)由
T i [ 4 ] [ 4 ] = R x 2 + ( 1 - R x 2 ) cos θ R x · R y ( 1 - cos θ ) + R z · sin θ R x · R z ( 1 - cos θ ) - R y · sin θ 0 R x · R y ( 1 - cos θ ) - R z · sin θ R y 2 + ( 1 - R y 2 ) cos θ R y · R z ( 1 - cos θ ) + R x · sin θ 0 R x · R z ( 1 - cos θ ) + R y · sin θ R y · R z ( 1 - cos θ ) - R x · sin θ R z 2 + ( 1 - R z 2 ) cos θ 0 Δx Δy Δz 1
求出旋转 和旋转θ,以及平移域值(Δx,Δy,Δz);
(5)将旋转域和平移域值写入VRML模型,完成Against/Align装配。Align、Against装配方法算法的流程如图11。

Claims (1)

1、基于三维VRML模型的虚拟装配方法,其特征在于,它是一种在计算机网络上基于虚拟现实建模语言,即VRML格式文件的异地跨平台协同直接预装配方法,它由一下三种装配方法共同组成,它们各依次含有以下步骤:
圆柱、轴孔配合,即fit装配方法,它依次含有以下步骤:
设定:
装配基础件的一个顶面定位点为P0,一个顶面定位法向量为 三个侧面定位点为P1,P2,P3,三个侧面定位法向量为
Figure A2004100336180002C2
零部件轴的一个顶面定位点为Pi0,一个顶面定位法向量 三个侧面定位点Pi1,Pi2,Pi3,三个侧面定位法向量 i为零部件的编号;
Figure A2004100336180002C5
与装配基础件和零部件的几何位置有关,可由已有的软件包Cortona SDK得到,在本申请文件中是给定的;
(一)用同步移动搜索算法计算轴心的位置,依次含有一下步骤:
(1)对各已知定位向量 单位化,再把单位化后的新分量值赋给上述各向量;
(2)保持点P1的位置不变,把不在同一平面的点P2、P3投射到与
Figure A2004100336180002C7
垂直且点P1所在的平面内,点P′2,P′3表示点P2,P3在平面ψ内的投影,得到:
Figure A2004100336180002C8
(3)计算 且单位化;
(4)计算出ψ平面内点P1,P′2,P′3各自沿着所在弦的搜索方向向量
(5)在平面ψ内找出点P1,P′2,P′3所在各弦的中点,它依次含有以下步骤:
(5.1)分别计算P1点的搜索方向向量
Figure A2004100336180002C12
和矢量 夹角α的余弦、矢量 与P′2点的搜索方向向量 夹角β的余弦:
cos α = T P 1 → · P 2 ′ P 1 → , cos β = P 2 ′ P 1 → · T P 2 ′ →
(5.2)比较α,β,根据比较结果,移动P1,P′2点:
若α>β,则把P1,P′2分别移动到P′1,P″2点,移动步长分别为
Figure A2004100336180003C3
即:
若α<β,则同α>β时所述,即
Figure A2004100336180003C5
再重新计算cosα,cosβ,比较α,β大小,直到α=β,转入下一步;
(5.3)分别计算P′2点的搜索方向向量 和矢量 夹角_的余弦、P′3点的搜索方向向量 和矢量 夹角γ的余弦:
cos γ = T P 3 ′ → · P 2 ′ P 3 ′ →
(5.4)比较γ与_,根据比较结果移动P1,P′2,P′3点:
若γ>_,则把P1,P′2,P′3点分别移至P′1,P″2,P″3点,移动步长分别为
Figure A2004100336180003C12
Figure A2004100336180003C13
若γ<_,则同γ>_所述,即:
Figure A2004100336180003C14
再重新比较γ与_,直到γ=_,进入下一步骤;
(5.5)分别计算点P′3的搜索方向向量 和矢量
Figure A2004100336180003C16
的夹角λ的余弦、点P1的搜索方向向量
Figure A2004100336180004C1
和矢量
Figure A2004100336180004C2
夹角δ的余弦:
cos λ = T P 3 ′ → · P 3 ′ P 1 → , cos δ = T P 1 → · P 3 ′ P 1 →
(5.6)比较λ与δ,根据比较结果移动P1,P′2,P′3点:
若λ>δ,则把P1,P′2,P′3分别移动至P′1,P″2,P″3,移动步长分别为
Figure A2004100336180004C5
Figure A2004100336180004C6
若λ<δ,则同λ>δ所述,即:
Figure A2004100336180004C7
再重新比较λ与δ,直到λ=δ,进入下一步骤;
(6)根据步骤(5)得到的各弦中点P1,P′2,P′3,计算得圆心Pc
P c - P 1 → = | P 1 - P 2 → | | V 1 → - V 2 → | · V 1 →
(二)根据装配的条件,计算变换矩阵,完成装配操作,它依次含有以下步骤:
(1)单位化步骤(一)得到的所有向量;
(2)判别
Figure A2004100336180004C9
是否同向或反向:
若同向,则按下述方法直接作平移计算;
若反向,则令旋转角θ=π,以
Figure A2004100336180004C10
为轴翻转π角;
若不同向也不反向,则转入下一步骤:
(3)按下式得到的旋转向量
Figure A2004100336180004C11
和旋转角θ,再设置旋转域:
cos θ = V i 0 → · V 0 → , R → = V i 0 → × V 0 →
按下式得到第i零部件的变换矩阵Ti[4][4]:
T i [ 4 ] [ 4 ] = R x 2 + ( 1 - R x 2 ) cos θ R x · R y ( 1 - cos θ ) + R z · sin θ R x · R z ( 1 - cos θ ) - R y · sin θ 0 R x · R y ( 1 - cos θ ) - R z · sin θ R y 2 + ( 1 - R y 2 ) cos θ R y · R z ( 1 - cos θ ) + R x · sin θ 0 R x · R z ( 1 - cos θ ) + R y · sin θ R y · R z ( 1 - cos θ ) - R x · sin θ R z 2 + ( 1 - R z 2 ) cos θ 0 0 0 0 1
(4)按下式把零部件轴的坐标体系Mi[4][4]变换到装配基础件坐标体系M[4][4]内,即:
                     M[4][4]=Mi[4][4]×Ti[4][4]
(5)将Pi0,Pi1,Pi2,Pi3各点分别经过旋转变换矩阵Ti[4][4]变换为新的坐标位置P′i0,P′i1,P′i2,P′i3
(6)利用同步移动搜索算法分别计算装配基础件的轴心Pc和零部件的轴心Pic
Figure A2004100336180005C2
(7)由下式计算P′i0,Pic在装配基础件坐标系下经过平移变换后的位置P″i0,P′ic
其中与P′i0与P″i0,Pic与P′ic满足如下关系(Δx,Δy,Δz未知):
Figure A2004100336180005C5
其中,P′i0(P′i0x,P′i0y,P′i0z)为Pi0在零部件坐标系下经过旋转变换后的三维坐标;P″i0(P′i0x,P′i0y,P′i0z)为P′i0在装配基础件坐标系下经过平移变换后的三维坐标;
Picx,Picy,Picz为Pic在零部件坐标系下的三维坐标;
P′icx,P′icy,P′icz为P′ic在装配基础件坐标系下的三维坐标;
(8)按下式计算平移域,得到(Δx,Δy,Δz)
(9)把Δx,Δy,Δz代入Ti[4][4]得到最终变换矩阵Ti[4][4];
R x 2 + ( 1 - R x 2 ) cos θ R x · R y ( 1 - cos θ ) + R z · sin θ R x · R z ( 1 - cos θ ) - R y · sin θ 0 R x · R y ( 1 - cos θ ) - R z · sin θ R y 2 + ( 1 - R y 2 ) cos θ R y · R z ( 1 - cos θ ) + R x · sin θ 0 R x · R z ( 1 - cos θ ) + R y · sin θ R y · R z ( 1 - cos θ ) - R x · sin θ R z 2 + ( 1 - R z 2 ) cos θ 0 Δx Δy Δz 1
(10)将平移域的值(Δx,Δy,Δz)和旋转域的值 写入VRML模型,完成位置变换实现装配;
(三)Align即面贴和装配和Against即面对齐装配,它们依次含有以下步骤:
(1)对于法向量
Figure A2004100336180006C4
构成的装配基础件坐标系M[4][4],首先判断 是否正交,若正交,则执行下述步骤,否则终止执行;
(2)对于法向量 构成的零部件坐标系Mi[4][4],判断 是否正交,若正交,则执行下述步骤,否则终止执行;
(3)利用式Ti[4][4]=Mi[4][4]-1×M[4][4]或Ti[4][4]=M′i[4][4]-1×M[4][4]算出坐标系变换矩阵Ti[4][4]:
其中,Ti[4][4]=Mi[4][4]-1×M[4][4]由Align的装配关系必须满足的下述关系式得到:
                    M[4][4]=Mi[4][4]×Ti[4][4]
Ti[4][4]=M′i[4][4]-1×M[4][4]由Against的装配关系必须满足的下述关系式得到:
                    M[4][4]=M′i[4][4]×Ti[4][4]
(4)Ti[4][4]还可以表示为
T i [ 4 ] [ 4 ] = R x 2 + ( 1 - R x 2 ) cos θ R x · R y ( 1 - cos θ ) + R z · sin θ R x · R z ( 1 - cos θ ) - R y · sin θ 0 R x · R y ( 1 - cos θ ) - R z · sin θ R y 2 + ( 1 - R y 2 ) cos θ R y · R z ( 1 - cos θ ) + R x · sin θ 0 R x · R z ( 1 - cos θ ) + R y · sin θ R y · R z ( 1 - cos θ ) - R x · sin θ R z 2 + ( 1 - R z 2 ) cos θ 0 Δx Δy Δz 1
根据步骤(3)(4)中的Ti[4][4],求出旋转矢量
Figure A2004100336180007C2
和转角为θ,以及平移域值(Δx,Δy,Δz);
(5)将旋转域和平移域值写入VRML模型,完成Against/Align装配。
CNB2004100336184A 2004-04-13 2004-04-13 基于三维vrml模型的虚拟装配方法 Expired - Fee Related CN1303559C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2004100336184A CN1303559C (zh) 2004-04-13 2004-04-13 基于三维vrml模型的虚拟装配方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2004100336184A CN1303559C (zh) 2004-04-13 2004-04-13 基于三维vrml模型的虚拟装配方法

Publications (2)

Publication Number Publication Date
CN1564165A true CN1564165A (zh) 2005-01-12
CN1303559C CN1303559C (zh) 2007-03-07

Family

ID=34481356

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004100336184A Expired - Fee Related CN1303559C (zh) 2004-04-13 2004-04-13 基于三维vrml模型的虚拟装配方法

Country Status (1)

Country Link
CN (1) CN1303559C (zh)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100347712C (zh) * 2005-10-14 2007-11-07 清华大学 基于vrml模型的有约束协同装配工艺规划的仿真方法
CN100395761C (zh) * 2005-10-14 2008-06-18 清华大学 基于vrml模型的无约束协同装配工艺规划的仿真方法
CN100435049C (zh) * 2006-05-24 2008-11-19 北京理工大学 一种面向生产现场的半沉浸式装配工艺规划方法
CN101295327B (zh) * 2008-06-05 2010-06-16 上海交通大学 港口监测数据虚拟显示设备和方法
CN101308520B (zh) * 2008-06-13 2010-08-11 浙江工业大学 一种基于可拓关联关系的虚拟装配方法
CN101592482B (zh) * 2009-06-30 2011-03-02 上海磁浮交通发展有限公司 大型构件精确定位的方法
CN102254053A (zh) * 2010-05-20 2011-11-23 北京大学 一种基于组件装配的参数化设计方法和系统
CN101583536B (zh) * 2007-02-28 2013-01-16 波音公司 用于装配零件组件的方法
CN101727508B (zh) * 2008-10-13 2014-05-07 机械科学研究总院先进制造技术研究中心 一种基于虚拟现实技术的大型装备研发方法
CN104598697A (zh) * 2015-02-11 2015-05-06 广东航宇卫星科技有限公司 一种产品仿真三维模型的构建方法
CN1959631B (zh) * 2005-11-04 2016-09-21 上海启明软件股份有限公司 一种基于itron的应用软件自主装配系统及方法
CN105957138A (zh) * 2016-04-08 2016-09-21 温州职业技术学院 一种基于装配的家具产品三维建模方法及系统
CN106228851A (zh) * 2016-08-30 2016-12-14 刘锦宏 一种汽车拆装虚拟现实培训方法
CN107247832A (zh) * 2017-05-26 2017-10-13 武汉理工大学 基于Web的三维轻量化模型虚拟装配方法及其装置
CN110007762A (zh) * 2019-04-07 2019-07-12 石家庄格得乐模型技术服务有限公司 一种基于装配点的数字化三维零部件虚拟装配方法
CN111322978A (zh) * 2019-11-08 2020-06-23 北京航空航天大学 一种非理想平面装配偏差的计算方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6215495B1 (en) * 1997-05-30 2001-04-10 Silicon Graphics, Inc. Platform independent application program interface for interactive 3D scene management
JP2000076487A (ja) * 1998-09-03 2000-03-14 Sony Corp 情報処理装置および方法、並びに提供媒体

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100395761C (zh) * 2005-10-14 2008-06-18 清华大学 基于vrml模型的无约束协同装配工艺规划的仿真方法
CN100347712C (zh) * 2005-10-14 2007-11-07 清华大学 基于vrml模型的有约束协同装配工艺规划的仿真方法
CN1959631B (zh) * 2005-11-04 2016-09-21 上海启明软件股份有限公司 一种基于itron的应用软件自主装配系统及方法
CN100435049C (zh) * 2006-05-24 2008-11-19 北京理工大学 一种面向生产现场的半沉浸式装配工艺规划方法
CN101583536B (zh) * 2007-02-28 2013-01-16 波音公司 用于装配零件组件的方法
CN101295327B (zh) * 2008-06-05 2010-06-16 上海交通大学 港口监测数据虚拟显示设备和方法
CN101308520B (zh) * 2008-06-13 2010-08-11 浙江工业大学 一种基于可拓关联关系的虚拟装配方法
CN101727508B (zh) * 2008-10-13 2014-05-07 机械科学研究总院先进制造技术研究中心 一种基于虚拟现实技术的大型装备研发方法
CN101592482B (zh) * 2009-06-30 2011-03-02 上海磁浮交通发展有限公司 大型构件精确定位的方法
CN102254053A (zh) * 2010-05-20 2011-11-23 北京大学 一种基于组件装配的参数化设计方法和系统
CN102254053B (zh) * 2010-05-20 2013-03-13 北京大学 一种基于组件装配的参数化设计方法和系统
CN104598697A (zh) * 2015-02-11 2015-05-06 广东航宇卫星科技有限公司 一种产品仿真三维模型的构建方法
CN105957138A (zh) * 2016-04-08 2016-09-21 温州职业技术学院 一种基于装配的家具产品三维建模方法及系统
CN105957138B (zh) * 2016-04-08 2018-11-23 温州职业技术学院 一种基于装配的家具产品三维建模方法及系统
CN106228851A (zh) * 2016-08-30 2016-12-14 刘锦宏 一种汽车拆装虚拟现实培训方法
CN107247832A (zh) * 2017-05-26 2017-10-13 武汉理工大学 基于Web的三维轻量化模型虚拟装配方法及其装置
CN107247832B (zh) * 2017-05-26 2020-11-24 武汉理工大学 基于Web的三维轻量化模型虚拟装配方法及其装置
CN110007762A (zh) * 2019-04-07 2019-07-12 石家庄格得乐模型技术服务有限公司 一种基于装配点的数字化三维零部件虚拟装配方法
CN111322978A (zh) * 2019-11-08 2020-06-23 北京航空航天大学 一种非理想平面装配偏差的计算方法
CN111322978B (zh) * 2019-11-08 2021-02-02 北京航空航天大学 一种非理想平面装配偏差的计算方法

Also Published As

Publication number Publication date
CN1303559C (zh) 2007-03-07

Similar Documents

Publication Publication Date Title
CN1303559C (zh) 基于三维vrml模型的虚拟装配方法
CN1975720A (zh) 一种基于Web的数据挖掘系统及其控制方法
CN100336339C (zh) 通用型协同交流系统中模型批注与操作传输的方法
CN1924897A (zh) 图像处理装置和方法以及程序
CN1187952C (zh) 校正输入图象失真的设备与方法
CN1037597A (zh) 部件加工程序生成系统
CN1747559A (zh) 三维几何建模系统和方法
CN1062610A (zh) 将锥形束x射线投影数据再现物体三维ct图象用的方法和装置
Yusof et al. Design of a STEP compliant system for turning operations
CN1392979A (zh) 通信设备和通信方法、网络系统、以及机器人设备
CN1206722C (zh) 基于等效电路的集成电路电源网络瞬态分析求解的方法
CN1435781A (zh) 一种基于信息挖掘的智能决策支持构造方法
CN1799069A (zh) 统计动态碰撞方法及设备
CN107871327A (zh) 基于特征点线的单目相机位姿估计和优化方法及系统
CN1818897A (zh) 面向多媒体网络电子出版物制作的实现方法
CN1920715A (zh) 一种用于自动钻铆托架变形的修补数据处理方法
CN1241255A (zh) 三维形状测量装置及使用了该装置的三维雕刻装置
CN1411034A (zh) 掩模图形制成方法及半导体装置的制造方法
CN1526098A (zh) 与二维或三维几何实体相关的数据的输出方法和系统
CN1190764A (zh) 利用候选表进行分类的模式识别设备及其方法
CN1168048C (zh) 生成/解释几何对象的计算机可读模型的方法和计算机系统
CN1258704C (zh) 基于网格环境的多计算引擎协同方法
CN1801745A (zh) 一种建立网络故障诊断规则库的方法
CN1227624C (zh) 物体领域信息产生方法和设备
CN105957138B (zh) 一种基于装配的家具产品三维建模方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20070307

Termination date: 20160413