一种虚拟齿轮测量中心上回转体工件快速碰撞检测的方法与流程

文档序号:11134333
一种虚拟齿轮测量中心上回转体工件快速碰撞检测的方法与制造工艺

本发明涉及实时碰撞检测技术领域,具体涉及一种虚拟齿轮测量中心上回转体工件快速碰撞检测的方法。



背景技术:

虚拟齿轮测量中心是齿轮测量机和虚拟现实技术的有机结合,以真实齿轮测量中心为基础,在计算机中以软件形式为主,没有真实量仪实体,却有真实量仪感觉和功能的虚拟机。虚拟齿轮测量中心的扫描检测技术实现了系统的虚拟测量功能,即虚拟测头与被测虚拟工件表面的连续扫描检测,它将直接影响到误差采集系统功能的完整性。

被测虚拟工件采用三维建模,一般利用三角面片来逼近真实工件的复杂表面。目前虚拟机常用的碰撞检测算法是基于Voronoi图的算法,采用遍历式扫描碰撞检测算法,需要计算测头相对于工件模型上的所有面片的距离,从而找到最近的面片。尤其高精度的回转体工件模型的三角面片数将急剧增加,碰撞检测时间延长,从而大大增加仿真时间,直接导致仿真测量运行速度太慢。



技术实现要素:

本发明要提供一种适用于虚拟齿轮测量中心上回转体工件快速碰撞检测的方法,以解决虚拟齿轮测量中心复杂回转体工件的碰撞检测时间过长,仿真测量运行速度太慢的问题。

为了解决达到上述目的,本发明提供的解决方案是:一种适用于虚拟齿轮测量中心上回转体工件快速碰撞检测的方法,包括以下步骤:

1)、在虚拟齿轮测量中心上加载已经构建好的回转体工件三角网格模型:虚拟齿轮测量中心的回转体工件是基于中心的对称的,由多个三角面片集组成;假设工件外径为D,Z方向最大最小坐标分别为Zmin和Zmax;

2)、构建回转体工件的最小圆柱体包围盒:构建的最小圆柱体包围盒与工件轴线重合,直径等于工件最大外径D,Z方向最大最小坐标分别为Zmin和Zmax

3)、对圆柱体包围盒进行等角度的扇形剖分和Z向等高度剖分:等角度剖分方向剖分成M个扇区,Z方向等高度剖分成N份,从而将工件剖分成得到M×N个扇形区域。

扇区ki,j的Z向范围和扇区角度范围可由以下公式计算:

其中i=0,1,…M-1,j=0,1,…N-1,k=0,1,…M×N-1;

4)、读取虚拟测头的位置P(Px,Py,Pz)和测头半径,计算测头极角范围和Z向高度范围,从而判断测头落于哪些小扇区的范围内,并存储该扇区序号ki,j

5)、将所有与测头相交的扇区对应的三角面片集作为候选面片集;

6)、对候选面片集进行遍历碰撞检测并返回测头到最近面片的距离值。

与现有技术相比,本发明的优点是:

1、方法简单:本发明针对回转体工件的结构和测量动作特点,进行扇形剖分,测头所在扇区容易确定;

2、有效提高虚拟环境下的碰撞检测效率:本发明是基于遍历式扫描碰撞检测算法提出的,原方法中需要对模型的所有三角面片进行碰撞距离计算,有效的碰撞检测数据多,对于复杂模型来说数据更多,费时费力,而本发明是对复杂模型先进行分区预处理,提取有可能发生碰撞的模型数据,搜索出测头附近的候选三角面片集,再对候选面片集进行遍历碰撞检测,碰撞检测时间大大缩短,从而大大缩短仿真时间,仿真测量运行速度大幅度提升。

附图说明

图1为回转体工件坐标系示意图;

图2为回转体工件XY平面扇形剖分示意图;

图3为回转体工件Z向剖分示意图;

图4为实施例1中的测头仅与一个小扇区碰撞的示意图;

图5为实施例2中的测头与2个小扇区碰撞的示意图;

图6为实施例3中的测头与4个小扇区碰撞的示意图。

具体实施方式

本发明提供的一种适用于虚拟齿轮测量中心上回转体工件快速碰撞检测的方法,包括以下步骤:

步骤1)、在虚拟齿轮测量中心上加载已经构建好的回转体工件三角网格模型:参见图1,虚拟齿轮测量中心的回转体工件是基于中心的对称的,由多个三角面片集组成;假设工件外径为D,Z方向最大最小坐标分别为Zmin和Zmax

步骤2)、构建回转体工件的最小圆柱体包围盒:构建的最小圆柱体包围盒和工件轴线重合,直径等于工件最大外径D,Z方向最大最小坐标分别为Zmin和Zmax

步骤3)、参见图2和图3,对圆柱体包围盒进行等角度的扇形剖分和Z向等高度剖分:等角度剖分方向剖分成M个扇区,Z方向等高度剖分成N份,从而将工件剖分成得到M×N个扇形区域。扇区ki,j的Z向范围和扇区角度范围可由以下公式计算:

其中i=0,1,…M-1,j=0,1,…N-1,k=0,1,…M×N-1;

步骤4)、读取虚拟测头的位置P(Px,Py,Pz)和半径,计算测头极角范围和Z向高度范围,从而判断测头落于哪些小扇区的范围内,也就说,判断发生角度和高度的相交的扇区,并存储该扇区序号ki,j

步骤5)、参见图4~图6,将所有与测头相交的扇区对应的三角面片集作为候选面片集。可能搜索到1~4个扇区,如测头位于图4所示位置时搜索到1个扇区;如测头位于图5所示位置时搜索到2个扇区;测头位于图6所示位置时,会搜索到上下相邻和左右相连的一共4个扇区上。最多搜索到4个扇区。

步骤6)、对候选面片集进行遍历碰撞检测并返回测头到最近面片的距离值。

在测试过程中:实际碰撞检测的次数跟测头与工件相对位置相关,一次搜索的总碰撞次数=M*N+1~4个扇区的总面片数。当测头位于图4时总碰撞次数=M*N+1个扇区的面片数;当测头位于图5位置时,总碰撞次数=M*N+2个扇区的面片数。当测头位于图6位置时,总碰撞次数=M*N+4个扇区的面片数。单个扇区面片数≥总面片数/(M*N),因为经常会出现一个三角面片位于多个扇区的情况。理论上M和N越大,扇区个数越多,单个扇区内的三件面片数越少,搜索次数也越少,搜索效率也越高。M值一般根据工件的自然分齿来确定;N值可根据测头直径大小来确定,一般扇区的高度应该不小于3~5倍的测头直径。比如一个齿数34、宽度为30mm的齿轮,当采用直径为2mm的测头进行检测时,一般取M=34,N=3~5。

下面结合附图和具体实施例对本发明的方法进行详细地说明。

实施例1:

一种适用于虚拟齿轮测量中心的齿轮快速碰撞检测的方法,包括以下步骤:

步骤1),参见图1,加载已构建好的齿轮三角网格模型:齿轮齿数=34,齿宽为30mm,工件直径D=114mm,Zmin=0,Zmax=30;采用工具软件创建该齿轮虚拟模型,模型包含的总面片数为13782个。

步骤2),构建圆柱体包围盒:包围盒与工件轴线重合,D=114mm和Z方向最大最小坐标Zmin=0和Zmax=30mm;

步骤3),对圆柱体包围盒进行等角度的扇形剖分和Z向等高度剖分:等角度剖分方向剖分成34个扇区(参见图2),Z方向等高度剖分成3份(参见图3),从而将工件剖分成得到102个扇形区域。扇区ki,j的Z向范围和扇区角度范围可由以下公式计算:

其中i=0,1,…M-1,j=0,1,…N-1,k=0,1,…M×N-1。

步骤4)、参见图4,读取虚拟测头的位置P(Px,Py,Pz)和半径,计算测头极角范围和高度范围,判断测头落于一个扇区内,并存储该扇区序号ki,j

步骤5)、参见图4,将所有与测头相交的扇区对应的三角面片集作为候选面片集。该候选集内实际存在面片数为148个。

步骤6)、对候选面片集内的148个面片进行遍历碰撞检测并返回测头到最近面片的距离值。

为了说明快速碰撞检测算法的优点,这里对检测时间进行对比。可进行对比的基础有两个,一是采用快速碰撞检测算法时,预处理动作(即步骤一到步骤三)是在装载工件时完成的,在虚拟机工作过程一次碰撞检测算法时只循环执行步骤四到步骤六;二个是碰撞检测的核心内容是计算测头到每一个元素体的距离,并取最小值,计算一次测头到三角面片距离的时间与计算一次测头到包围盒距离的时间是相当的。因此可以用总碰撞次数的对比来进行效率的对比。按照遍历式扫描碰撞检测算法,总碰撞检测次数为13782次;快速碰撞检测算法分两步进行,第一步进行预选的检测次数为34*3=102次,第二步碰撞检测次数为148次,总次数为102+148=250次。由此可见快速碰撞检测算法检测时间(次数)约为遍历式碰撞检测算法的1.8%,检测效率大大提高。

实施例2:

一种适用于虚拟齿轮测量中心的齿轮快速碰撞检测的方法,包括以下步骤:

步骤1)、参见图1,加载已构建好的齿轮三角网格模型:齿轮齿数=34,齿宽为30mm,工件直径D=114mm,Zmin=0,Zmax=30;采用工具软件创建该齿轮虚拟模型,模型包含的总面片数为13782个。

步骤2)、构建圆柱体包围盒:包围盒与工件轴线重合,D=114mm和Z方向最大最小坐标Zmin=0和Zmax=30mm;

步骤3)、对圆柱体包围盒进行等角度的扇形剖分和Z向等高度剖分:等角度剖分方向剖分成34个扇区(参见图2),Z方向等高度剖分成3份(参见图3),从而将工件剖分成得到102个扇形区域。扇区ki,j的Z向范围和扇区角度范围可由以下公式计算:

其中i=0,1,…M-1,j=0,1,…N-1,k=0,1,…M×N-1。

步骤4)、参见图5,读取虚拟测头的位置P(Px,Py,Pz)和半径,计算测头极角范围和高度范围,判断测头落于2个扇区内,并存储该扇区序号ki,j,ki+1,j

步骤5)、参见图5,将所有与测头相交的两个扇区对应的三角面片集作为候选面片集。该候选集内实际存在面片数为294个。

步骤6)、对候选面片集内的294个面片进行碰撞检测并返回测头到最近面片的距离值。

为了说明快速碰撞检测算法的优点,这里对检测时间(次数)进行对比。按照遍历式扫描碰撞检测算法,总碰撞检测次数为13782次;快速碰撞检测算法分两步进行,第一步进行预选的检测次数为34*3=102次,第二步碰撞检测次数为294次,总次数为102+587=396次。由此可见快速碰撞检测算法检测时间(次数)约为遍历式扫描碰撞检测算法的2.9%,检测效率大大提高。

实施例3:

一种适用于虚拟齿轮测量中心的齿轮快速碰撞检测的方法,包括以下步骤:

步骤1)、参见图1,加载已构建好的齿轮三角网格模型:齿轮齿数=34,齿宽为30mm,工件直径D=114mm,Zmin=0,Zmax=30;采用工具软件创建该齿轮虚拟模型,模型包含的总面片数为13782个。

步骤2)、构建圆柱体包围盒:包围盒与工件轴线重合,D=114mm和Z方向最大最小坐标Zmin=0和Zmax=30mm;

步骤3)、对圆柱体包围盒进行等角度的扇形剖分和Z向等高度剖分:等角度剖分方向剖分成34个扇区(参见图2),Z方向等高度剖分成3份(参见图3),从而将工件剖分成得到102个扇形区域。扇区ki,j的Z向范围和扇区角度范围可由以下公式计算:

其中i=0,1,…M-1,j=0,1,…N-1,k=0,1,…M×N-1。

步骤4)、参见图6,读取虚拟测头的位置P(Px,Py,Pz)和半径,计算测头极角范围和高度范围,判断测头落于四个扇区内,并存储该扇区序号ki,j,ki,j-1,ki+1,j,ki+1,j-1

步骤5)、参见图6,将所有与测头相交的四个扇区对应的三角面片集作为候选面片集。该候选集内实际存在面片数为587个。

步骤6)、采用遍历式扫描碰撞检测算法对候选面片集内的587个面片进行碰撞检测并返回测头到最近面片的距离值。

为了说明快速碰撞检测算法的优点,这里对检测时间(次数)进行对比。按照遍历式扫描碰撞检测算法,总碰撞检测次数为13782次;快速碰撞检测算法分两步进行,第一步进行预选的检测次数为34*3=102次,第二步碰撞检测次数为587次,总次数为102+587=689次。由此可见预处理的碰撞检测算法检测时间(次数)约为遍历式扫描碰撞检测算法的5.0%,检测效率大大提高。

综合实例1、实例2和实例3,当剖分系数为34:3时,一次快速碰撞检测时间最短约为遍历式扫描碰撞算法检测时间的1.9%,最长约为5.0%。图表1针对不同的工件进行了两种算法效率的对比。从该图表可以看到,与原有的遍历式扫描碰撞检测算法相比,进行快速碰撞检测算法的碰撞次数大大减少,提高了搜索效率。

表1 不同回转体工件的两种算法对比测试实验

为了说明剖分系数对检测效率的影响,图表2给出了不同剖分系数下快速碰撞算法的检测时间(次数)的对比。

表2 不同剖分精度下的同一模型(圆棒模型)预处理后算法测试实验

从该图表可以看到,一般情况下,当剖分系数越大,搜索效率越高。但是当剖分系数相对工件过大时,搜索效率反而会受影响。一般遵循两个原则:一是剖分后单个扇区的三角面片数大于剖分系数的乘积的两倍以上,单个面片数≥总面片数/(M*N);二是剖分扇区的实际尺寸应该大于测头直径的3~5倍。

再多了解一些
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1