本發明涉及3d打印技術領域,特別涉及基于圖像識別技術的3d打印機及其打印方法。
背景技術:
3d打印,又稱增材制造,屬于快速成型技術的一種。3d打印技術出現于20世紀80年代,但由于成本的原因最近幾年才被越來越多的使用。熔融沉積成型的3d打印技術是現在的消費級3d打印機所采用的一種主流技術。
熔融沉積成型的3d打印技術的原理:將絲狀的熱熔性材料進行加熱融化,通過帶有微細噴嘴的擠出機把材料擠出來。噴頭可以沿y軸和z軸方向進行移動,工作臺則沿x軸的方向移動(當然不同的設備其機械結構的設計也許不一樣),熔融的絲材被擠出后隨即會和前一層材料粘合在一起。一層材料沉積后工作臺將按預定的增量上升一個厚度,然后重復以上的步驟直到工件完全成型。
3d打印機使用一端時間后,由于各傳動機構的磨損會出現傳動不足的情況,導致噴頭的實際位置和模型文件中的位置存在誤差,進而降低產品精度。
技術實現要素:
本發明實施例提供了基于圖像識別技術的3d打印機及其打印方法,用以解決現有技術中存在的問題。
一種基于圖像識別技術的3d打印機,包括打印機主體、圖像采集模塊和上位機,所述打印機主體內部安裝有x、y和z向的滑軌,兩個x向滑軌兩端均垂直且滑動安裝在兩個y向滑軌之間,每個y向滑軌的兩端分別垂直且滑動安裝在兩個z向滑軌之間,兩個x向滑軌之間滑動安裝有一個噴頭,所述噴頭的底部具有噴嘴;
所述圖像采集模塊包括頂部紅外攝像頭和側面紅外攝像頭,所述噴頭側面固定安裝一個所述頂部紅外攝像頭,且鏡頭沿z軸方向向下,兩個x向滑軌之間固定安裝一個所述側面紅外攝像頭,且鏡頭沿x軸方向朝向噴嘴,該側面紅外攝像頭300與噴嘴處于同一水平面上;
所述上位機中具有
處理器,用于實現各指令;以及
存儲設備,用于存儲多條指令,所述指令適于由處理器加載并執行:
讀取3d打印機本體中存儲的打印機型號,在模型數據庫中搜索與該打印機型號匹配的3d打印機誤差校正文件,如果模型數據庫中不存在與當前打印機型號匹配的3d打印機誤差校正文件,則按照3d模型文件控制噴頭的移動軌跡;
打印過程中,控制側面紅外攝像頭拍攝多張紅外圖像,根據紅外圖像識別正在打印的一層,進而計算該層的厚度,輸出當前層厚度;
一層打印完畢后,控制頂部紅外攝像頭拍攝多張紅外圖像,根據紅外圖像識別打印完畢的一層,進而計算該層所在區域的長和寬,輸出當前層長和寬;
讀取3d模型文件中記錄的打印完畢層的標準厚度和標準外接矩形的長和寬,分別與所述當前層厚度和當前層長和寬比較,計算并輸出厚度誤差和形狀誤差;
根據厚度誤差和形狀誤差分別對3d模型文件中記錄的下一層的標準厚度和標準外接矩形的長和寬進行校正,輸出校正后的數據;
下一層打印開始后,根據校正后的數據控制噴頭的移動軌跡;
重復以上指令,直到打印完畢。
本發明還提供了一種基于圖像識別技術的3d打印方法,包括以下步驟:
讀取3d打印機本體中存儲的打印機型號,在模型數據庫中搜索與該打印機型號匹配的3d打印機誤差校正文件,如果模型數據庫中不存在與當前打印機型號匹配的3d打印機誤差校正文件,則按照3d模型文件控制噴頭的移動軌跡;
打印過程中,控制側面紅外攝像頭拍攝多張紅外圖像,根據紅外圖像識別正在打印的一層,進而計算該層的厚度,輸出當前層厚度;
一層打印完畢后,控制頂部紅外攝像頭拍攝多張紅外圖像,根據紅外圖像識別打印完畢的一層,進而計算該層所在區域的長和寬,輸出當前層長和寬;
讀取3d模型文件中記錄的打印完畢層的標準厚度和標準外接矩形的長和寬,分別與所述當前層厚度和當前層長和寬比較,計算并輸出厚度誤差和形狀誤差;
根據厚度誤差和形狀誤差分別對3d模型文件中記錄的下一層的標準厚度和標準外接矩形的長和寬進行校正,輸出校正后的數據;
下一層打印開始后,根據校正后的數據控制噴頭的移動軌跡;
重復以上指令,直到打印完畢。
本發明實施例中提供了基于圖像識別技術的3d打印機及其打印方法,在打印過程中使用側面紅外攝像頭拍攝正在打印層的紅外圖像,使用頂部紅外攝像頭拍攝打印完畢層的紅外圖像,接著識別并計算紅外圖像中當前層的厚度和打印完畢層外接矩形的長和寬,根據前面得到的厚度和長和寬對3d模型文件中下一層的標準厚度和標注長和寬分別校正后,使用校正后的數據與下一層打印時噴頭的移動軌跡進行控制,使用前一層的誤差校正后一層的標準數據,可以有效避免打印機因長時間工作造成的傳動誤差,進而提高產品精度。
附圖說明
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本發明實施例提供的基于圖像識別技術的3d打印機的打印機主體內部各方向滑軌及噴頭和紅外攝像頭的結構示意圖。
具體實施方式
下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
參照圖1,本發明實施例提供了基于圖像識別技術的3d打印機,該3d打印機包括打印機主體、圖像采集模塊和上位機,所述打印機主體內部安裝有x、y和z向的滑軌,如圖1所示,x向和y向滑軌的數量均為兩個,兩個x向滑軌平行且兩端均垂直且滑動安裝在兩個y向滑軌之間,z向滑軌的數量為四個,四個z向滑軌均平行,一個y向滑軌的兩端分別垂直且滑動安裝在兩個z向滑軌之間,另一個y向滑軌的兩端分別垂直且滑動安裝在剩余兩個z向滑軌之間。上述打印機主體中的x向、y向和z向滑軌為目前眾多3d打印機的滑動結構中的一種,具體滑軌之間的連接方式以及滑軌與打印機主體中其他部件的連接方式均為現有技術,在此不做詳細介紹。
兩個x向滑軌之間滑動安裝有一個噴頭100,所述噴頭100的底部具有噴嘴(圖未示),所述圖像采集模塊包括頂部紅外攝像頭200和側面紅外攝像頭300,所述噴頭100側面固定安裝一個所述頂部紅外攝像頭200,且鏡頭沿z軸方向向下,兩個x向滑軌之間還固定安裝一個所述側面紅外攝像頭300,且鏡頭沿x軸方向朝向噴嘴,該側面紅外攝像頭300與噴嘴處于同一水平面上。
應理解,所述側面紅外攝像頭300應該安裝在x向滑軌靠近末端的位置,但是不應接觸到y向滑軌,所述噴頭100在工作過程中不致撞到所述側面紅外攝像頭300。
所述噴頭100在驅動裝置的帶動下在x向滑軌上沿x軸方向移動,x向滑軌在驅動裝置的帶動下在y向滑軌上沿y軸方向移動,y向滑軌在驅動裝置的帶動下在z向滑軌上沿z軸方向移動,上述的驅動裝置以及噴頭的工作狀態均由上位機控制,上位機根據3d模型文件控制個驅動裝置和噴頭100的具體工作狀態,控制方法為現有3d打印機常用的方法,在此不再詳述。
所述上位機可以為通用計算機,使用信號線與所述打印機主體連接即可對打印機主體進行控制。所述上位機還與模型數據庫連接,所述模型數據庫中存放有多個3d模型文件以及3d打印機誤差校正文件。上位機可以從模型數據庫中下載3d模型文件及3d打印機誤差校正文件,也可以向模型數據庫中上傳3d模型文件及3d打印機誤差校正文件。在本實施例中,所述每個3d打印機誤差校正文件對應一種型號的3d打印機,其中記錄有該型號的3d打印機在各種通電工作時間段上的誤差校正數據。
所述上位機中具有存儲設備和處理器,所述存儲設備中存儲有多條指令,由所述處理器加載并執行。所述處理器執行的指令包括:
讀取3d打印機本體中存儲的打印機型號,在模型數據庫中搜索與該打印機型號匹配的3d打印機誤差校正文件,如果存在匹配的3d打印機誤差校正文件,則下載并存儲該3d打印機誤差校正文件;
讀取3d打印機本體中存儲的通電工作時間,在3d打印機誤差校正文件中查詢與該通電工作時間匹配的通電工作時間段;
在3d打印機開機工作后,根據與查詢到的通電工作時間段對應的誤差校正數據對3d模型文件中噴頭的移動數據進行校正,以校正后的數據控制噴頭的移動軌跡;
應理解,上述噴頭的軌跡為空間上的移動軌跡,由噴頭在x軸、y軸和z軸方向上的移動軌跡合成,因此上面所說的控制噴頭的移動軌跡為控制噴頭在x軸、y軸和z軸方向上的移動。
如果模型數據庫中不存在與當前打印機型號匹配的3d打印機誤差校正文件,則按照3d模型文件控制噴頭的移動軌跡;
打印過程中,控制側面紅外攝像頭拍攝多張紅外圖像,根據紅外圖像中的顏色識別正在打印的一層,進而計算該層的厚度,多張紅外圖像計算得到的厚度取平均值,輸出當前層厚度;
一層打印完畢后,控制頂部紅外攝像頭拍攝多張紅外圖像,根據紅外圖像中的顏色識別打印完畢的一層,進而計算該層所在區域的長和寬,多張紅外圖像計算得到的長和寬取平均值,輸出當前層長和寬;
在本實施例中,由噴嘴噴出的熔融材料溫度較高,在紅外圖像中呈現紅色或接近紅色的顏色,而已經凝固的材料以及周圍環境中的設備溫度較低,在紅外圖像中呈現藍色或者接近藍色的顏色,因此可以根據顏色的不同識別正在打印和打印完畢的一層;由于3d打印中每層的外部輪廓形狀不固定,對于外部輪廓不是矩形的層,識別出打印完畢的一層的外部輪廓后,使用外接矩形包圍該外部輪廓,該外接矩形的長和寬即為打印完畢一層的長和寬;
讀取3d模型文件中記錄的打印完畢層的標準厚度和標準外接矩形的長和寬,分別與所述當前層厚度和當前層長和寬比較,計算并輸出厚度誤差和形狀誤差,其中厚度誤差為標準厚度與當前層厚度的差值,標準外接矩形的長和當前層的長的差值為長度誤差,標準外接矩形的寬和當前層的寬的差值為寬度誤差,形狀誤差為長度誤差和寬度誤差的平均值;
根據厚度誤差和形狀誤差分別對3d模型文件中記錄的下一層的標準厚度和標準外接矩形的長和寬進行校正,輸出校正后的數據;
下一層打印開始后,根據校正后的數據控制噴頭的移動軌跡;
重復以上指令,直到打印完畢;
讀取3d打印機本體中存儲的通電工作時間,確定該通電工作時間所在的通電工作時間段,計算每一層打印時厚度誤差平均值和形狀誤差平均值,將包括厚度誤差平均值、形狀誤差平均值、通電工作時間段和打印機型號在內的數據制作成為3d打印機誤差校正文件,上傳至模型數據庫中。
基于相同的發明構思,本發明還提供了基于圖像識別技術的3d打印方法,該方法包括以下步驟:
讀取3d打印機本體中存儲的打印機型號,在模型數據庫中搜索與該打印機型號匹配的3d打印機誤差校正文件,如果存在匹配的3d打印機誤差校正文件,則下載并存儲該3d打印機誤差校正文件;
讀取3d打印機本體中存儲的通電工作時間,在3d打印機誤差校正文件中查詢與該通電工作時間匹配的通電工作時間段;
在3d打印機開機工作后,根據與查詢到的通電工作時間段對應的誤差校正數據對3d模型文件中噴頭的移動數據進行校正,以校正后的數據控制噴頭的移動軌跡;
如果模型數據庫中不存在與當前打印機型號匹配的3d打印機誤差校正文件,則按照3d模型文件控制噴頭的移動軌跡;
打印過程中,控制側面紅外攝像頭拍攝多張紅外圖像,根據紅外圖像中的顏色識別正在打印的一層,進而計算該層的厚度,多張紅外圖像計算得到的厚度取平均值,輸出當前層厚度;
一層打印完畢后,控制頂部紅外攝像頭拍攝多張紅外圖像,根據紅外圖像中的顏色識別打印完畢的一層,進而計算該層所在區域的長和寬,多張紅外圖像計算得到的長和寬取平均值,輸出當前層長和寬;
讀取3d模型文件中記錄的打印完畢層的標準厚度和標準外接矩形的長和寬,分別與所述當前層厚度和當前層長和寬比較,計算并輸出厚度誤差和形狀誤差,其中厚度誤差為標準厚度與當前層厚度的差值,標準外接矩形的長和當前層的長的差值為長度誤差,標準外接矩形的寬和當前層的寬的差值為寬度誤差,形狀誤差為長度誤差和寬度誤差的平均值;
根據厚度誤差和形狀誤差分別對3d模型文件中記錄的下一層的標準厚度和標準外接矩形的長和寬進行校正,輸出校正后的數據;
下一層打印開始后,根據校正后的數據控制噴頭的移動軌跡;
重復以上步驟,直到打印完畢;
讀取3d打印機本體中存儲的通電工作時間,確定該通電工作時間所在的通電工作時間段,計算每一層打印時厚度誤差平均值和形狀誤差平均值,將包括厚度誤差平均值、形狀誤差平均值、通電工作時間段和打印機型號在內的數據制作成為3d打印機誤差校正文件,上傳至模型數據庫中。
本領域內的技術人員應明白,本發明的實施例可提供為方法、系統、或計算機程序產品。因此,本發明可采用完全硬件實施例、完全軟件實施例、或結合軟件和硬件方面的實施例的形式。而且,本發明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限于磁盤存儲器、cd-rom、光學存儲器等)上實施的計算機程序產品的形式。
本發明是參照根據本發明實施例的方法、設備(系統)、和計算機程序產品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合。可提供這些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數據處理設備的處理器以產生一個機器,使得通過計算機或其他可編程數據處理設備的處理器執行的指令產生用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導計算機或其他可編程數據處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產生包括指令裝置的制造品,該指令裝置實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數據處理設備上,使得在計算機或其他可編程設備上執行一系列操作步驟以產生計算機實現的處理,從而在計算機或其他可編程設備上執行的指令提供用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
盡管已描述了本發明的優選實施例,但本領域內的技術人員一旦得知了基本創造性概念,則可對這些實施例作出另外的變更和修改。所以,所附權利要求意欲解釋為包括優選實施例以及落入本發明范圍的所有變更和修改。
顯然,本領域的技術人員可以對本發明進行各種改動和變型而不脫離本發明的精神和范圍。這樣,倘若本發明的這些修改和變型屬于本發明權利要求及其等同技術的范圍之內,則本發明也意圖包含這些改動和變型在內。