本發(fā)明涉及3d打印技術(shù)領(lǐng)域,尤其涉及一種3d打印閉環(huán)控制方法、裝置、3d打印機和存儲介質(zhì)。
背景技術(shù):
3d打印是采用熔融沉積制造(fuseddepositionmodeling,以下簡稱fdm)工藝進(jìn)行打印三維物體的技術(shù)。在當(dāng)前3d打印機中應(yīng)用fdm工藝,將絲狀的abs、尼龍等熱塑性材料輸入打印噴頭中,熱塑性材料在打印噴頭內(nèi)被加熱熔化,通過驅(qū)動機構(gòu)控制打印噴頭沿所要打印的三維物體的截面輪廓和填充軌跡運動,將熔化的熱塑性材料擠出,熔化的熱塑性材料迅速凝固,并與周圍的材料凝結(jié),以打印出三維物體。
當(dāng)前3d打印機主要采用開環(huán)控制方式控制驅(qū)動機構(gòu)沿x軸、y軸和z軸方向移動,無法精確控制打印精度和質(zhì)量。這種開環(huán)控制方式?jīng)]有實時監(jiān)控打印效果,如對于表面質(zhì)量較差、物體翹邊、移動或打印精度不符合預(yù)期等異常效果無法進(jìn)行實時監(jiān)控處理,而打印過程存在異常效果的三維物體多為不合格產(chǎn)品,使得打印出的產(chǎn)品不合格率較高,導(dǎo)致打印材料和打印時間的浪費。
技術(shù)實現(xiàn)要素:
本發(fā)明提供一種3d打印閉環(huán)控制方法、裝置、3d打印機和存儲介質(zhì),以解決當(dāng)前3d打印閉環(huán)控制過程無法對打印效果異常進(jìn)行實時監(jiān)控處理所存在的問題。
本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:
第一方面,本發(fā)明提供一種3d打印閉環(huán)控制方法,包括:
控制驅(qū)動模塊依據(jù)預(yù)設(shè)數(shù)據(jù)模型中每一層預(yù)設(shè)打印參數(shù)進(jìn)行打??;
控制視覺捕捉模塊實時捕捉當(dāng)前打印層的實際打印參數(shù);
計算所述實際打印參數(shù)相對于所述預(yù)設(shè)打印參數(shù)的實際誤差值;
判斷所述實際誤差值是否在預(yù)設(shè)誤差范圍內(nèi);
若所述實際誤差值在所述預(yù)設(shè)誤差范圍內(nèi),則獲取補償調(diào)整參數(shù),基于所述補償調(diào)整參數(shù)控制所述驅(qū)動模塊進(jìn)行下一層打印;
若所述實際誤差值不在所述預(yù)設(shè)誤差范圍內(nèi),則控制所述驅(qū)動模塊停止打印。
優(yōu)選地,所述預(yù)設(shè)打印參數(shù)包括多個預(yù)設(shè)圖像輪廓坐標(biāo),每一所述預(yù)設(shè)圖像輪廓坐標(biāo)包括預(yù)設(shè)x軸坐標(biāo)和預(yù)設(shè)y軸坐標(biāo);
所述實際打印參數(shù)包括多個實際圖像輪廓坐標(biāo),每一所述實際圖像輪廓坐標(biāo)包括實際x軸坐標(biāo)和實際y軸坐標(biāo);
所述計算所述實際打印參數(shù)相對于所述預(yù)設(shè)打印參數(shù)的實際誤差值,包括:
基于多個所述預(yù)設(shè)圖像輪廓坐標(biāo)的預(yù)設(shè)x軸坐標(biāo)計算預(yù)設(shè)x軸最大距離;
基于多個所述實際圖像輪廓坐標(biāo)的實際x軸坐標(biāo)計算實際x軸最大距離;
基于所述預(yù)設(shè)x軸最大距離和所述實際x軸最大距離計算x軸實際誤差;
基于多個所述預(yù)設(shè)圖像輪廓坐標(biāo)的預(yù)設(shè)y軸坐標(biāo)和多個所述實際圖像輪廓坐標(biāo)的實際y軸坐標(biāo),計算y軸實際誤差;
判斷判斷所述實際誤差值是否在預(yù)設(shè)誤差范圍內(nèi),包括:
判斷所述x軸實際誤差是否在x軸預(yù)設(shè)誤差范圍內(nèi);
判斷所述y軸實際誤差是否在y軸預(yù)設(shè)誤差范圍內(nèi);
若所述x軸實際誤差在所述x軸預(yù)設(shè)誤差范圍內(nèi),且所述y軸實際誤差在所述y軸預(yù)設(shè)誤差范圍內(nèi),則認(rèn)定所述實際誤差值在所述預(yù)設(shè)誤差范圍內(nèi);
若所述x軸實際誤差不在所述x軸預(yù)設(shè)誤差范圍內(nèi),或所述y軸實際誤差不在所述y軸預(yù)設(shè)誤差范圍內(nèi),則認(rèn)定所述實際誤差值不在所述預(yù)設(shè)誤差范圍內(nèi)。
優(yōu)選地,所述基于多個所述預(yù)設(shè)圖像輪廓坐標(biāo)的預(yù)設(shè)y軸坐標(biāo)和多個所述實際圖像輪廓坐標(biāo)的實際y軸坐標(biāo),計算y軸實際誤差,包括:
比較所述預(yù)設(shè)x軸最大距離和所述實際x軸最大距離的大??;
若所述預(yù)設(shè)x軸最大距離大于或等于所述實際x軸最大距離,則基于所述預(yù)設(shè)x軸坐標(biāo),計算每一所述預(yù)設(shè)y軸坐標(biāo)與所述實際y軸坐標(biāo)的y軸差值,將所有所述y軸差值的方差作為所述y軸實際誤差;
若所述預(yù)設(shè)x軸最大距離小于所述實際x軸最大距離,則基于所述實際x軸坐標(biāo),計算每一所述預(yù)設(shè)y軸坐標(biāo)與所述實際y軸坐標(biāo)的y軸差值,將所有所述y軸差值的方差作為所述y軸實際誤差。
優(yōu)選地,所述獲取補償調(diào)整參數(shù),包括:
獲取當(dāng)前位置的預(yù)設(shè)y軸坐標(biāo)和實際y軸坐標(biāo)的當(dāng)前y軸距離差值;
基于所述預(yù)設(shè)數(shù)據(jù)模型獲取當(dāng)前位置的下一步y(tǒng)軸移動距離;
基于所述當(dāng)前y軸距離差值和所述下一步y(tǒng)軸移動距離,獲取目標(biāo)y軸移動距離;
基于所述目標(biāo)y軸移動距離和步進(jìn)電機每步移動距離,獲取所述步進(jìn)電機的目標(biāo)移動步數(shù),將所述目標(biāo)移動步數(shù)作為所述補償調(diào)整參數(shù)輸出。
優(yōu)選地,所述控制視覺捕捉模塊實時捕捉當(dāng)前打印層的實際打印參數(shù),包括:
獲取所述驅(qū)動模塊的當(dāng)前打印進(jìn)度;
判斷所述當(dāng)前打印進(jìn)度是否完成所述當(dāng)前打印層的打??;
若完成所述當(dāng)前打印層的打印,則輸出打印完成信號;
基于所述打印完成信號,控制所述視覺捕捉模塊實時捕捉當(dāng)前打印層的實際打印參數(shù)。
第二方面,本發(fā)明還提供一種3d打印閉環(huán)控制裝置,包括:
驅(qū)動控制模塊,用于控制驅(qū)動模塊依據(jù)預(yù)設(shè)數(shù)據(jù)模型中每一層預(yù)設(shè)打印參數(shù)進(jìn)行打?。?/p>
捕捉控制模塊,用于控制視覺捕捉模塊實時捕捉當(dāng)前打印層的實際打印參數(shù);
誤差計算模塊,用于計算所述實際打印參數(shù)相對于所述預(yù)設(shè)打印參數(shù)的實際誤差值;
比較判斷模塊,用于判斷所述實際誤差值是否在預(yù)設(shè)誤差范圍內(nèi);
第一處理模塊,用于在所述實際誤差值在所述預(yù)設(shè)誤差范圍內(nèi)時,獲取補償調(diào)整參數(shù),基于所述補償調(diào)整參數(shù)控制所述驅(qū)動模塊進(jìn)行下一層打印;
第二處理模塊,用于在所述實際誤差值不在所述預(yù)設(shè)誤差范圍內(nèi)時,控制所述驅(qū)動模塊停止打印。
優(yōu)選地,所述預(yù)設(shè)打印參數(shù)包括多個預(yù)設(shè)圖像輪廓坐標(biāo),每一所述預(yù)設(shè)圖像輪廓坐標(biāo)包括預(yù)設(shè)x軸坐標(biāo)和預(yù)設(shè)y軸坐標(biāo);
所述實際打印參數(shù)包括多個實際圖像輪廓坐標(biāo),每一所述實際圖像輪廓坐標(biāo)包括實際x軸坐標(biāo)和實際y軸坐標(biāo);
所述誤差計算模塊包括:
預(yù)設(shè)距離計算單元,用于基于多個所述預(yù)設(shè)圖像輪廓坐標(biāo)的預(yù)設(shè)x軸坐標(biāo)計算預(yù)設(shè)x軸最大距離;
實際距離計算單元,用于基于多個所述實際圖像輪廓坐標(biāo)的實際x軸坐標(biāo)計算實際x軸最大距離;
x軸誤差計算單元,用于基于所述預(yù)設(shè)x軸最大距離和所述實際x軸最大距離計算x軸實際誤差;
y軸誤差計算單元,用于基于多個所述預(yù)設(shè)圖像輪廓坐標(biāo)的預(yù)設(shè)y軸坐標(biāo)和多個所述實際圖像輪廓坐標(biāo)的實際y軸坐標(biāo),計算y軸實際誤差;
所述y軸誤差計算單元包括:
距離大小比較子單元,用于比較所述預(yù)設(shè)x軸最大距離和所述實際x軸最大距離的大??;
第一誤差計算子單元,用于在所述預(yù)設(shè)x軸最大距離大于或等于所述實際x軸最大距離時,基于所述預(yù)設(shè)x軸坐標(biāo),計算每一所述預(yù)設(shè)y軸坐標(biāo)與所述實際y軸坐標(biāo)的y軸差值,將所有所述y軸差值的方差作為所述y軸實際誤差;
第二誤差計算子單元,用于在所述預(yù)設(shè)x軸最大距離小于所述實際x軸最大距離時基于所述實際x軸坐標(biāo),計算每一所述預(yù)設(shè)y軸坐標(biāo)與所述實際y軸坐標(biāo)的y軸差值,將所有所述y軸差值的方差作為所述y軸實際誤差;
所述比較判斷模塊包括:
第一比較判斷單元,用于判斷所述x軸實際誤差是否在x軸預(yù)設(shè)誤差范圍內(nèi);
第二比較判斷單元,用于判斷所述y軸實際誤差是否在y軸預(yù)設(shè)誤差范圍內(nèi);
第一結(jié)果認(rèn)定單元,用于在所述x軸實際誤差在所述x軸預(yù)設(shè)誤差范圍內(nèi),且所述y軸實際誤差在所述y軸預(yù)設(shè)誤差范圍內(nèi)時,認(rèn)定所述實際誤差值在所述預(yù)設(shè)誤差范圍內(nèi);
第二結(jié)果認(rèn)定單元,用于在所述x軸實際誤差不在所述x軸預(yù)設(shè)誤差范圍內(nèi),或所述y軸實際誤差不在所述y軸預(yù)設(shè)誤差范圍內(nèi)時,認(rèn)定所述實際誤差值不在所述預(yù)設(shè)誤差范圍內(nèi);
所述捕捉控制模塊包括:
進(jìn)度獲取單元,用于獲取所述驅(qū)動模塊的當(dāng)前打印進(jìn)度;
進(jìn)度監(jiān)控單元,用于判斷所述當(dāng)前打印進(jìn)度是否完成所述當(dāng)前打印層的打??;
信號輸出單元,用于在完成所述當(dāng)前打印層的打印時,輸出打印完成信號;
捕捉控制單元,用于基于所述打印完成信號,控制所述視覺捕捉模塊實時捕捉當(dāng)前打印層的實際打印參數(shù)。
優(yōu)選地,所述獲取補償調(diào)整參數(shù),包括:
獲取當(dāng)前位置的預(yù)設(shè)y軸坐標(biāo)和實際y軸坐標(biāo)的當(dāng)前y軸距離差值;
基于所述預(yù)設(shè)數(shù)據(jù)模型獲取當(dāng)前位置的下一步y(tǒng)軸移動距離;
基于所述當(dāng)前y軸距離差值和所述下一步y(tǒng)軸移動距離,獲取目標(biāo)y軸移動距離;
基于所述目標(biāo)y軸移動距離和步進(jìn)電機每步移動距離,獲取所述步進(jìn)電機的目標(biāo)移動步數(shù),將所述目標(biāo)移動步數(shù)作為所述補償調(diào)整參數(shù)輸出。
第三方面,本發(fā)明還提供一種3d打印機,包括存儲器和處理器,所述存儲器上存儲有計算機程序,所述計算機程序被所述處理器執(zhí)行時實現(xiàn)所述的3d打印閉環(huán)控制方法。
第四方面,本發(fā)明還提供一種非易失性計算機可讀存儲介質(zhì),其上存儲有計算機程序,所述計算機程序被處理器執(zhí)行時實現(xiàn)所述的3d打印閉環(huán)控制方法。
本發(fā)明與現(xiàn)有技術(shù)相比具有如下優(yōu)點:本發(fā)明所提供的3d打印閉環(huán)控制方法、裝置、3d打印機和存儲介質(zhì),通過視覺捕捉模塊實時獲取實際打印參數(shù),基于實際打印參數(shù)與預(yù)設(shè)打印參數(shù)計算實際誤差值,判斷實際誤差值是否在預(yù)設(shè)誤差范圍內(nèi),以確定是基于獲取到的補償調(diào)整參數(shù)進(jìn)行打印控制還是直接控制停止打印。這種采用閉環(huán)控制方式,可實時監(jiān)控打印過程中的異常效果,基于異常效果獲取補償調(diào)整參數(shù)進(jìn)行打印控制,以提高打印產(chǎn)品的合格度;或基于異常效果直接停止打印,從而節(jié)省打印材料和打印時間。
附圖說明
下面將結(jié)合附圖及實施例對本發(fā)明作進(jìn)一步說明,附圖中:
圖1是本發(fā)明實施例1中3d打印閉環(huán)控制方法的一流程圖。
圖2是本發(fā)明實施例2中3d打印閉環(huán)控制裝置的一原理框圖。
具體實施方式
為了對本發(fā)明的技術(shù)特征、目的和效果有更加清楚的理解,現(xiàn)對照附圖詳細(xì)敘述體現(xiàn)本發(fā)明特征和優(yōu)點的的具體實施方式。本發(fā)明中提供的上、下、左、右、頂和底等方位,僅用于說明各部件之間的相對位置關(guān)系,并不限定本發(fā)明中各部件具體安裝方位。
實施例1
圖1是本實施例中的3d打印閉環(huán)控制方法的流程圖。該3d打印閉環(huán)控制方法應(yīng)用在3d打印機中,該3d打印機包括控制模塊、與控制模塊相連的驅(qū)動模塊和與控制模塊相連的視覺捕捉模塊。其中,控制模塊包括處理器和存儲器,該存儲器中存儲有計算機程序,當(dāng)處理器執(zhí)行該計算程序時實現(xiàn)該3d打印閉環(huán)控制方法。該驅(qū)動模塊包括設(shè)置在打印平臺上方的打印噴頭和用于帶動打印噴頭沿x軸、y軸和z軸方向移動的移動組件。打印時,控制模塊控制移動組件沿x軸、y軸和z軸方向移動,并控制打印噴頭融化熱塑性材料、擠出并定型。該視覺捕捉模塊采用雙目立體視覺攝像機,該雙目立體視覺攝像機設(shè)置在打印平臺上方,以便實時對驅(qū)動模塊打印在打印平臺上的物體進(jìn)行拍攝,并將拍攝后的實際圖像發(fā)送給控制模塊,控制模塊基于實際圖像和預(yù)設(shè)數(shù)據(jù)模塊判斷是否存在異常,以實現(xiàn)閉環(huán)控制3d打印過程。
如圖1所示,該3d打印閉環(huán)控制方法包括如下步驟:
s10:控制驅(qū)動模塊依據(jù)預(yù)設(shè)數(shù)據(jù)模型中每一層預(yù)設(shè)打印參數(shù)進(jìn)行打印。
由于fdm工藝是一種層疊式打印技術(shù),因此,在3d打印機打印三維物體過程中,需預(yù)先輸入預(yù)設(shè)數(shù)據(jù)模型,該預(yù)設(shè)數(shù)據(jù)模型包括所要打印的三維物體的層數(shù),每一層對應(yīng)設(shè)有預(yù)設(shè)打印參數(shù),該預(yù)設(shè)打印參數(shù)與該層所要打印的輪廓圖像和填充軌跡相關(guān)聯(lián)。本實施例中,控制模塊控制驅(qū)動模塊逐層依據(jù)其對應(yīng)的預(yù)設(shè)打印參數(shù)進(jìn)行打印,如先依據(jù)第1層的預(yù)設(shè)打印參數(shù)進(jìn)行打印,再依據(jù)第2層的預(yù)設(shè)打印參數(shù)進(jìn)行打印……直到依據(jù)最后1層的預(yù)設(shè)打印參數(shù)進(jìn)行打印。
本實施例中,預(yù)設(shè)打印參數(shù)包括多個預(yù)設(shè)圖像輪廓坐標(biāo),每一預(yù)設(shè)圖像輪廓坐標(biāo)包括預(yù)設(shè)x軸坐標(biāo)和預(yù)設(shè)y軸坐標(biāo)。在打印平臺上打印三維物體時,需保證每層所要打印的輪廓圖像無較大誤差,否則可能打印出的三維物體質(zhì)量較差,為不合格產(chǎn)品。若任一層所要打印的輪廓圖像誤差較大,可能存在表面質(zhì)量較差、物體翹邊、移動和打印精度不符合該層的預(yù)設(shè)打印參數(shù)。因此,需預(yù)設(shè)數(shù)據(jù)模型設(shè)置時,需設(shè)置對應(yīng)的打印層數(shù),每一層通過多個預(yù)設(shè)圖像輪廓點及其位置限定該層所要打印的物體的預(yù)設(shè)輪廓。其中,每個預(yù)設(shè)圖像輪廓點的位置表現(xiàn)為預(yù)設(shè)圖像輪廓坐標(biāo)。
s20:控制視覺捕捉模塊實時捕捉當(dāng)前打印層的實際打印參數(shù)。
本實施例中,采用設(shè)置在打印平臺上方的雙目立體視覺攝像機作為視覺捕捉模塊,實時拍攝打印在打印平臺上的物體的當(dāng)前打印層的實際圖像,并將所拍攝到的實際圖像發(fā)送給控制模塊,以使控制模型基于該實際圖像與預(yù)設(shè)打印參數(shù)確定當(dāng)前打印層的打印是否存在打印異常,并進(jìn)行閉環(huán)控制,以調(diào)整下一層物體的打印。
本實施例中,實際打印參數(shù)包括多個實際圖像輪廓坐標(biāo),每一實際圖像輪廓坐標(biāo)包括實際x軸坐標(biāo)和實際y軸坐標(biāo)。由于預(yù)設(shè)數(shù)據(jù)模型中設(shè)置每一層的預(yù)設(shè)打印參數(shù),該預(yù)設(shè)打印參數(shù)中通過多個預(yù)設(shè)圖像輪廓點及其位置限制該層所要打印的物體的輪廓。相應(yīng)地,視覺捕捉模塊通過實時采集物體的當(dāng)前打印層的實際圖像,并將該實際圖像發(fā)送給控制模塊;控制模塊基于實際圖像獲取當(dāng)前打印層的實際輪廓。該實際輪廓由多個實際圖像輪廓點及其位置進(jìn)行限定,而每個實際圖像輪廓點的位置表現(xiàn)為實際圖像輪廓坐標(biāo)。
步驟s20中,控制視覺捕捉模塊實時捕捉當(dāng)前打印層的實際打印參數(shù),具體包括如下步驟:
s21:獲取驅(qū)動模塊的當(dāng)前打印進(jìn)度。
其中,驅(qū)動模塊在打印過程依據(jù)該層對應(yīng)的預(yù)設(shè)打印參數(shù)進(jìn)行打印控制,每打印完一個預(yù)設(shè)圖像輪廓點給控制模塊發(fā)送一個反饋信號,以使控制模塊實際獲取驅(qū)動模塊的當(dāng)前打印進(jìn)度。
s22:判斷當(dāng)前打印進(jìn)度是否完成當(dāng)前打印層的打印。
控制模塊根據(jù)步驟s21中接收到反饋信號判斷是否完成當(dāng)前打印層的打印。具體地,在預(yù)設(shè)數(shù)據(jù)模型包括所要打印的三維物體的層數(shù)和每一層對應(yīng)的預(yù)設(shè)打印參數(shù),將相鄰層之間銜接處的預(yù)設(shè)圖像輪廓點設(shè)有定位圖像輪廓點。當(dāng)控制模塊接收到的反饋信號是定位圖像輪廓點對應(yīng)的反饋信號時,即可獲知當(dāng)前打印進(jìn)度是已完成當(dāng)前打印層的打印。
s23:若完成當(dāng)前打印層的打印,則輸出打印完成信號。
可以理解地,若控制模塊根據(jù)接收到的反饋信號確定當(dāng)前打印層的打印工作已完成,可輸出打印完成信號。
s24:基于打印完成信號,控制視覺捕捉模塊實時捕捉當(dāng)前打印層的實際打印參數(shù)。
具體地,控制模塊基于獲取到的打印完成信號,給視覺捕捉模塊發(fā)送控制指令,以控制視覺捕捉模塊實時捕捉當(dāng)前打印層的實際打印參數(shù),即控制視覺捕捉模塊拍攝當(dāng)前打印層的實際圖像,并將該實際圖像反饋給控制模塊。
可以理解地,通過實時監(jiān)控驅(qū)動模塊的當(dāng)前打印進(jìn)度,并在當(dāng)前打印進(jìn)度是已完成當(dāng)前打印層的打印時,才控制視覺捕捉模塊捕捉當(dāng)前打印層的實際打印參數(shù),以實現(xiàn)對當(dāng)前打印層的實際打印參數(shù)的精確控制,保證后續(xù)計算的準(zhǔn)確率。
s30:計算實際打印參數(shù)相對于預(yù)設(shè)打印參數(shù)的實際誤差值。
即以預(yù)設(shè)打印參數(shù)為參考,計算實際打印參數(shù)相對于預(yù)設(shè)打印參數(shù)的實際誤差值,以便基于該實際誤差值確定當(dāng)前打印層的打印過程是否存在打印異常,在存在打印異常時分別執(zhí)行不同操作,以實際對3d打印的閉環(huán)控制,提高打印精度和打印效率,降低打印產(chǎn)品的不合格率,并節(jié)省打印時間和打印材料。
步驟s30中,計算實際打印參數(shù)相對于預(yù)設(shè)打印參數(shù)的實際誤差值,具體包括如下步驟:
s31:基于多個預(yù)設(shè)圖像輪廓坐標(biāo)的預(yù)設(shè)x軸坐標(biāo)計算預(yù)設(shè)x軸最大距離。
本實施例中,當(dāng)前打印層對應(yīng)設(shè)置的預(yù)設(shè)打印參數(shù)中設(shè)有多個預(yù)設(shè)圖像輪廓點,每個預(yù)設(shè)圖像輪廓點可用預(yù)設(shè)圖像輪廓坐標(biāo)來表示??苫诙鄠€預(yù)設(shè)圖像輪廓點對應(yīng)的預(yù)設(shè)x軸坐標(biāo)確定當(dāng)前打印層在x軸方向的最大距離,即預(yù)設(shè)x軸最大距離。其中,該預(yù)設(shè)x軸最大距離的計算包括如下兩個步驟:計算多個預(yù)設(shè)x軸坐標(biāo)中任意兩個預(yù)設(shè)x軸坐標(biāo)的差值的絕對值;選取絕對值最大的兩個預(yù)設(shè)x軸坐標(biāo)的差值作為該預(yù)設(shè)x軸最大距離。
s32:基于多個實際圖像輪廓坐標(biāo)的實際x軸坐標(biāo)計算實際x軸最大距離。
本實施例中,當(dāng)前打印層對應(yīng)設(shè)置的實際打印參數(shù)中設(shè)有多個實際圖像輪廓點,每個實際圖像輪廓點可用實際圖像輪廓坐標(biāo)來表示。可基于多個實際圖像輪廓點對應(yīng)的實際x軸坐標(biāo)確定當(dāng)前打印層在x軸方向的最大距離,即實際x軸最大距離。其中,該實際x軸最大距離的計算包括如下兩個步驟:計算多個實際x軸坐標(biāo)中任意兩個實際x軸坐標(biāo)的差值的絕對值;選取絕對值最大的兩個實際x軸坐標(biāo)的差值作為該實際x軸最大距離。
s33:基于預(yù)設(shè)x軸最大距離和實際x軸最大距離計算x軸實際誤差。
其中,計算預(yù)設(shè)x軸最大距離和實際x軸最大距離的差值作為x軸實際誤差。在基于每一層的預(yù)設(shè)打印參數(shù)進(jìn)行打印控制時,每一層的預(yù)設(shè)x軸最大距離是確定的,如果實際打印獲取到的實際x軸最大距離與預(yù)設(shè)x軸最大距離的x軸實際誤差較大,可能存在打印異常,需進(jìn)行補償調(diào)整或停止打印。
s34:基于多個預(yù)設(shè)圖像輪廓坐標(biāo)的預(yù)設(shè)y軸坐標(biāo)和多個實際圖像輪廓坐標(biāo)的實際y軸坐標(biāo),計算y軸實際誤差。
在基于每一層的預(yù)設(shè)打印參數(shù)進(jìn)行打印控制時,需實時獲取y軸實際誤差,以便基于y軸實際誤差確定是否存在打印異常,從而進(jìn)行補償調(diào)整或停止打印。
進(jìn)一步地,步驟s34具體包括如下步驟:
s341:比較預(yù)設(shè)x軸最大距離和實際x軸最大距離的大小。
s342:若預(yù)設(shè)x軸最大距離大于或等于實際x軸最大距離,則基于預(yù)設(shè)x軸坐標(biāo),計算每一預(yù)設(shè)y軸坐標(biāo)與實際y軸坐標(biāo)的y軸差值,將所有y軸差值的方差作為y軸實際誤差。
s343:若預(yù)設(shè)x軸最大距離小于實際x軸最大距離,則基于實際x軸坐標(biāo),計算每一預(yù)設(shè)y軸坐標(biāo)與實際y軸坐標(biāo)的y軸差值,將所有y軸差值的方差作為y軸實際誤差。
本實施例中,設(shè)x為實際x軸坐標(biāo),x’為預(yù)設(shè)x軸坐標(biāo),y為實際y軸坐標(biāo),y’為預(yù)設(shè)y軸坐標(biāo),dmaxx'為預(yù)設(shè)x軸最大距離,dmaxx為實際x軸最大距離。則步驟s342可用如下公式表示:dmaxx'≥dmaxx,則
s40:判斷實際誤差值是否在預(yù)設(shè)誤差范圍內(nèi)。
即控制模塊判斷實際誤差值是否在該預(yù)設(shè)數(shù)據(jù)模型配置時設(shè)置的預(yù)設(shè)誤差范圍內(nèi),該預(yù)設(shè)誤差范圍可以為±5%??梢岳斫獾?,若實際誤差值在預(yù)設(shè)誤差范圍內(nèi),則說明當(dāng)前打印層的打印基本上不存在打印異常;反之,若實際誤差值不在預(yù)設(shè)誤差范圍內(nèi),則說明當(dāng)前打印層的打印存在打印異常。
步驟s40中,判斷判斷實際誤差值是否在預(yù)設(shè)誤差范圍內(nèi),具體包括如下步驟:
s41:判斷x軸實際誤差是否在x軸預(yù)設(shè)誤差范圍內(nèi)。
其中,預(yù)設(shè)誤差范圍包括x軸預(yù)設(shè)誤差范圍;本實施例中,將步驟s33計算出的x軸實際誤差和x軸預(yù)設(shè)誤差范圍進(jìn)行比較,以確定當(dāng)前打印層的x軸打印是否存在異常。
s42:判斷y軸實際誤差是否在y軸預(yù)設(shè)誤差范圍內(nèi)。
其中,預(yù)設(shè)誤差范圍還包括y軸預(yù)設(shè)誤差范圍;本實施例中,將步驟s34計算出的y軸實際誤差與y軸預(yù)設(shè)誤差范圍進(jìn)行比較,以確定當(dāng)前打印層的y軸打印是否存在異常。
s43:若x軸實際誤差在x軸預(yù)設(shè)誤差范圍內(nèi),且y軸實際誤差在y軸預(yù)設(shè)誤差范圍內(nèi),則認(rèn)定實際誤差值在預(yù)設(shè)誤差范圍內(nèi)。
可以理解地,只有x軸實際誤差在x軸預(yù)設(shè)誤差范圍和y軸實際誤差在y軸預(yù)設(shè)誤差范圍內(nèi)這兩個條件同時滿足時,才可認(rèn)定實際誤差值在預(yù)設(shè)誤差范圍內(nèi),執(zhí)行步驟s50。
s44:若x軸實際誤差不在x軸預(yù)設(shè)誤差范圍內(nèi),或y軸實際誤差不在y軸預(yù)設(shè)誤差范圍內(nèi),則認(rèn)定實際誤差值不在預(yù)設(shè)誤差范圍內(nèi)。
可以理解地,只要x軸實際誤差不在x軸預(yù)設(shè)誤差范圍和y軸實際誤差不在y軸預(yù)設(shè)誤差范圍內(nèi)這兩個條件中的一個滿足時,就認(rèn)定實際誤差值不在預(yù)設(shè)誤差范圍內(nèi),執(zhí)行步驟s60。
s50:若實際誤差值在預(yù)設(shè)誤差范圍內(nèi),則獲取補償調(diào)整參數(shù),基于補償調(diào)整參數(shù)控制驅(qū)動模塊進(jìn)行下一層打印。
可以理解地,若實際誤差值在預(yù)設(shè)誤差范圍內(nèi),則說明當(dāng)前打印層的打印基本上不存在較大異常,打印出的成品合格機率高,需繼續(xù)控制驅(qū)動模塊進(jìn)行下一層打印。而在控制驅(qū)動模塊進(jìn)行下一層打印時,先獲取補償調(diào)整參數(shù),以使控制模塊基于該補償調(diào)整參數(shù)而非原有的預(yù)設(shè)打印參數(shù)進(jìn)行打印控制,以提高打印精度,可避免多層實際誤差值累加,使得打印到最上層時實際誤差值較大,甚至超過預(yù)設(shè)誤差范圍內(nèi),導(dǎo)致成品的不合格機率增加,并浪費打印時間和打印材料。
步驟s50中,獲取補償調(diào)整參數(shù),包括:
s51:獲取當(dāng)前位置的預(yù)設(shè)y軸坐標(biāo)和實際y軸坐標(biāo)的當(dāng)前y軸距離差值。
在打印控制過程中,控制模塊給驅(qū)動模塊輸出控制指令,以使驅(qū)動模塊在打印平臺上依序打印多個預(yù)設(shè)圖像輪廓點;而每打印完一個預(yù)設(shè)圖像輪廓點時會給控制模塊發(fā)送一個反饋信號。控制模塊接收反饋信號后,可獲取打印噴頭所在的當(dāng)前位置的預(yù)設(shè)y軸坐標(biāo)和實際y軸坐標(biāo),將預(yù)設(shè)y軸坐標(biāo)和實際y軸坐標(biāo)相減,其差值作為當(dāng)前y軸距離差值輸出。
s52:基于預(yù)設(shè)數(shù)據(jù)模型獲取當(dāng)前位置的下一步y(tǒng)軸移動距離。
具體地,控制模塊接收到反饋信號后,查詢預(yù)設(shè)數(shù)據(jù)模型,以獲取當(dāng)前位置的下一步y(tǒng)軸移動距離。在當(dāng)前打印控制過程中,可基于下一步y(tǒng)軸移動距離與步進(jìn)電機每步移動距離的商計算原始移動步數(shù),以實現(xiàn)移動控制,但此時,未考慮打印過程中的誤差,可能影響打印精度。
s53:基于當(dāng)前y軸距離差值和下一步y(tǒng)軸移動距離,獲取目標(biāo)y軸移動距離。
本實施例中,將當(dāng)前y軸距離差值和下一步y(tǒng)軸移動距離的和值作為目標(biāo)y軸移動距離輸出。若當(dāng)前y軸距離差值為正數(shù),則說明當(dāng)前位置打印時,其實際打印的實際y軸坐標(biāo)未達(dá)到預(yù)設(shè)y軸坐標(biāo),使得目標(biāo)y軸移動距離需比下一步y(tǒng)軸移動距離長。相應(yīng)地,若當(dāng)前y軸距離差值為負(fù)數(shù),則說明當(dāng)前位置打印時,其實際打印的實際y軸坐標(biāo)超過預(yù)設(shè)y軸坐標(biāo),使得目標(biāo)y軸移動距離比下一步y(tǒng)軸移動距離短。因此,可基于該目標(biāo)y軸移動距離實現(xiàn)補償移動控制,從而提高打印精度。
s54:基于目標(biāo)y軸移動距離和步進(jìn)電機每步移動距離,獲取步進(jìn)電機的目標(biāo)移動步數(shù),將目標(biāo)移動步數(shù)作為補償調(diào)整參數(shù)輸出。
其中,將目標(biāo)y軸移動距離和步進(jìn)電機每步移動距離的商作為步進(jìn)電機的目標(biāo)移動步數(shù),基于該目標(biāo)移動步數(shù)控制下一步打印,以提高打印精度。本實施例中采用閉環(huán)控制方法,實時獲取經(jīng)過補償計算獲取的目標(biāo)y軸移動距離,該目標(biāo)y軸移動距離克服當(dāng)前位置打印時存在的誤差,從而保證下一步打印的打印精度,避免誤差累積,影響最后打印成品的打印質(zhì)量。
本實施例中,設(shè)n’為目標(biāo)移動步數(shù),p為步進(jìn)電機每步移動距離,y為實際y軸坐標(biāo),y’為預(yù)設(shè)y軸坐標(biāo),則其n’為目標(biāo)移動步數(shù)的計算公式如下:n'=s/p+(y'-y)/p,其中,s/p是原始移動步數(shù),(y'-y)/p是補償移動步數(shù)。
s60:若實際誤差值不在預(yù)設(shè)誤差范圍內(nèi),則控制驅(qū)動模塊停止打印。
可以理解地,若實際誤差值不在預(yù)設(shè)誤差范圍內(nèi),則說明當(dāng)前打印層的打印存在較大異常,使得打印的成品不合格,為了節(jié)省打印時間和打印材料,控制模塊在判斷任一層的實際誤差值不在預(yù)設(shè)誤差范圍內(nèi)時,即控制驅(qū)動模塊停止打印。
本實施例所提供的3d打印閉環(huán)控制方法中,通過視覺捕捉模塊實時獲取實際打印參數(shù),基于實際打印參數(shù)與預(yù)設(shè)打印參數(shù)計算實際誤差值,判斷實際誤差值是否在預(yù)設(shè)誤差范圍內(nèi),以確定是基于獲取到的補償調(diào)整參數(shù)進(jìn)行打印控制還是直接控制停止打印。這種采用閉環(huán)控制方式,可實時監(jiān)控打印過程中的異常效果,基于異常效果獲取補償調(diào)整參數(shù)進(jìn)行打印控制,以提高打印產(chǎn)品的合格度;或基于異常效果直接停止打印,從而節(jié)省打印材料和打印時間。
實施例2
圖2示出本實施例中的3d打印閉環(huán)控制裝置的一原理框圖。該3d閉環(huán)控制裝置是與實施例1中3d打印閉環(huán)控制一一對應(yīng)的裝置。如圖2所示,該3d打印閉環(huán)控制裝置包括驅(qū)動控制模塊10、捕捉控制模塊20、誤差計算模塊30、比較判斷模塊40、第一處理模塊50和第二處理模塊60。其中,驅(qū)動控制模塊10、捕捉控制模塊20、誤差計算模塊30、比較判斷模塊40、第一處理模塊50和第二處理模塊60的實現(xiàn)功能與實施例1中對應(yīng)的步驟一一對應(yīng),為避免贅述,本實施例不一一詳述。
驅(qū)動控制模塊10,用于控制驅(qū)動模塊依據(jù)預(yù)設(shè)數(shù)據(jù)模型中每一層預(yù)設(shè)打印參數(shù)進(jìn)行打印。
捕捉控制模塊20,用于控制視覺捕捉模塊實時捕捉當(dāng)前打印層的實際打印參數(shù)。
誤差計算模塊30,用于計算實際打印參數(shù)相對于預(yù)設(shè)打印參數(shù)的實際誤差值。
比較判斷模塊40,用于判斷實際誤差值是否在預(yù)設(shè)誤差范圍內(nèi)。
第一處理模塊50,用于在實際誤差值在預(yù)設(shè)誤差范圍內(nèi)時,獲取補償調(diào)整參數(shù),基于補償調(diào)整參數(shù)控制驅(qū)動模塊進(jìn)行下一層打印。
第二處理模塊60,用于在實際誤差值不在預(yù)設(shè)誤差范圍內(nèi)時,控制驅(qū)動模塊停止打印。
優(yōu)選地,預(yù)設(shè)打印參數(shù)包括多個預(yù)設(shè)圖像輪廓坐標(biāo),每一預(yù)設(shè)圖像輪廓坐標(biāo)包括預(yù)設(shè)x軸坐標(biāo)和預(yù)設(shè)y軸坐標(biāo)。
實際打印參數(shù)包括多個實際圖像輪廓坐標(biāo),每一實際圖像輪廓坐標(biāo)包括實際x軸坐標(biāo)和實際y軸坐標(biāo)。
誤差計算模塊30包括預(yù)設(shè)距離計算單元31、實際距離計算單元32、x軸誤差計算單元33和y軸誤差計算單元34。
預(yù)設(shè)距離計算單元31,用于基于多個預(yù)設(shè)圖像輪廓坐標(biāo)的預(yù)設(shè)x軸坐標(biāo)計算預(yù)設(shè)x軸最大距離。
實際距離計算單元32,用于基于多個實際圖像輪廓坐標(biāo)的實際x軸坐標(biāo)計算實際x軸最大距離。
x軸誤差計算單元33,用于基于預(yù)設(shè)x軸最大距離和實際x軸最大距離計算x軸實際誤差。
y軸誤差計算單元34,用于基于多個預(yù)設(shè)圖像輪廓坐標(biāo)的預(yù)設(shè)y軸坐標(biāo)和多個實際圖像輪廓坐標(biāo)的實際y軸坐標(biāo),計算y軸實際誤差。
其中,y軸誤差計算單元34包括距離大小比較子單元341、第一誤差計算子單元342和第二誤差計算子單元343。
距離大小比較子單元341,用于比較預(yù)設(shè)x軸最大距離和實際x軸最大距離的大小。
第一誤差計算子單元342,用于在預(yù)設(shè)x軸最大距離大于或等于實際x軸最大距離時,基于預(yù)設(shè)x軸坐標(biāo),計算每一預(yù)設(shè)y軸坐標(biāo)與實際y軸坐標(biāo)的y軸差值,將所有y軸差值的方差作為y軸實際誤差。
第二誤差計算子單元343,用于在預(yù)設(shè)x軸最大距離小于實際x軸最大距離時基于實際x軸坐標(biāo),計算每一預(yù)設(shè)y軸坐標(biāo)與實際y軸坐標(biāo)的y軸差值,將所有y軸差值的方差作為y軸實際誤差。
比較判斷模塊40包括第一比較判斷單元41、第二比較判斷單元42、第一結(jié)果認(rèn)定單元43和第二結(jié)果認(rèn)定單元44。
第一比較判斷單元41,用于判斷x軸實際誤差是否在x軸預(yù)設(shè)誤差范圍內(nèi)。
第二比較判斷單元42,用于判斷y軸實際誤差是否在y軸預(yù)設(shè)誤差范圍內(nèi)。
第一結(jié)果認(rèn)定單元43,用于在x軸實際誤差在x軸預(yù)設(shè)誤差范圍內(nèi),且y軸實際誤差在y軸預(yù)設(shè)誤差范圍內(nèi)時,認(rèn)定實際誤差值在預(yù)設(shè)誤差范圍內(nèi)。
第二結(jié)果認(rèn)定單元44,用于在x軸實際誤差不在x軸預(yù)設(shè)誤差范圍內(nèi),或y軸實際誤差不在y軸預(yù)設(shè)誤差范圍內(nèi)時,認(rèn)定實際誤差值不在預(yù)設(shè)誤差范圍內(nèi)。
捕捉控制模塊20包括進(jìn)度獲取單元21、進(jìn)度監(jiān)控單元22、信號輸出單元23和捕捉控制單元24。
進(jìn)度獲取單元21,用于獲取驅(qū)動模塊的當(dāng)前打印進(jìn)度。
進(jìn)度監(jiān)控單元22,用于判斷當(dāng)前打印進(jìn)度是否完成當(dāng)前打印層的打印。
信號輸出單元23,用于在完成當(dāng)前打印層的打印時,輸出打印完成信號。
捕捉控制單元24,用于基于打印完成信號,控制視覺捕捉模塊實時捕捉當(dāng)前打印層的實際打印參數(shù)。
優(yōu)選地,獲取補償調(diào)整參數(shù),包括:
獲取當(dāng)前位置的預(yù)設(shè)y軸坐標(biāo)和實際y軸坐標(biāo)的當(dāng)前y軸距離差值。
基于預(yù)設(shè)數(shù)據(jù)模型獲取當(dāng)前位置的下一步y(tǒng)軸移動距離。
基于當(dāng)前y軸距離差值和下一步y(tǒng)軸移動距離,獲取目標(biāo)y軸移動距離。
基于目標(biāo)y軸移動距離和步進(jìn)電機每步移動距離,獲取步進(jìn)電機的目標(biāo)移動步數(shù),將目標(biāo)移動步數(shù)作為補償調(diào)整參數(shù)輸出。
本實施例所提供的3d打印閉環(huán)控制裝置中,捕捉控制模塊20通過視覺捕捉模塊實時獲取實際打印參數(shù),誤差計算模塊30基于實際打印參數(shù)與預(yù)設(shè)打印參數(shù)計算實際誤差值,比較判斷模塊40判斷實際誤差值是否在預(yù)設(shè)誤差范圍內(nèi),以使第一處理模塊50基于獲取到的補償調(diào)整參數(shù)進(jìn)行打印控制,或者第二處理模塊60直接控制停止打印。這種采用閉環(huán)控制方式,可實時監(jiān)控打印過程中的異常效果,基于異常效果獲取補償調(diào)整參數(shù)進(jìn)行打印控制,以提高打印產(chǎn)品的合格度;或基于異常效果直接停止打印,從而節(jié)省打印材料和打印時間。
實施例3
本實施例公開一種非易失性計算機可讀存儲介質(zhì),其上存儲有計算機程序,計算機程序被處理器執(zhí)行時實現(xiàn)實施例1中的3d打印閉環(huán)控制方法,為避免重復(fù),這里不再贅述?;蛘撸摲且淄菩杂嬎銠C可讀存儲介質(zhì)中的計算機程序被處理器執(zhí)行時實現(xiàn)實施例2中3d打印閉環(huán)控制裝置中各模塊/單元/子單元的功能,為避免重新,這里不在表述。
實施例4
本實施例公開一種3d打印機,包括存儲器和處理器,存儲器上存儲有計算機程序,計算機程序被處理器執(zhí)行時實現(xiàn)實施例1中的3d打印閉環(huán)控制方法。該3d打印機包括控制模塊、與控制模塊相連的驅(qū)動模塊和與控制模塊相連的視覺捕捉模塊。其中,控制模塊包括處理器和存儲器,該存儲器中存儲有計算機程序,當(dāng)處理器執(zhí)行該計算程序時實現(xiàn)該3d打印閉環(huán)控制方法。該驅(qū)動模塊包括設(shè)置在打印平臺上方的打印噴頭和用于帶動打印噴頭沿x軸、y軸和z軸方向移動的移動組件。打印時,控制模塊控制移動組件沿x軸、y軸和z軸方向移動,并控制打印噴頭融化熱塑性材料、擠出并定型。該視覺捕捉模塊采用雙目立體視覺攝像機,該雙目立體視覺攝像機設(shè)置在打印平臺上方,以便實時對驅(qū)動模塊打印在打印平臺上的物體進(jìn)行拍攝,并將拍攝后的實際圖像發(fā)送給控制模塊,控制模塊基于實際圖像和預(yù)設(shè)數(shù)據(jù)模塊判斷是否存在異常,以實現(xiàn)閉環(huán)控制3d打印過程。
本實施例所提供的3d打印機,可執(zhí)行實施例1中的3d打印閉環(huán)控制方法,可實時監(jiān)控打印過程中的異常效果,基于異常效果獲取補償調(diào)整參數(shù)進(jìn)行打印控制,以提高打印產(chǎn)品的合格度;或基于異常效果直接停止打印,從而節(jié)省打印材料和打印時間。
本領(lǐng)域普通技術(shù)人員可以意識到,結(jié)合本文中所公開的實施例描述的各示例的模塊及算法步驟,能夠以電子硬件、或者計算機軟件和電子硬件的結(jié)合來實現(xiàn)。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計約束條件。專業(yè)技術(shù)人員可以對每個特定的應(yīng)用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。
在本申請所提供的實施例中,應(yīng)該理解到,所揭露的裝置和方法,可以通過其它的方式實現(xiàn)。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述模塊的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個模塊或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。
所述功能如果以軟件功能模塊的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質(zhì)中。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:u盤、移動硬盤、rom、ram、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。