三维缺陷模型自动建模和自适应分层方法与流程

文档序号:18548127发布日期:2019-08-27 21:53阅读:394来源:国知局
三维缺陷模型自动建模和自适应分层方法与流程

本发明涉及图形处理技术领域,特别涉及一种三维缺陷模型自动建模和自适应分层方法。



背景技术:

几何模型分层是制约三维打印精度的重要因素。现有方法对模型采用相同的分层方案,而非针对模型的几何特性和拓扑特性进行针对性处理,难以满足精密零件的修复要求。



技术实现要素:

本发明所要解决的技术问题在于针对上述现有技术中的不足,提供一种三维缺陷模型自动建模和自适应分层方法。本发明提供的三维缺陷区域的三维模型自动构建方法和模型自适应的分层方案,能根据提取待修复模型的集合特性,对使用待修复区域模型进行“个性化”分层方法,以降低分层所带来的表面精度误差。

为解决上述技术问题,本发明采用的技术方案是:一种三维缺陷模型自动建模和自适应分层方法,包括以下步骤:

1)获取缺陷区域的点云数据;

2)建立缺陷区域模型;

3)获取最优分层方向;

4)根据建立的缺陷区域模型的形状及表面凹凸状况进行自适应变高分层。

优选的是,所述步骤1)具体包括:通过图像扫描仪扫描待修复的缺陷区域,获取其在扫描仪坐标系下的点云数据。

优选的是,所述步骤2)具体包括以下步骤:

2-1)获取图像扫描仪得到的点云数据,该点云数据都已在扫描仪坐标系下被描述,由该点云数据生成包含缺陷区域在内的曲面模型sori;

2-2)对sori进行空洞填补、平滑,得到smod;

2-3)使用半自动方式,在smod上沿着表面缺陷区域的边缘放置控制点,同时使用dijkstra算法自动计算前后两个控制点之间的最短路径曲线,直至所有最短路径曲线形成一个封闭曲线c;

2-4)封闭曲线c将smod切分为两部分,一部分是不存在表面缺陷的曲面smar,另一部分是仅包含了表面缺陷部分的曲面,记作sdef;

2-5)根据smar的平均曲率,对smar进行空洞填充,得到不存在空洞的零部件表面side;封闭曲线c切割side,将封闭曲线c内部的曲面和sdef进行布尔运算,得到一个封闭曲面模型sfin,sfin即为后续待修复的缺陷区域模型。

优选的是,所述步骤2-3)具体为:

f.在缺陷边缘通过人机交互方式放置第一个控制点p1,然后放置第二个p2;

g.计算smod上p1到p2的测地线,记作c1;测地线计算采用dijkstra算法;

h.放置第三个控制点p3,计算smod上p2到p3的测地线,记作c2;

i.依次放置下一个控制点,直至放置最后一个控制点pn,计算smod上pn-1到pn的测地线,记作cn-1,以及pn到p1的测地线,记作cn;

j.将c1、c2、…cn首尾相连,形成一条封闭曲线,记作c。

优选的是,所述步骤3)中采用三角面片对得到的缺陷区域模型进行分层,通过最小化平均粗糙度,求解得到分层的最优方向θ,具体为:

缺陷区域模型表面平均粗糙度是根据三角面片的角度而定,第i个三角面片的粗糙度rai为:

模型的平均粗糙度为r=∑raiai/∑ai;

其中,lt为分层厚度,θi表示第i个三角面片的分层方向,r表示模型表面平均粗糙度;raθi表示第i个三角面片的粗糙度;ai表示第i个三角面片的面积;

然后通过最小化平均粗糙度,求解得到分层的最优方向θ。

优选的是,所述步骤4)具体包括:

4-1)获取需要打印的stl模型文件;

4-2)计算三角面片的z向高度差;

4-3)计算分层高度;

4-4)确定最优分层高度;

4-5)根据确定的分层高度对stl模型文件进行分层,生成每一层的轮廓信息。

优选的是,所述步骤4-1具体包括:

4-1-1)通过缺陷区域模型获得需要打印的stl模型文件;

4-1-2)根据stl模型文件建立一个二维数组v0存储三角面片信息,每个三角面片的法矢量和三个顶点坐标放在一行,在分层时,假设当前分层为第i层,比较分层高度的z坐标值与各个三角面片的z坐标,提取出只与该分层层片存在交点的所有三角面片,存入新数组vi。

优选的是,所述步骤4-2)具体包括:

4-2-1)计算vi中各个三角面片的三个顶点中,z方向的最大与最小坐标差值,并提取出高度差,假设最小z向高度差为δh1;

4-2-2)假设当前分层为第i层,从vi中提取第j个三角面片的坐标,j取1,2,3…k,其中,k为数组vi中三角面片总数;设当前三角面片最大z坐标为zijmax,最小z坐标为zijmin,该三角面片的z向高度差δhij,则有式(1):

δhij=zijmax-zijmin(1);

4-2-3)将δhij也添加进数组vi中,则δh1可表示为式(2):

优选的是,所述步骤4-3)具体包括:

4-3-1)假设当前分层方向取z轴正方向,分层为第i层,从vi中提取第j个三角面片的法向量nij(xnij,ynij,znij),nij与z轴单位向量的夹角为βij,计算公式如式(3):

4-3-2)设αij是三角面片与分层方向的夹角βij所对应的锐角,在给定精度要求为δ的条件下,夹角αij越小,得到的分层高度h也就越小;反之,夹角越大,得到的分层高度越大;为了一层中的各部分都符合给定精度要求,取vi中的所有三角面片中的最小α来求得该层的分层高度,记为δh2;如下式(4):

由于stl模型文件中的三角面片的法向量是单位向量,则由式(2)得出cosβij=znij;由αij与βij的关系可得到,cosαmin=|znij|max是第i层中所有三角面片法向量z坐标绝对值的最大值;则δh2还可表示为下式(5):

4-3-3)用户根据设备能力和打印要求自行输入分层高度范围,假设高度取值范围为[hmin,hmax],当δh2≤hmin时,δh2=hmin;当δh2≥hmax时,δh2=hmax;由式(4)得到,计算每一层的分层高度,只需要找出vi中所有三角面片法矢量z坐标绝对值的最大值,再由用户给定精度计算出该层高度δh2;

所述步骤4-4)具体包括:选择δh1与δh2的较小值作为最终的分层高度δh,即δh=(δh1,δh2)min。

优选的是,步骤4-5)中根据步骤4-4)确定的分层高度δh,采用三角形面片对stl模型文件进行分层,根据每一层三角形面片与分层面交点的拓扑信息,获取每一层的轮廓;

其具体步骤包括:

5-1)将模型的最低点和最高点z坐标表示为zmin与zmax,假设当前高度为z;

5-2)读取stl模型文件;

5-3)确定分层高度δh,令z=zmin,若z≤zmax,则求取三角形面片与切平面交线,获取该层的轮廓信息;

5-4)令z=z+δh,重复上述步骤5-3),获取每一层的轮廓信息,直至z>zmax,结束处理。

本发明的有益效果是:本发明的三维缺陷模型自动建模和自适应分层方法,能根据提取待修复模型的集合特性,对使用待修复区域模型进行“个性化”分层方法,能根据物体形状及表面凹凸状况进行自适应变高分层,能降低分层所带来的表面精度误差,提高了构建的模型的整体精度。

附图说明

图1为本发明的一种实施例中的分层方向的示意图;

图2为本发明的一种实施例中的获取每一层的轮廓的流程图;

图3为本发明的一种实施例中的求取轮廓线的示意图。

具体实施方式

下面结合实施例对本发明做进一步的详细说明,以令本领域技术人员参照说明书文字能够据以实施。

应当理解,本文所使用的诸如“具有”、“包含”以及“包括”术语并不排除一个或多个其它元件或其组合的存在或添加。

如图1-3所示,本实施例的一种三维缺陷模型自动建模和自适应分层方法,包括以下步骤:

1)获取缺陷区域的点云数据:

通过图像扫描仪扫描待修复的缺陷区域,获取其在扫描仪坐标系下的点云数据。在一种实施例中,图像扫描仪安装在可自由转动的机械臂上,机械臂具有5以上自由度;图像扫描仪后端直接连接计算机,计算机可接受图像扫描仪生成的深度图像和点云数据(该点云数据在扫描仪坐标系中被描述)。图像扫描仪可通过手眼标定,可以和修复机器人机器臂末端进行定标。

2)建立缺陷区域模型:

具体包括以下步骤:

2-1)获取图像扫描仪得到的点云数据,该点云数据都已在扫描仪坐标系下被描述,由该点云数据生成包含缺陷区域在内的曲面模型sori;

2-2)对sori进行空洞填补、平滑,得到smod;

2-3)使用半自动方式,在smod上沿着表面缺陷区域的边缘放置控制点,同时使用dijkstra算法自动计算前后两个控制点之间的最短路径曲线,直至所有最短路径曲线形成一个封闭曲线c;

步骤2-3)具体为:

a.在缺陷边缘通过人机交互方式放置第一个控制点p1,然后放置第二个p2;

b.计算smod上p1到p2的测地线,记作c1;测地线计算采用dijkstra算法;

c.放置第三个控制点p3,计算smod上p2到p3的测地线,记作c2;

d.依次放置下一个控制点,直至放置最后一个控制点pn,计算smod上pn-1到pn的测地线,记作cn-1,以及pn到p1的测地线,记作cn;

e.将c1、c2、…cn首尾相连,形成一条封闭曲线,记作c。

2-4)封闭曲线c将smod切分为两部分,一部分是不存在表面缺陷的曲面smar,另一部分是仅包含了表面缺陷部分的曲面,记作sdef;

2-5)根据smar的平均曲率,对smar进行空洞填充,得到不存在空洞的零部件表面side;封闭曲线c切割side,将封闭曲线c内部的曲面和sdef进行布尔运算,得到一个封闭曲面模型sfin,sfin即为后续待修复的缺陷区域模型。

3)获取最优分层方向;

步骤3)中采用三角面片对得到的缺陷区域模型进行分层,通过最小化平均粗糙度,求解得到分层的最优方向θ,具体为:

缺陷区域模型表面平均粗糙度是根据三角面片的角度而定,第i个三角面片的粗糙度rai为:

模型的平均粗糙度为r=∑raiai/∑ai;

参照图1,其中,ni为第i个三角面片的法矢,na为分层方向

其中,ni为第i个三角面片的法矢,na为分层方向,lt为分层厚度。模型表面平均粗糙度是根据三角面片的角度而定,第i个三角面片的粗糙度rai为:

其中,lt为分层厚度,θi表示第i个三角面片的分层方向,r表示模型表面平均粗糙度;raθi表示第i个三角面片的粗糙度;ai表示第i个三角面片的面积;

然后通过最小化平均粗糙度,求解得到分层的最优方向θ。

4)根据建立的缺陷区域模型的形状及表面凹凸状况进行自适应变高分层,包括:

4-1)获取需要打印的stl模型文件,具体为:

4-1-1)通过缺陷区域模型获得需要打印的stl模型文件;stl模型文件是以三角形对三维模型进行表面离散化后得到的数据文件,将曲面模型转化为小三角面片组成的三维多面体模型,其文件中包含了每个三角面片的法矢量和三个顶点坐标值。

4-1-2)根据stl模型文件建立一个二维数组v0存储三角面片信息,每个三角面片的法矢量和三个顶点坐标放在一行,在分层时,假设当前分层为第i层,比较分层高度的z坐标值与各个三角面片的z坐标,提取出只与该分层层片存在交点的所有三角面片,存入新数组vi。

4-2)计算三角面片的z向高度差,具体为:

4-2-1)计算vi中各个三角面片的三个顶点中,z方向的最大与最小坐标差值,并提取出高度差,假设最小z向高度差为δh1;

4-2-2)假设当前分层为第i层,从vi中提取第j个三角面片的坐标,j取1,2,3…k,其中,k为数组vi中三角面片总数;设当前三角面片最大z坐标为zijmax,最小z坐标为zijmin,该三角面片的z向高度差δhij,则有式(1):

δhij=zijmax-zijmin(1);

4-2-3)将δhij也添加进数组vi中,则δh1可表示为式(2):

4-3)计算分层高度:

层高计算是控制精度的关键步骤,为减少阶梯误差(对模型进行分层处理的过程中,因为每层之间有一定的距离,破坏了模型表面的连续性,这样就有可能丢失一部分的轮廓信息,造成尺寸误差和表面精度),我们选择系统根据物体形状及表面凹凸状况进行自适应变高分层。具体包括:

4-3-1)假设当前分层方向取z轴正方向,分层为第i层,从vi中提取第j个三角面片的法向量nij(xnij,ynij,znij),nij与z轴单位向量的夹角为βij,计算公式如式(3):

4-3-2)设αij是三角面片与分层方向的夹角βij所对应的锐角,在给定精度要求为δ的条件下,夹角αij越小,得到的分层高度h也就越小;反之,夹角越大,得到的分层高度越大;为了一层中的各部分都符合给定精度要求,取vi中的所有三角面片中的最小α来求得该层的分层高度,记为δh2;如下式(4):

由于stl模型文件中的三角面片的法向量是单位向量,则由式(2)得出cosβij=znij;由αij与βij的关系可得到,cosαmin=|znij|max是第i层中所有三角面片法向量z坐标绝对值的最大值;则δh2还可表示为下式(5):

4-3-3)用户根据设备能力和打印要求自行输入分层高度范围,假设高度取值范围为[hmin,hmax],当δh2≤hmin时,δh2=hmin;当δh2≥hmax时,δh2=hmax;由式(4)得到,计算每一层的分层高度,只需要找出vi中所有三角面片法矢量z坐标绝对值的最大值,再由用户给定精度计算出该层高度δh2;

4-4)确定最优分层高度,具体为:

选择δh1与δh2的较小值作为最终的分层高度δh,即δh=(δh1,δh2)min。对于vi中的所有面片,通过上述计算得到δh1与δh2可反映出当前模型的状态。δh1可反映出模型表面的凹凸程度,δh1越小,表示小三角面片越多,则需要降低分层高度来保证精确度;δh2反映出三角面片与分层方向相比的倾斜程度,δh2越小,越需要减小分层高度以减小阶梯误差,提高模型整体精度。因此我们选择δh1与δh2的较小值,来保证这两个方面的误差达到最小化。

4-5)根据确定的分层高度对stl模型文件进行分层,生成每一层的轮廓信息。根据步骤4-4)确定的分层高度δh,采用三角形面片对stl模型文件进行分层,根据每一层三角形面片与分层面交点的拓扑信息,获取每一层的轮廓;

参照图2,获取每一层的轮廓的具体步骤包括:

5-1)将模型的最低点和最高点z坐标表示为zmin与zmax,假设当前高度为z;

5-2)读取stl模型文件;

5-3)确定分层高度δh,令z=zmin,若z≤zmax,则求取三角形面片与切平面交线,获取该层的轮廓信息;

5-4)令z=z+δh,重复上述步骤5-3),获取每一层的轮廓信息,直至z>zmax,结束处理。

如下图3,在一种实施例中,在求轮廓线时,对每层来说,vi中的所有三角面片,可以通过边的连续性可以建立轮廓线的链表。举例如下:

(1)通过第一个相交线ab确认与切平面相交的第一个外表面三角形abd进行标记,并记录切平面与三角面片的交点。

(2)追踪到bd边,由bd边再标记三角形面片bdc,并记录交点,以此类推得到所有的三角面片与切平面交点,最终将所有切平面和三角形边的交点首尾连接就能得到一条封闭的轮廓曲线。

尽管本发明的实施方案已公开如上,但其并不仅仅限于说明书和实施方式中所列运用,它完全可以被适用于各种适合本发明的领域,对于熟悉本领域的人员而言,可容易地实现另外的修改,因此在不背离权利要求及等同范围所限定的一般概念下,本发明并不限于特定的细节。

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