邵悅辰,貢 亮,沈曉曄,荊夢杰,方占奧,雷軍波,黃亦翔
(1.上海交通大學機械與動力工程學院,上海 200240;2.上海工程技術大學城市軌道交通學院,上海 201620)
3D打印技術,又稱為快速成型技術,在近年來成為了制造業領域的研究熱點[1-3]。在眾多不同類型的3D打印技術中,熔融沉積成型技術(FDM)是最為常用的一種。FDM-3D打印技術具有低成本、操作簡便等優點,但打印精度差,打印效率低,打印故障頻發。在打印過程中,零件垮塌、移位,以及打印機噴頭堵塞、斷絲等異常工況時有發生,如不及時處理,不但會導致材料的浪費和生產效率的降低,還可能引發打印機的損壞[4-6]。由于FDM技術打印速度較慢,打印周期較長,單純依靠人工來完成打印全過程的監控并不現實。因此,實現FDM-3D打印過程的實時智能監控迫在眉睫。
對此,Guo等[7]開發了基于云平臺的3D打印遠程監控系統,使用戶可在線瀏覽打印信息,查詢打印過程;Oliver等[8]利用三維數字圖像相關方法獲取打印件的幾何構型,并將其與計算機模型相比較來發現打印件的缺陷; Delli等[9]提出了一種結合攝像機,圖像處理技術和監督機器學習的3D打印件質量評估方法,可在打印過程中幾個關鍵的時間節點檢測打印件的缺陷;Shen等[10]設計了多視角在線故障監測系統,主要用于檢測打印件外表面的孔隙類缺陷;Tlegenov 等[11]提出利用振動傳感器監測噴頭狀態,能及時診斷出打印噴頭是否發生堵塞。總體上看,現有的解決方案已初步完成了對于3D打印過程的遠程控制和故障識別,但尚未將二者充分結合起來,可判定的故障類別也較為單一、固定。另外,研究成果多半來自于國外,國內在該領域的研究進展則相對緩慢。
本文提出了一種FDM-3D快速成型異常工況監控系統,運用機器視覺的相關技術,可對FDM-3D打印過程中的多種故障模式進行實時檢測[12],并在故障發生后第一時間自動報警;此外,通過建立打印機與云服務器和智能手機APP之間的通信網絡,同時實現用戶對打印機的遠程操控。
3D打印監控系統共由5個部分構成,系統的整體結構如圖1所示。

圖1 系統整體結構
其中,圖像傳感器(攝像頭)用來獲取打印件的實時圖像信息;樹莓派是系統的控制核心和通信支點,除了完成圖像的處理與比對之外,還需要與攝像頭,打印機,以及云服務器進行通信;云服務器負責收發打印機和APP之間的通信消息;APP則是用戶遠程操控打印機的主要媒介。
系統的工作流程如圖2所示。在啟動打印機和樹莓派后,攝像頭拍攝打印件的實際圖像并傳至樹莓派,樹莓派再從打印機讀取到打印進度,并以此為依據繪制出打印件的理論圖像,之后將2幅圖像進行比對。比對完成后建立樹莓派與服務器的通信連接,將比對結果發送給服務器,服務器接到消息后直接轉發給APP(用戶),當出現打印故障時APP端會發出報警提示音,用戶可根據APP主界面上顯示的打印件的實際圖片來決定是否停止打印。

圖2 系統的工作流程
為確保拍攝圖像的清晰度,攝像頭可直接安裝到3D打印機上。由于FDM-3D打印過程中,打印件的位置隨打印平臺的上下移動而不斷變化,為避免不同的拍攝角度給后續圖像處理過程增加計算量,應使攝像頭與打印平臺的高度時刻保持一致。基于此,將攝像頭安裝在打印平臺的一根外接導軌上。安裝時先用T形螺母連接導軌與打印平臺,再在導軌上粘連小型木塊以增加攝像頭的高度,最后用鐵絲將攝像頭固定在木塊上的合適位置。攝像頭的布置如圖3所示。

圖3 攝像頭布置示意
打印件的理論圖像實為打印模型沿攝像頭拍攝方向的投影圖像,繪制過程在樹莓派完成,具體步驟為:
a.從stl文件中提取得到模型中各網格對應的頂點的坐標矩陣[13]。
b.設計合適的查詢函數,去除步驟a所得矩陣中所有重合的頂點,并確定模型中每條邊包含的2個頂點的坐標。
c.設置層高為0.1 mm,利用模型中各頂點的z軸坐標計算其所在的層數(對于除不盡的數做取整處理)。
d.用從低到高不同層數的水平面依次切割模型,根據每條邊2個頂點所在層數與切割面所在層數的大小關系,找出每個切割平面所切掉的邊。
e.計算各切割平面與所有被切割邊的交點坐標,即每層的切割點坐標。
f.在每層的切割點中選取x軸坐標最大和最小的2個點(輪廓邊界點),用來繪制模型的投影圖像。
g.確定繪制圖像的長度和寬度,完成模型坐標系與圖像坐標系的轉換。
h.以相鄰兩層的輪廓邊界點為頂點從低到高逐層繪制模型的投影視圖,直至視圖的最高點達到打印件的實時高度為止。模型的完整投影視圖如圖4所示。

圖4 打印模型的投影圖像
圖像處理算法是系統功能實現的關鍵,首先對打印件的實際圖像進行分割和濾波等預處理操作,再提取到打印件的輪廓特征并完成比對,進而判斷打印狀態是否異常。輪廓的比對方法有2種:通過比對打印件的實際輪廓與理論輪廓,可識別打印件本身的缺陷,如移位、傾倒、垮塌等;通過比對打印件在相鄰2個時間節點的實際輪廓,可識別斷絲、纏絲以及噴頭堵塞等打印機自身故障造成的打印過程中斷。
在獲取打印件的實際圖像之前,需先用棋盤標定法[14]矯正攝像頭拍攝的畸變效果。圖像預處理的具體過程為:
a.將攝像頭拍攝的原始圖像從RGB顏色模型轉換為HSV顏色模型[15],再根據打印件的顏色范圍選擇合適的閾值分割圖像,過濾掉圖像中除打印件以外的背景元素。
b.將圖像灰度化,以提高系統運算速度。
c.選擇中值濾波器模板,對圖像做濾波處理,目的是平滑圖像和去除噪音[16],其數學表達式為
g(x,y)=med{f(x-k,y-l),(k,l∈W)}
(1)
f(x,y)和g(x,y)分別代表原始圖像的灰度值和處理后圖像的灰度值;W為二維模板,通常為3×3或5×5的方形區域。
d.利用Laplacian算子對圖像進行高通濾波,目的是將圖像銳度化,使打印件的輪廓邊界更加清晰,其數學表達式為:
2f(x,y)=[f(x+1,y)+f(x- 1,y)+
f(x,y+1)+f(x,y-1)]-4f(x,y)
(2)
(3)
e.選取合適的閾值T,將濾波后的圖像二值化,其數學表達式為

(4)
f(x,y)和g(x,y)分別代表原始圖像的灰度值和處理后圖像的灰度值。二值化后的圖像只有黑(0)和白(255)2種顏色信息。
得到打印件的理論圖像和經預處理的實際圖像后,可對2幅圖像進行輪廓檢測,圖5展示了打印過程中某一時刻提取到的打印件輪廓信息(為區分理論輪廓與實際輪廓,特將實際輪廓繪制在原始圖像中)。
2幅輪廓的比對選擇Hu矩作為度量參數[17]。通過匹配2幅輪廓的7個Hu矩,算出2幅輪廓的相似度I(值越小越相似,完全相同時為0),具體計算方法為:
(5)
(6)


圖5 打印件的輪廓
為了實現對打印機的遠程控制,開發了一款名為“Printer Monitor”的手機APP,可在Android系統上運行[18]。主界面上共有2個窗口:上方窗口用來顯示打印現場的實時圖片(每30 s更新1次,打印機未打印時放置系統默認圖片),下方窗口用來通知用戶打印狀態是否正常(當超過30 s未接收到服務器發送的信息或打印機未打印時會顯示打印機狀態未更新)。主界面的最下端設有3個按鈕,分別為“Continue(繼續打印)”、“Stop(停止打印)”和“Shutdown(關閉打印機)”,用戶可直接點擊相應按鈕來操控打印機。
當打印狀態正常時,通知窗口的字體為黑色;當故障發生時,字體變為紅色,并發出報警提示音。用戶可根據打印件的實際情況來選擇故障處理方式(繼續打印/暫停打印/關機),選擇完成后通知窗口會顯示故障處理結果。
本文中該監控系統的通信網絡共由4個部分組成,分別為攝像頭與樹莓派之間的通信,打印機與樹莓派之間的通信,樹莓派與服務器之間的通信以及服務器與APP之間的通信。
攝像頭與樹莓派的通信主要通過Python代碼完成。 將攝像頭的USB線連接到樹莓派上之后,調用OpenCV庫中的VideoCapture函數可直接在樹莓派上打開攝像頭,再通過read函數和imwrite函數可完成圖像的拍攝和保存。
打印機和樹莓派之間的通信方式為USB串口通信。為保證二者間的通信正常進行,首先要在樹莓派上安裝serial庫,再通過樹莓派的minicom模塊配置好串口的名稱以及比特率等參數。系統工作時,樹莓派可向串口發送gcode指令來監控打印機的狀態,如M114(報告位置坐標),M25(暫停打印)等。
服務器采用云服務器,因為與本地服務器相比,云服務器具有成本低,便于維護等優勢[19],能夠使打印機脫離物理位置的限制。服務器和樹莓派,APP之間的通信均通過socket模塊進行,當樹莓派/APP成功連接服務器之后,先向服務器發送初始化消息,服務器端隨即建立客戶端列表并保存其IP地址。除此之外,服務器只負責轉發樹莓派與APP之間的通信消息。所有的消息統一用json模塊封裝,圖片信息用base64進行二進制編解碼。
為測試此監控系統的可行性,設計了相關實驗來檢驗系統的執行情況。
在實驗開始之前,應確定輪廓相似度的閾值作為實驗判據,為此,對打印件(兔子模型)在不同高度下的輪廓相似度進行了比對分析,如表1所示。

表1 打印件與理論模型在不同高度下的輪廓相似度
根據表1中數據和對實際圖像的觀察分析,認定當高度差在2 mm以內的輪廓差別為可接受誤差,在多次實驗后,最終確定0.3為判斷是否發生打印故障的相似度閾值。
由于實驗條件的限制,本次實驗無法實現異常工況的直接發生,故采用人為模擬故障的方式完成實驗,即通過在打印件周圍布置其他異物來模擬打印件本身的缺陷,通過人為暫停打印的方法來模擬打印機內部故障。實驗的具體結果如表2所示。

表2 不同故障模式下系統的識別結果
實驗結果表明,在人為模擬故障的情況下,系統識別故障的準確率較高,并且每一次識別都能夠及時在手機APP端報警,報警后用戶在點擊相應按鈕之后也可以實現對打印機的控制,APP的故障通知界面如圖6所示。

圖6 APP故障通知界面
通過對市場中常見的3D打印異常工況的調研,可認為本次試驗中故障模式的設置是合理的,實驗結果是有效的,這說明該監控系統已具備充分的工作能力,可投入到實際的生產生活當中。
本文提出的FDM-3D快速成型異常工況監控系統,運用機器視覺和網絡通信等技術,對FDM-3D打印的多種故障模式進行在線識別和自動報警,實現了在無人值守狀態下對FDM-3D打印全過程的監測,以及用戶對打印機的遠程操控。通過設置相關實驗,證明了該系統的可行性與穩定性,可見這種基于圖像識別的監控方法與3D打印件的造型有較高的匹配度,可推廣到不同種類的打印方法和打印機,值得更深層次的研究與探索,在3D打印市場擁有良好的應用前景。