掌桥专利:专业的专利平台
掌桥专利
首页

用于检测3D打印机的打印质量的方法和装置、3D打印机

文献发布时间:2023-06-19 16:06:26



技术领域

本公开涉及3D打印技术领域,具体涉及用于检测3D打印机的打印质量的方法、用于检测3D打印机的打印质量的装置、3D打印机、计算机可读存储介质和计算机程序产品。

背景技术

3D打印技术,又称为增材制造技术,它是一种以数字模型文件为基础,运用可粘合材料,通过逐层打印的方式来构造物体的技术。3D打印通常采用3D打印机来实现。3D打印机,又称三维打印机、立体打印机,是快速成型的一种工艺设备。3D打印机常在模具制造、工业设计等领域被用于制造模型或零部件。一种典型的3D打印技术是熔融沉积成型(FusedDeposition modeling,FDM),通过逐层地在预定路径中选择性地沉积熔化材料来构建物体,使用的材料是热塑性聚合物并且呈长丝形式。目前3D打印机的打印质量还有很大的提升空间。

在此部分中描述的方法不一定是之前已经设想到或采用的方法。除非另有指明,否则不应假定此部分中描述的任何方法仅因其包括在此部分中就被认为是现有技术。类似地,除非另有指明,否则此部分中提及的问题不应认为在任何现有技术中已被公认。

发明内容

本公开提供了用于检测3D打印机的打印质量的方法、用于检测3D打印机的打印质量的装置、3D打印机、计算机可读存储介质和计算机程序产品。

根据本公开的一方面,提供了一种用于检测3D打印机的打印质量的方法。所述3D打印机包括:热床;打印头,相对于所述热床可移动;深度传感器,布置在所述打印头上用于测量所述热床的一部分相对于所述深度传感器的距离;以及至少一个处理器,用于根据所述深度传感器的测量结果得出所述热床的所述部分的局部深度图,并用于基于切片软件生成的控制代码控制所述打印头相对于所述热床移动以逐层打印3D模型。所述方法包括:获取模型参考图,其中,所述模型参考图是通过解析所述切片软件生成的控制信息而生成的,所述模型参考图表示所述3D模型的首层的至少一部分在所述热床上的占用区域;基于所述模型参考图,生成扫描路径,其中,所述扫描路径被生成以使得当所述深度传感器随着所述打印头相对于所述热床的移动而沿所述扫描路径移动时,所述深度传感器依次测量所述占用区域的多个不同位置相对于所述深度传感器的距离;使所述深度传感器在所述打印头的承载下沿所述扫描路径移动,并根据所述深度传感器在该移动期间对所述多个不同位置的测量得出第一局部深度图序列,其中,所述第一局部深度图序列指示所述多个不同位置相对于所述深度传感器的相应距离;使所述打印头在所述热床上打印所述3D模型的首层;使所述深度传感器在所述打印头的承载下沿所述扫描路径移动,并根据所述深度传感器在该移动期间对所述多个不同位置的测量得出第二局部深度图序列,其中,所述第二局部深度图序列指示在所述3D模型的首层被打印在所述热床上之后,所述多个不同位置相对于所述深度传感器的相应距离;通过确定所述第一局部深度图序列中各个局部深度图与所述第二局部深度图序列中对应的局部深度图之间的差值,得出所述3D模型的首层在所述多个不同位置处的相应高度;生成与所述模型参考图对应的全局深度图,其中,所述全局深度图在与所述多个不同位置对应的多个坐标处分别被填充所述相应高度的值;以及基于所述模型参考图、所述切片软件为所述3D模型的首层设定的打印高度、以及所述全局深度图,确定打印质量结果,所述打印质量结果指示所述3D模型的首层的所述至少一部分的打印质量。

根据本公开的另一方面,提供了一种用于检测3D打印机的打印质量的装置。所述3D打印机包括:热床;打印头,相对于所述热床可移动;深度传感器,布置在所述打印头上用于测量所述热床的一部分相对于所述深度传感器的距离;以及至少一个处理器,用于根据所述深度传感器的测量结果得出所述热床的所述部分的局部深度图,并用于基于切片软件生成的控制代码控制所述打印头相对于所述热床移动以逐层打印3D模型。所述装置包括:第一模块,用于获取模型参考图,其中,所述模型参考图是通过解析所述切片软件生成的控制信息而生成的,所述模型参考图表示所述3D模型的首层的至少一部分在所述热床上的占用区域;第二模块,用于基于所述模型参考图,生成扫描路径,其中,所述扫描路径被生成以使得当所述深度传感器随着所述打印头相对于所述热床的移动而沿所述扫描路径移动时,所述深度传感器依次测量所述占用区域的多个不同位置相对于所述深度传感器的距离;第三模块,用于使所述深度传感器在所述打印头的承载下沿所述扫描路径移动,并根据所述深度传感器在该移动期间对所述多个不同位置的测量得出第一局部深度图序列,其中,所述第一局部深度图序列指示所述多个不同位置相对于所述深度传感器的相应距离;第四模块,用于使所述打印头在所述热床上打印所述3D模型的首层;第五模块,用于使所述深度传感器在所述打印头的承载下沿所述扫描路径移动,并根据所述深度传感器在该移动期间对所述多个不同位置的测量得出第二局部深度图序列,其中,所述第二局部深度图序列指示在所述3D模型的首层被打印在所述热床上之后,所述多个不同位置相对于所述深度传感器的相应距离;第六模块,用于通过确定所述第一局部深度图序列中各个局部深度图与所述第二局部深度图序列中对应的局部深度图之间的差值,得出所述3D模型的首层在所述多个不同位置处的相应高度;第七模块,用于生成与所述模型参考图对应的全局深度图,其中,所述全局深度图在与所述多个不同位置对应的多个坐标处分别被填充所述相应高度的值;以及第八模块,用于基于所述模型参考图、所述切片软件为所述3D模型的首层设定的打印高度、以及所述全局深度图,确定打印质量结果,所述打印质量结果指示所述3D模型的首层的所述至少一部分的打印质量。

根据本公开的另一方面,提供了一种3D打印机,包括:热床;打印头,相对于所述热床可移动;深度传感器,布置在所述打印头上用于测量所述热床的一部分相对于所述深度传感器的距离;以及至少一个处理器,被配置为根据所述深度传感器的测量结果得出所述热床的所述部分的局部深度图,并用于基于切片软件生成的控制代码控制所述打印头相对于所述热床移动以逐层打印3D模型,其中,所述至少一个处理器还被配置为执行指令以实现如上所述的方法。

根据本公开的另一方面,提供了一种存储有指令的非瞬时计算机可读存储介质,其中,所述指令在由如上所述的3D打印机的所述至少一个处理器执行时,实现如上所述的方法。

根据本公开的另一方面,提供了一种计算机程序产品,包括指令,所述指令在由如上所述的3D打印机的所述至少一个处理器执行时,实现如上所述的方法。

应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。

附图说明

附图示例性地示出了实施例并且构成说明书的一部分,与说明书的文字描述一起用于讲解实施例的示例性实施方式。所示出的实施例仅出于例示的目的,并不限制权利要求的范围。在所有附图中,相同的附图标记指代类似但不一定相同的要素。

图1示出了根据示例实施例的3D打印机的示意图;

图2示出了图1的3D打印机中的激光投射器和相机组成的激光轮廓仪的工作原理;

图3示出了根据示例实施例的用于检测3D打印机的打印质量的方法的流程图;

图4示出了3D模型的首层在热床上的示例图形表示;

图5示出了与图4的示例对应的模型参考图;

图6示出了针对图5的模型参考图的扫描路径的示例;

图7示出了第一局部深度图和对应位置处的第二局部深度图的示例;

图8示出了全局深度图的示例;以及

图9示出了根据示例实施例的检测3D打印机的打印质量的装置的结构框图。

具体实施方式

以下结合附图对本公开的示例性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示例性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

在本公开中,除非另有说明,否则使用术语“第一”、“第二”等来描述各种要素不意图限定这些要素的位置关系、时序关系或重要性关系,这种术语只是用于将一个元件与另一元件区分开。在一些示例中,第一要素和第二要素可以指向该要素的同一实例,而在某些情况下,基于上下文的描述,它们也可以指代不同实例。

在本公开中对各种所述示例的描述中所使用的术语只是为了描述特定示例的目的,而并非旨在进行限制。除非上下文另外明确地表明,如果不特意限定要素的数量,则该要素可以是一个也可以是多个。此外,本公开中所使用的术语“和/或”涵盖所列出的项目中的任何一个以及全部可能的组合方式。术语“基于”应解释为“至少部分地基于”。

3D打印技术通过逐层打印的方式来构造物体。在3D打印时,3D模型的首层的打印质量是决定该次打印能否成功的关键。如果首层的打印质量不好,将严重影响最终成型的3D模型的质量。因此,检测首层的打印质量非常重要,可以让用户在首层出现问题时及时停止打印。目前的3D打印机没有首层质量检测功能,因此无法感知首层质量问题。

发明人认识到,可以利用深度检测技术来检测首层的打印质量。而且,相比其他质量检测技术(例如,利用光学相机来检测是否存在打印空洞),深度检测技术具有更高的检测精度和适用更多类型打印材料的可应用性。

下面将结合附图详细描述本公开的实施例。

图1示出了根据本公开的实施例的3D打印机100的示意图。如图1所示,3D打印机100包括热床110、相对于热床110可移动的打印头120、布置在打印头120上的深度传感器132,用于测量热床110的一部分相对于深度传感器132的距离。此处,短语“相对于热床可移动的打印头”可以是指以下情况中的任一种:(1)热床保持静止,打印头移动;(2)热床移动,打印头保持静止;(3)热床和打印头均移动。深度传感器130的示例包括但限于激光测距仪、基于飞行时间(TOF)的深度相机、基于双目相机的深度相机、基于结构光的深度相机、激光轮廓仪。在图1的示例中,深度传感器130被示出为包括激光投射器132和相机134的激光轮廓仪。在本文中,为了便于描述,以这样的激光轮廓仪为例来说明本公开的实施例,但本公开在此方面不受限制。

激光投射器132可以是线激光器或者面激光器(例如,垂直腔面发射激光器(VCSEL))。在线激光器的情况下,3D打印机100可以包括多于一个线激光器。例如,3D打印机100可以包括两个线激光器,这两个线激光器发射的激光线在热床110上彼此交叉,从而可以适应具有不同朝向的3D模型的打印质量检测。相机134一般为2D光学相机。激光投射器132和相机134彼此成一定夹角布置,常见的布置方式有以下几种:(1)激光投射器132相对于水平面倾斜布置,斜着向被测物体投射激光,而相机134朝向正下方布置;(2)激光投射器132朝向正下方布置,而相机134相对于水平面倾斜布置;(3)激光投射器132和相机134均相对于水平面倾斜布置。借助于激光投射器132和相机134组成的激光轮廓仪,可以测量热床110与相机134之间的距离,这将在稍后进一步介绍。

3D打印机100还包括至少一个处理器(未示出)。至少一个处理器用于基于切片软件生成的控制代码控制打印头120相对于热床110移动以逐层打印3D模型。如图1所示,至少一个处理器可以驱动电机(未示出),并进而驱动挤出轮150将料盘160上的打印材料170馈送至打印头120中。在打印头120的移动过程中,打印材料从打印头120中被挤出并沉积在热床110上。通常,切片软件运行在与3D打印机100通信连接的计算设备上,并且操作用于生成控制打印过程的控制信息。例如,切片软件可以提供图形用户界面(GUI)以允许用户选择或调整表示3D模型在热床110上的位置和朝向的布局信息。切片软件可以对3D模型的3D图形表示进行切片以生成切片数据(例如,切片数量、每层切片的高度等),然后将切片数据转换成用于控制3D打印机100的打印头120沿打印路径移动以打印各层切片的控制代码。这样的控制代码通常为gcode的形式。控制代码被下载到3D打印机100以供至少一个处理器执行。为此目的,3D打印机100还可以包括用于存储程序和/或数据的至少一个存储器(未示出)。

至少一个处理器还用于根据深度传感器130的测量结果得出热床110的所述部分的局部深度图。在深度传感器130为激光投射器132和相机134的组合的情况下,激光投射器132向热床110投射激光,并且至少一个处理器根据相机134捕获的被投射在热床110上的激光的光学图像来得出热床110的被该激光照射的部分的局部深度图。图2示出了激光投射器132和相机134组成的激光轮廓仪的工作原理。在图2的示例中,激光投射器132为线激光器,并且相对于水平面倾斜布置,而相机134朝向正下方布置。激光投射器132投射出一条激光线,在三维空间中形成一个激光平面。该激光平面与待测物体(该示例中为曲面凸起)相交,形成一条曲线。该曲线被相机134捕获到后,通过三角测距原理,可以得出这一曲线上的每一点在相机134的相机坐标系下的坐标,包括该点距相机134的距离(也可以称为深度),从而得到与该条激光线对应的局部深度图。将理解的是,图2的布置是说明性的而非限制性的。在其他实施例中,可以采用其他布置。例如,可以采用面激光器,其投射到被测物体上的激光面可以视为多条激光线的集合,并且因此可以测量多条激光线上的点到相机134的距离。测量同样可以基于三角测距原理。三角测距原理本身是已知的技术,为了不模糊本公开的主题,在此不再详细描述。

至少一个处理器还用于实现在下文中描述的各种功能。在示例中,处理器包括执行存储在固件和/或软件(未示出)中的指令的微控制器或计算机。处理器可以是可编程的以执行本文中所描述的功能。如本文中所使用的,术语计算机不仅仅限于在本领域被称为计算机的这些集成电路,而宽泛地指代计算机、处理器、微控制器、微计算机、可编程逻辑控制器、专用集成电路以及其它可编程电路,且这些术语在本文中可互换地使用。本文所讨论的计算机和/或处理器可各自采用计算机可读介质或机器可读介质,其指代参与向处理器提供指令以供执行的任何介质。上文所讨论的存储器构成计算机可读介质。这样的介质可采取许多形式,包括但不限于非易失性介质、易失性介质和传输介质。

将理解的是,在下文中结合FDM打印机来描述本公开的示例实施例,但是本公开并不限于FDM打印机。在实施例中,打印头120可以被配置为能够挤出任何适于3D打印的材料,包括例如热塑性塑料、合金、金属粉末、陶瓷材料、陶瓷粉末、聚合物等。

图3是示出根据示例实施例的用于检测3D打印机的打印质量的方法300的流程图。为了讨论的目的,下文结合图1所示的3D打印机100来描述方法300。在示例中,方法300可以由3D打印机100中的至少一个处理器来实现。

在步骤310,获取模型参考图。模型参考图表示3D模型的首层的至少一部分在热床110上的占用区域。

下面结合图4和图5来说明模型参考图。图4示出了3D模型的首层在热床410上的示例图形表示,并且图5示出了与图4的示例对应的模型参考图。在该示例中,3D模型的首层在热床410上的占用区域包括四个分立区域440a、440b、440c和440d。这些区域可以由相同的打印材料或不同的打印材料形成。虽然分立区域440a、440b、440c和440d在图4中被示出为具有矩形形状,但是这只是说明性的;在其他示例中,3D模型的首层的占用区域可以具有其他形状或配置(例如,单个连通的区域),本公开在此方面不受限制。与图4的图形表示相对应,模型参考图510包括四个像素区域540a、540b、540c和540d,如图5所示。一般地,模型参考图510可以是在热床坐标系oxyz(图4)下生成的,并且像素区域540a、540b、540c和540d在模型参考图510中的坐标与分立区域440a、440b、440c和440d在热床410上的坐标一一对应。将理解的是,虽然模型参考图510在图5中被示出为具有与图4的热床410的尺寸对应的尺寸,但这不是必须的。在其他示例中,模型参考图510可以仅具有与占用区域(图4中,作为整体的分立区域440a、440b、440c和440d)的边界框(bounding box)相对应的尺寸,从而节省存储空间。

还将理解的是,模型参考图并不一定需要表示3D模型的首层的全部,而可以只表示3D模型的首层的一部分。这是因为在一些情况下,可能只需要检测3D模型的首层的一部分的打印质量。例如,由于热床的温度分布可能是不均匀,在一些热床区域温度较高,而另一些热床区域温度较低。在温度较低的热床区域,打印材料可能不能正常成型并因此出现打印缺陷。在这种情况下,可以只针对温度较低的热床区域来进行打印质量的检测,由此提高检测效率。

模型参考图可以通过解析切片软件生成的控制信息而生成。在一些实施例中,切片软件生成的控制信息包括用于打印3D模型的首层的控制代码(例如,gcode)。在这样的实施例中,获取模型参考图(步骤310)可以包括:从与3D打印机100通信连接的计算设备接收模型参考图。模型参考图由切片软件在计算设备上运行时通过解析该用于打印3D模型的首层的控制代码而生成。替换地,获取模型参考图(步骤310)可以包括:从3D打印机100本地读取模型参考图。模型参考图由至少一个处理器通过解析该用于打印3D模型的首层的控制代码而生成。由于控制代码规定了打印头的运动路径,因此可以从其恢复出3D模型的首层在热床上的占用区域。

在一些实施例中,切片软件生成的控制信息包括表示3D模型在热床110上的位置和朝向的布局信息。在这样的实施例中,获取模型参考图(步骤310)可以包括:从与3D打印机100通信连接的计算设备接收模型参考图。模型参考图由切片软件在计算设备上运行时通过解析该布局信息而生成。由于布局信息定义了3D模型在热床上的位置和朝向,因此可以从其恢复出3D模型的首层在热床上的占用区域。

返回参考图3,在步骤320,基于模型参考图,生成扫描路径。扫描路径被生成以使得当深度传感器130随着打印头120相对于热床110的移动而沿该扫描路径移动时,深度传感器130依次测量占用区域的多个不同位置相对于深度传感器130的距离。

图6示出了针对图5的模型参考图的扫描路径的示例。在一些实施例中,占用区域包括彼此间隔开的至少一个分立区域,模型参考图包括分别表示至少一个分立区域的至少一个像素区域,并且生成扫描路径(步骤320)可以包括以下操作:

(1a)确定该至少一个像素区域各自的边界框,以得到与该至少一个像素区域分别对应的至少一个边界框。在图6的示例中,可以确定像素区域540a、540b、540c和540d各自的边界框,从而得到四个边界框。

(1b)在模型参考图中确定一条扫描路径,表示深度传感器的视场(FOV)的虚拟框沿该扫描路径移动以每次覆盖作为整体的该至少一个边界框的一部分,并最终遍历该至少一个边界框的全部区域。在图6的示例中,示出了表示相机134的FOV的虚拟框,并且以空心箭头示出了所确定的扫描路径。在该示例中,扫描路径为Zig-Zag路径,但这是说明性的而非限制性的。

将理解的是,生成边界框的操作不是必须的。在一些实施例中,可以针对模型参考图中表示3D模型的首层在热床上的占用区域的像素区域的原始形状,来生成扫描路径。在其他实施例中,还可以采用任何其他适当的方式来生成扫描路径,只要深度传感器可以测量3D模型的首层在热床上的占用区域的多个目标位置即可。

在一些实施例中,占用区域包括彼此间隔开的至少一个分立区域,模型参考图包括分别表示至少一个分立区域的至少一个像素区域,并且生成扫描路径(步骤320)可以包括以下操作:

(2a)确定该至少一个像素区域各自的连通域,以得到与该至少一个像素区域分别对应的至少一个连通域。在图6的示例中,可以确定像素区域540a、540b、540c和540d各自的连通域,从而得到四个连通域。

(2b)针对每个连通域,在模型参考图中确定一条移动路径,表示深度传感器的视场的虚拟框沿该移动路径移动以每次覆盖该连通域的一部分,并最终遍历该连通域的全部区域。这可以与上面描述的操作(1b)类似,并且不再赘述。

(2c)将针对所有连通域的移动路径合并为一条合并路径,以作为所述扫描路径。通过针对占用区域的每个分立区域生成单独的扫描路径,并将各个单独的扫描路径合并为最终的扫描路径,可以减少针对非目标区域(例如,图6中的空白区域)的扫描,从而提高检测效率。

将理解的是,在实施例中,扫描路径是针对深度传感器130的视场(例如,相机134的视场)而生成的,而深度传感器130的扫描路径不一定与打印头120的移动路径重合,因为深度传感器130的取向和打印头120的取向之间可能存在旋转和/或平移。可以通过外参标定,预先标定打印头120与深度传感器130在三维坐标系(例如,热床坐标系)下的旋转和/或平移,并将针对深度传感器130的扫描路径转换成针对打印头120的移动路径,并生成相应的控制代码来控制打印头120的移动,使得深度传感器130在打印头120的承载下沿着扫描路径移动。外参标定是已知的技术,为了不模糊本公开的主题,在此不做详细描述。

返回参考图3,在步骤330,使深度传感器130在打印头120的承载下沿扫描路径移动,并根据深度传感器130在该移动期间对热床110上的所述多个不同位置的测量得出第一局部深度图序列。第一局部深度图序列指示所述多个不同位置相对于深度传感器130的相应距离。

在一些实现方式中,按照相机134在扫描路径上拍摄各个光学图像时打印头120在热床坐标系下的物理坐标,对第一局部深度图序列中的各个第一局部深度图进行编号,并存储到内存中。编号的目的是使得各个第一局部深度图与热床110上的所述多个不同位置可以对应上。将理解的是,第一局部深度图可以在相机坐标系下存储,也可以转换到图像坐标系下存储。下文以在相机坐标系下存储为例说明。

在步骤340,使打印头120在热床110上打印3D模型的首层。

在步骤350,使深度传感器130在打印头120的承载下沿扫描路径移动,并根据深度传感器130在该移动期间对热床110上的所述多个不同位置的测量得出第二局部深度图序列。第二局部深度图序列指示在3D模型的首层被打印在热床110上之后,所述多个不同位置相对于深度传感器130的相应距离。这一步骤使得深度传感器130按照与步骤330中相同的扫描路径再次进行扫描。

同样地,在一些实现方式中,可以按照相机134在扫描路径上拍摄各个光学图像时打印头120在热床坐标系下的物理坐标,对第二局部深度图序列中的各个第二局部深度图进行编号,并在相机坐标系下存储到内存中。这使得各个第二局部深度图与热床110上的所述多个不同位置可以对应上,并且因此也与步骤330中存储的各个第一局部深度图也对应上。

在步骤360,通过确定第一局部深度图序列中各个局部深度图与第二局部深度图序列中对应的局部深度图之间的差值,得出3D模型的首层在多个不同位置处的相应高度。

图7示出了第一局部深度图Lb和对应位置处的第二局部深度图Lm的示例。在图7的示例中,通过确定第一局部深度图Lb与第二局部深度图Lm之间的差值,可以得出3D模型的首层在该位置处的高度。将理解的是,图7只是深度图的可视化表示;深度图本身可以是三维坐标的点云,并且点云中的每个点可以视为深度图的一个像素。

返回参考图3,在步骤370,生成与模型参考图510对应的全局深度图。全局深度图在与热床110上的所述多个不同位置对应的多个坐标处分别被填充相应高度的值。图8示出了全局深度图的示例800。

在一些实施例中,生成与模型参考图对应的全局深度图(步骤370)可以包括以下操作:

(3a)将第一局部深度图序列或第二局部深度图序列中表示所述多个不同位置的多个第一坐标分别转换为模型参考图所在坐标系下的多个第二坐标。继续前文的示例(第一局部深度图和第二局部深度图在相机坐标系下被存储),可以将第一局部深度图序列或第二局部深度图序列的在相机坐标系下的坐标分别转换为模型参考图所在坐标系(例如,热床坐标系)下的坐标。坐标系转换矩阵可以通过内参标定来得到。内参标定是已知的技术,为了不模糊本公开的主题,在此不作详细描述。

(3b)生成模型参考图所在坐标系下的空白深度图。在模型参考图位于热床坐标系的示例中,可以在热床坐标系下生成空白的深度图。如前所述,深度图可以是三维坐标的点云(例如,采用三维矩阵的形式),每个点可以具有x、y和z三个维度,其中x和y表示热床坐标系下xy平面上的平面坐标,并且z表示热床坐标系下z方向上的高度值。可以理解,空白深度图中,z维度没有数据(或者可以填充为0)。

(3c)在空白深度图中的所述多个第二坐标处分别填充相应高度的值,以得到全局深度图。这可以认为是将步骤360中得到的局部深度拼接为全局的深度图800。

返回参考图3,在步骤380,基于模型参考图、切片软件为3D模型的首层设定的打印高度、以及全局深度图,确定打印质量结果。打印质量结果指示3D模型的首层的所述至少一部分的打印质量。

应当理解,模型参考图510和切片软件设定的打印高度指示热床110上的所述多个不同位置处的目标打印高度,而全局深度图800指示所述多个不同位置处的实际打印高度。因此,可以根据打印高度的目标值与实际值之间的误差来检测是否存在打印缺陷,或者打印缺陷的严重程度。在一些实施例中,确定打印质量结果(步骤380)包括以下操作:

(4a)比较所述多个不同位置处的目标打印高度与所述多个不同位置中对应位置处的实际打印高度。

(4b)基于所述比较来确定打印质量结果。

还将理解,可以通过各种可能的方式来度量这种目标值与实际值之间的误差,并由此确定打印质量结果。在下文中,提供一些说明性的实现方式,不应视为限制性的。

在一些实施例中,上述比较操作(4a)可以包括:

(5a)确定3D模型的首层的正常高度范围,所述正常高度范围的上下界与所述设定的打印高度相关。因为不同打印材料的特性不同,假设设定的首层高度为0.2mm,实际测量到的高度不一定是0.2mm(一般会偏低一点),因此需要确定正常高度范围。在一些实现方式中,操作(5a)可以包括:

(5a-1)基于所述设定的打印高度,确定默认高度范围,所述默认高度范围的上下界是所述设定的打印高度的函数。在示例中,设定的打印高度为h,默认高度范围为[h

(5a-2)确定全局深度图中的一组像素,该组像素包括高度值在默认高度范围[h

(5a-3)计算该组像素处的高度值平均值

(5a-4)通过将高度值平均值

在一些实现方式中,在打印材料被预先标定的情况下(例如,预先标定打印材料的测量高度与打印高度的比值范围),可以直接用打印材料的标定信息来确定正常高度范围。在这样的实现方式中,操作(5a)包括:根据所述设定的打印高度和打印材料的标定信息确定正常高度范围,所述打印材料的标定信息指定所述正常高度范围的上下界与所述设定的打印高度之间的函数关系。将理解的是,不同的打印材料可以具有不同的标定信息,因而针对设定的同一打印高度可以具有不同的正常高度范围。

在一些实施例中,可以对全局深度图进行插值以增加具有高度值的像素的数目。在一些情况下,原始的全局深度图比较稀疏,例如由于深度传感器在扫描路径上的测量位置之间的间隔较大,和/或深度传感器的测量数据存在空洞。这对于缺陷检测算法是不利的,因此可以对原始的全局深度图进行插值。这里,可以使用多种插值方法,其中最简单的就是线性插值。在示例中,对在列方向上进行扫描得到的全局深度图,可以遍历全局深度图所有的行。如果全局深度图中的某个像素D(x)没有高度值,而它左右一定范围内(比如30个像素)存在具有高度值的有效像素D(x

D(x)=((x-x

将理解的是,插值不是必须的。例如,在深度传感器中采用面激光器的情况下,全局深度图中的有效像素是比较稠密的,因而可以无需插值。

(5b)通过将全局深度图中各个像素处的高度值与正常高度范围进行比较,将全局深度图中的像素分为正常像素和异常像素。正常像素处的高度值在正常高度范围内,异常像素处的高度值在正常高度范围外。异常像素又可以分为偏低像素(该像素处的高度值低于正常高度范围的下界)和偏高像素(该像素处的高度值高于正常高度范围的上界)。

(5c)确定模型参考图中表示所述占用区域的至少一个像素区域。每个像素区域通常为连通域的形式,该连通域中的每个像素表示热床上的对应位置被3D模型的首层占用。应当理解,表示占用区域的不同像素区域可以具有不同的面积。出于检测效率的目的,可以只针对一部分面积较大(例如大于阈值T

(5d)针对所述至少一个像素区域中的至少一者:

(5d-1)统计全局深度图中与该像素区域对应的各个像素中的正常像素数量和异常像素数量。例如,对于面积大于阈值T

(5d-2)将正常像素数量和异常像素数量分别与对应的阈值相比较,和/或将正常像素与异常像素之间的相对数量关系与对应的阈值相比较。

如前所述,可以通过各种可能的方式来度量打印高度的目标值与实际值之间的误差。此处,正常像素数量、异常像素数量以及正常像素与异常像素之间的相对数量关系都是反映打印高度的目标值与实际值之间的误差的度量准则。在一个示例中,根据正常像素、偏低像素、偏高像素的像素数量n

其中,T

基于操作(4a)中的比较结果,在操作(4b)中可以确定打印质量结果。继续上面关于误差级别l的示例,可以定义如下判定逻辑:

如果任意一个连通域C出现错误级别等于2的,则判定打印质量结果为“错误”,输出最终的错误级别2。

否则,如果出现错误级别等于1的连通域大于等于2个,且总的异常像素数(所有连通域内的n

否则,如果出现错误级别等于1的连通域大于等于1个,判定打印质量结果为“警告”,输出最终的错误级别1。

否则,判定打印质量结果为“正常”,最终的错误级别0。

将理解的是,这样的判断逻辑只是说明性而非限制性的。在其他实施例中,可以适用其他的判定逻辑。例如,可以根据打印高度的目标值与实际值之间的误差的累加绝对值来进行打印质量结果的判定。应当理解,如果知晓打印高度的目标值与实际值之间的误差,就可以设计各种可能的判定准则来检测打印质量。本公开不可能穷尽所有的判定准则,但是这不影响这些其他的判定准则也落入本公开的范围内。

在一些实施例中,打印质量结果可以包括指示检测可靠程度的置信度。置信度为全局深度图中具有高度值的像素数目和模型参考图的像素总数的函数。在示例中,置信度为全局深度图中具有高度值的像素数目和模型参考图的像素总数之比。在其他示例中,置信度可以是全局深度图中具有高度值的像素数目和模型参考图的像素总数的其他适当的函数。

受各种系统误差的影响,实际打印的首层图案与模型参考图的首层图案不一定是严格对齐的,因此可还需要对模型参考图和全局深度图进行配准,以找出最佳匹配位置下的误差。在一些实施例中,在操作(5d)(即,针对所述至少一个像素区域中的至少一者,统计全局深度图中与该像素区域对应的各个像素中的正常像素数量和异常像素数量之前,可以将全局深度图与模型参考图配准,以使得全局深度图和模型参考图根据配准准则被对齐。

在实施例中,可以使用各种配准方法,例如:

(1)基于灰度的模板匹配算法:根据已知模板图像到另一幅图像中寻找与模板图像相似的子图像。例如,将全局深度图和模型参考图进行二值化,并对二值化后的全局深度图和模型参考图进行模板匹配。

(2)基于特征的匹配算法:首先提取图像的特征,再生成特征描述子,最后根据描述子的相似程度对两幅图像的特征之间进行匹配。图像的特征可以包括点、线(边缘)、区域(面)等,也可以分为局部特征和全局特征。

(3)基于关系的匹配算法:利用机器学习算法来对图像进行匹配。

在一个示例中,可以使用暴力搜索法,找到全局深度图与模型参考图的最佳匹配位置,然后在最佳匹配位置下计算误差。具体来说,将全局深度图从x,y两个方向进行移动,在新位置计算误差,如果新位置的异常像素数比之前记录的最佳位置的异常像素数少,则将新位置更新为最佳匹配位置。为了减少计算量,搜索范围可以限制在一个窗口范围(比如20个像素,对应物理坐标的2mm)。并且,如果新位置的异常像素数如果比上一个位置的异常像素数多很多(比如多20%),就停止当前方向的搜索。

如前所述,可以通过各种可能的方式来度量这种目标值与实际值之间的误差,并由此确定打印质量结果。在一些实施例中,确定打印质量结果可以包括:将模型参考图、切片软件设定的打印高度以及全局深度图输入经训练的机器学习算法(例如,分类神经网络),以得到经训练的机器学习算法输出的打印质量结果。如前所述,模型参考图和切片软件设定的打印高度指示热床上的多个不同位置处的目标打印高度,而全局深度图指示所述多个不同位置处的实际打印高度。机器学习算法可以适用于确定打印高度的目标值与实际值之间的误差这种应用场景。在存在大量训练样本的情况下,可以对机器学习算法进行训练,来检测是否存在打印缺陷。

图9示出了根据示例实施例的检测3D打印机的打印质量的装置900的结构框图。装置900包括第一模块910、第二模块920、第三模块930、第四模块940、第五模块950、第六模块960、第七模块970和第八模块980。为了讨论的目的,下面结合图1的3D打印机100描述装置900。

第一模块910用于获取模型参考图。模型参考图表示3D模型的首层的至少一部分在热床110上的占用区域。

第二模块920用于基于模型参考图,生成扫描路径。扫描路径被生成以使得当深度传感器130随着打印头120相对于热床110的移动而沿该扫描路径移动时,深度传感器130依次测量占用区域的多个不同位置相对于深度传感器130的距离。

第三模块930用于使深度传感器130在打印头120的承载下沿扫描路径移动,并根据深度传感器130在该移动期间对热床110上的所述多个不同位置的测量得出第一局部深度图序列。第一局部深度图序列指示所述多个不同位置相对于深度传感器130的相应距离。

第四模块940用于使打印头120在热床110上打印3D模型的首层。

第五模块950用于使深度传感器130在打印头120的承载下沿扫描路径移动,并根据深度传感器130在该移动期间对热床110上的所述多个不同位置的测量得出第二局部深度图序列。第二局部深度图序列指示在3D模型的首层被打印在热床110上之后,所述多个不同位置相对于深度传感器130的相应距离。

第六模块960用于通过确定第一局部深度图序列中各个局部深度图与第二局部深度图序列中对应的局部深度图之间的差值,得出3D模型的首层在多个不同位置处的相应高度。

第七模块970用于生成与模型参考图510对应的全局深度图。全局深度图在与热床110上的所述多个不同位置对应的多个坐标处分别被填充相应高度的值。

第八模块980用于基于模型参考图、切片软件为3D模型的首层设定的打印高度、以及全局深度图,确定打印质量结果。打印质量结果指示3D模型的首层的所述至少一部分的打印质量。

应当理解,图9中所示装置900的各个模块可以与参考图3描述的方法300中的各个步骤相对应。由此,上面针对方法300描述的操作、特征和优点同样适用于装置900及其包括的模块。为了简洁起见,某些操作、特征和优点在此不再赘述。

虽然上面参考特定模块讨论了特定功能,但是应当注意,本文讨论的各个模块的功能可以分为多个模块,和/或多个模块的至少一些功能可以组合成单个模块。本文讨论的特定模块执行动作包括该特定模块本身执行该动作,或者替换地该特定模块调用或以其他方式访问执行该动作(或结合该特定模块一起执行该动作)的另一个组件或模块。因此,执行动作的特定模块可以包括执行动作的该特定模块本身和/或该特定模块调用或以其他方式访问的、执行动作的另一模块。

还应当理解,本文可以在软件硬件元件或程序模块的一般上下文中描述各种技术。上面关于图9描述的各个模块可以在硬件中或在结合软件和/或固件的硬件中实现。例如,这些模块可以被实现为计算机程序代码/指令,该计算机程序代码/指令被配置为在一个或多个处理器中执行并存储在计算机可读存储介质中。可替换地,这些模块可以被实现为硬件逻辑/电路。例如,在一些实施例中,这些模块中的一个或多个可以一起被实现在片上系统(SoC)中。SoC可以包括集成电路芯片(其包括处理器(例如,中央处理单元(CPU)、微控制器、微处理器、数字信号处理器(DSP)等)、存储器、一个或多个通信接口、和/或其他电路中的一个或多个部件),并且可以可选地执行所接收的程序代码和/或包括嵌入式固件以执行功能。

根据本公开的实施例,还提供了一种存储有指令的非瞬时计算机可读存储介质,指令用于使如上所述的3D打印机100执行如本公开任一实施例所描述的方法。

根据本公开的实施例,还提供了一种计算机程序产品,包括指令,指令用于使如上所述的3D打印机100执行如本公开任一实施例所描述的方法。

应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行、也可以顺序地或以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。

虽然已经参照附图描述了本公开的实施例或示例,但应理解,上述的方法、系统和设备仅仅是示例性的实施例或示例,本公开的范围并不由这些实施例或示例限制,而是仅由授权后的权利要求书及其等同范围来限定。实施例或示例中的各种要素可以被省略或者可由其等同要素替代。此外,可以通过不同于本公开中描述的次序来执行各步骤。进一步地,可以以各种方式组合实施例或示例中的各种要素。重要的是随着技术的演进,在此描述的很多要素可以由本公开之后出现的等同要素进行替换。

相关技术
  • 用于检测3D打印机的打印质量的方法和装置、3D打印机
  • 3D打印机的打印质量实时监测装置及监测方法
技术分类

06120114701363