邵悦辰,贡 亮,沈晓晔,荆梦杰,方占奥,雷军波,黄亦翔
(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打印市场拥有良好的应用前景。