点云模型中自适应分层方法研究
王春香,王岩辉
(内蒙古科技大学 机械工程学院,内蒙古 包头 014010)
摘要:分层算法是快速成型中一个重要的环节,为了可以更好的处理分层过程中遇到的问题,对几种常见的分层方法进行了分析,提出了一种基于点云模型进行自适应分层的算法,该算法通过计算每层切片各线段与最近点的距离,然后筛选出最大值,并计算相邻两层之间最大距离的变化率,从而达到自动调整分层厚度的结果,最后对该算法进行实验分析,结果表明该算法满足了自适应分层算法的要求。
关键词:快速成型;点云模型;最大距离;自适应分层
中图分类号: TP16
Research on Adaptive Layering Method in Point Cloud Model
WANG Chunxiang,WANG Yanhui
(Inner Mongolia University of Science and Technology,School of Mechanical Engineering, Inner Mongolia Baotou 014010)
Abstract:Slicing algorithm is an important part in the rapid prototyping process. In order to deal with problems encountered during the process, several slicing methods has been analyzed in this study and a new algorithm for slicing has been proposed. It is an adaptive layer slicing method based on the point cloud model. In the algorithm, the distance between line segment and the nearest point will be calculated for each layer. Then the maximum value of distances in each layer will be calculated as well as its changing rate in terms of adjacent layers. In this way, the adaptive layer slicing method can be achieved. Through the experimental analysis, it has been proved that the new algorithm satisfies the requirements of adaptive layer slicing method.
Key words:rapid prototyping;Point cloud model;Maximum distance;Adaptive layering
快速成型(Rapid Prototyping,RP)技术是集成机械、计算机、新材料等的一种先进制造技术,与传统的加工制造技术相比,它是通过逐层叠加来制造零件的[1]。快速成型的工艺有很多种,主要分为:3DP(三维立体印刷)、LOM(叠层实体制造)、SLA(光固化快速成型)、FDM(熔融沉积成型)、SLS(选择性激光烧结)等[2]。分层算法是快速成型技术制造中一个重要的环节,分层算法的好坏直接影响到模型的表面精度及其成型效率,因此,分层算法一直都是快速成型技术研究的重点和热点问题[3]。现阶段主要的研究问题为两个,一个是如何能够很好的处理模型精度和效率的矛盾关系,另一方面就是如何能够减小分层时产生的阶梯效应。
1、基于点云模型的分层算法提出
目前的分层方法主要分为三部分,第一是基于STL模型的分层;第二是基于CAD模型的直接分层;第三是基于点云数据的分层。
(1)基于STL模型分层
近几年,在众多的分层方法中,基于STL模型分层方法仍然是当今的研究的主流。基于STL分层算法又分为三类:第一类是基于拓扑信息的快速分层算法;第二类是基于三角面片位置的高效分层算法;第三类是基于几何连续性的分层算法。但是,基于STL模型分层方法仍然存在许多的缺陷,比如STL模型是用三角面片来表示,在对模型表面建立三角面片化时由于数据量比较大,容易产生不必要的误差,从而使后面的分层也会产生相应的误差等[4,5]。
(2)基于CAD模型的直接分层
基于CAD模型的直接分层就是对三维实体模型进行分层,不用对模型进行三角面片化,使得轮廓精度有了很大的提高。但是其也存在一些缺陷,如果是对CAD模型直接分层,则需要对其模型在分层方向上添加支撑,同时,再对分层方法进行优化时也会产生相应的困难[3]。
(3)基于点云数据的直接分层
采用对点云数据的直接分层就是对三维扫描得到的点云数据直接进行分层,避免了对其进行三角网格划分等中间过程,使得分层更加的简洁。同时分层效率和精度都有了很大的提高。但是由于扫描得到的点云数据非常的多,会产生许多亢余点,因此要对得到的点云数据进行精简[7,8]。
综上所述,分析了各种分层方法优缺点,可以发现当采用基于点云模型的分层方法时,虽然要对点云数据进行精简,但是其避免了点云转化为中间格式带来的损失,能够满足模型分层效率和精度的要求,可以很好的解决在这里我们采用的是基于点云模型的直接分层。
2、自适应分层算法的提出
在分层的过程中,按照分层厚度的是否改变可以分为等厚分层和自适应分层[4]。等厚分层就是沿着分层方向以相同的厚度对模型进行分层。虽然等厚分层的算法比较简单,分层效率也比较快,但是当模型对精度要求较高的时候,等厚分层不能满足模型的成型精度与效率。为了能够更好的展现等厚分层和自适应分层的区别,找了一个简单的模型,如图1所示,该模型的上下两个部分的倾斜角度是不一样的,上面部分的倾斜角度较小,下面的倾斜角度较大。如果采用的是等厚分层方法对下面的模型进行分层,当分层厚度满足上面部分的要求时,那么分层的厚度就会比较小,这样就会导致下面部分所打印的层数就会增加,从而使得打印效率降低;当分层厚度满足下面部分的要求时,那么层厚就会变大,对于上面部分就会产生较大的阶梯效应。因此,在这里就提出了自适应分层算法,当打印下面部分时,分层的厚度比较大,等到打印上面部分时,就需要采用较小的层厚。这样就可以满足该模型的打印要求,同时在保证模型精度的时候又提高了分层效率。
图1 自适应分层模型
通过对上面模型进行分析,可以看出等厚分层和自适应分层还是有差别的,具体有以下几个方面:第一算法的复杂度,等厚分层算法相比于自适应分层算法来说要简单;第二效率,要比较效率方面,那么它们要产生相同的误差,那么自适应分层算法要比等厚分层算法的效率高;第三误差,要比较误差方面,那就要使它们打印相同的层数,在这个基础上,自适应分层算法产生的模型误差要比等厚分层产生的模型误差要小得多;第四适用范围,等厚分层比较适合模型表面变化较小,同时精度要求不高,而自适应分层在满足等厚分层的基础上还适用于一些高精度、表面复杂的模型。因此采用自适应分层方法。
3、点云模型自适应分层算法的实现
点云模型自适应分层算法就是选择一个合适的参数,然后通过控制参数调节层厚,从而实现自适应分层的效果。自适应分层厚度的确定是分层的核心部分。文献[9]采用基于线性相关的精简方法对平面点云数据进行精简和分类得到点云数据的关键特征点,利用多个小直线段连接关键特征点构造截面轮廓线,计算层内所有点到轮廓线的距离,然后根据点到轮廓线的最大距离是不是在给定的形状误差范围内,确定下一层切片的位置,其中寻找平面轮廓线的算法非常复杂,需要进行反复的循环比较,计算量很大。文献[10]提出一种基于距离变换的自适应切片算法,其基本原理是利用图像处理技术中的距离变换来计算投影点云的径向宽度R,以R的最大值Rmax作为控制参数,能够比较准确地反映出两层轮廓之间的最大差距,通过线性同伦的方法插补中间切片数据,从而有效的控制形状误差,其中形状误差定义为两层切片间截面轮廓的最大差值。针对上面所提到的,提出了一种计算相邻层距离的变化率作为判别因子来实现自适应分层。
计算各线段(轮廓线是由多个直线段组成)与最近点的距离,找出其最大值。计算距离方法有三种:经典算法、面积算法、矢量算法。因为切片每一层的数据比较多,计算量比较大,所以采用矢量算法来计算其距离。最近点与线段的位置存在三种可能,如图2所示,
图2 点与直线的位置关系
设点p为距离线段AB最近的点,c为投影点,要想求得其距离,只需要找到向量在
上的投影即可。则投影向量为
(1)
式中是
方向上的单位向量,作用是用来确定所求向量的方向;
是两个向量的内积其中
,α为向量AP与AB之间的夹角。
又因为
(2)
根据式(2),由向量的方向性可知:当点p的位置如图2(a)所示,那么0<r<1;如果如图2(b)所示,那么r≥1;如果如图2(c)所示,那么r≤0。
特殊情况如点在线段上、点在端点、点在线段延长线上等等的情况全部适用于此公式,只是作为特殊情况出现,无需另作讨论。这也是矢量算法思想的优势所在。故根据r值的不同,最短距离可以计算为: (3)
由公式(3)可以得到第一层所有线段到最近点的距离,然后找出其中最大值记为d(1),再以相同的层厚进行分层,找出下一层距离的最大值d(2),由公式(4)得相邻两层的距离变化率,将v与设定的参数值(m)进行比较,若v大于m,则需要增加层厚;若小于m的负值则减小层厚,否则层厚不变。其中距离变化率公式为: (4)
此次采取的是投影法来提取切片数据,就是将得到的点云切片数据投影到一个平面上。自适应分层算法的流程图如图3所示:
图3 自适应分层算法流程图
4、实验与分析
对上面所提出的自适应分层算法进行实验验证,所研究的三维模型是通过三维扫描得到的。分层算法是在DELL N5010(处理器 CPU:Inter(R)Core3)的windows 7系统中安装的MATLAB R2016a编程语言环境下运行的。
斗齿齿尖:其尺寸大小为97.64×222.00×89.69mm,共有65216个数据点,点云密度为0.89,由于点云密度较小,故采用较大层厚来进行分层。图3为斗齿齿尖的点云模型图,分别对其进行自适应分层和等厚分层,得到的结果如图4、5所示。
图4 斗齿齿尖点云模型
图5为对该模型在Y轴方向的自适应分层,初始厚度为2mm,精度设为0.05,增量设为0.5mm,得到的分层结果,层数为79层,用时265.8s。
图5 斗齿齿尖y轴自适应分层效果图
图6为对该模型y轴方向的等厚分层,层厚为2mm,得到的层数为111层,时间为80.8s。
图6 斗齿齿尖y轴等厚分层效果图
由上面可以看出,自适应分层在相邻两层距离变化较大时,分层的层厚就会减小,相反层厚就会增加。经过两种方法的比较可以看出,等厚分层适合比较大且对模型表面的精度要求不高的模型,而自适应分层比较适用于高精度和表面复杂的模型。同时也验证了该算法可以通过相邻两层之间的最大欧拉距离的变化率来调整层厚,达到了自适应分层的要求,证明了结果与分析相符合。
5、结论
(1)分析了各个模型的分层方法的优劣势,然后又根据当前科技发展潮流,提出了基于点云模型的分层方法,该方法避免了三维模型转化为中间格式带来的损失,提高了成型精度。(2)对等厚分层和自适应分层进行了比较,综合模型表面的精度及其复杂度的要求,提出了自适应分层方法。(3)提出了基于点云模型的自适应分层算法,其实现自适应的判别因子是相邻两层之间的欧拉距离变化率。通过实验结果可知,该算法满足自适应分层算法的要求,同时该算法适用范围在满足等厚分层的基础上,又适用于高精度、表面复杂的模型上。
参考文献
[1]武净, 李勇. 快速成型技术及其发展现状[J]. 才智, 2012(31):67.
[2]刘斌, 肖跃加, 韩明,等. 快速原型制造技术中的线宽自动补偿研究[J]. 中国机械工程, 1996(6):43-46.
[3]赵吉宾, 刘伟军. 快速成型技术中分层算法的研究与进展[J]. 计算机集成制造系统, 2009, 15(2):209-221.
[4]王春香, 赵强. 快速成型中基于零件制造精度的分层算法优化[J]. 制造技术与机床, 2015(3):22-25.
[5]王春香, 郝志博. 快速成型中基于零件装配要求的分段分层算法[J]. 图学学报, 2014, 35(4):536-540.
[6]林洁琼, 孙超, 靖贤,等. 增材制造技术中的自适应分层研究[J]. 机械设计与制造, 2017(6):70-73.
[7]方芳, 程效军. 海量散乱点云快速压缩算法[J]. 武汉大学学报(信息科学版), 2013, 38(11):1353-1357.
[8]Javidrad F, Pourmoayed A R. Contour curve reconstruction from cloud data for rapid prototyping[J]. Robotics & Computer Integrated Manufacturing, 2011, 27(2):397-404.
[9]Pan Haipeng, Zhou Tianrui.Generation and optimization of slice profile data in rapid prototyping and manufacturing[J].Journal of Materials Processing Technology,2007:623–626.
[10]LEE K H, W OO H.Direct integration of reverse engineering and rapid prototyping [ J ] . Computers & Industrial Engineering, 2000, 38( 1) : 21-38.
作者简介:王春香,(1962-),女,教授,主要研究方向:优化方法、快速成型制造及逆向工程技术等。