发明内容
针对现有技术存在的问题,本发明提出一种球头铣刀定位及磨损监测方法,解决了采用视觉的手段监测铣刀磨损中的刀具定位问题,完成了铣刀的磨损测量,实现了球头铣刀的磨损在线监测。
本发明提出的球头铣刀定位及磨损监测方法,采用如下技术方案:
步骤1.安装视觉监测系统
在数控机床上选择主轴能到达的机床边缘处安装视觉监测系统,包括相机支架、CCD相机、镜头和LED环形光源,支架固定在机床上,相机固定在支架上,镜头朝上,LED环形光源加装在镜头前直接照射球头铣刀;在机床上装夹球头铣刀,将机床主轴移至相机正上方,确定进行图像采集的主轴所在位置的x、y坐标;然后调整机床主轴转角,使得所采集的刀具图像中切削刃大体处于水平位置;根据刀具最大切深计算出最大切削宽度,则图像中应呈现所有切削宽度范围内的刀具后刀面,根据所需成像大小调整好焦距并固定,沿z向调整主轴位置,使刀具切削刃在图像中清晰成像;调节光圈,使得在刀具图像中能清晰地区分出刀具;
步骤2.采集球头铣刀的新刀图像并进行图像预处理
视觉监测系统安装调试完毕后,采集球头铣刀的新刀灰度图像,通过滤波去噪对新刀灰度图像进行预处理;
步骤3.划分新刀图像中的扫描处理区域
对新刀灰度图像按列依次处理,每一列在竖直方向上存在两个边界,对于每一列像素点进行边界提取处理的具体过程如下:计算各像素点的灰度差分值,比较同一列中各像素点灰度差分值的大小,则每一列中的两个边界处的灰度差分值分别具有最大值或最小值,根据每列所得的两个边界计算两边界间距离,则两边界间距离最小的列即为刀尖所在的列,以刀尖所在的列将刀具图像划分为左扫描区域和右扫描区域两部分;
步骤4.新刀图像中切削刃上的点粗定位
对新刀灰度图像中选定的左扫描区域自A方向B方逐列扫描,右扫描区域自B方向A方逐列扫描,则每一列中刀具切削刃位于图像中该列的灰度上升边界处,对于每一列像素点进行边界提取处理的具体过程如下:计算各像素点的灰度差分值,比较同一列中各像素点灰度差分值的大小,差分值最大的像素点即为切削刃上的点,对全部列处理完毕后即可得到代表切削刃的像素级精度的数据点位置信息;
步骤5.新刀图像中切削刃上的点精确定位
利用切削刃的像素级精度的数据点位置信息、以及对应的各像素点的灰度差分值,采取亚像素边缘检测算法进一步提取切削刃上的亚像素级精度的数据点;
步骤6.新刀图像中切削刃上的数据点的拟合
将提取出的左、右切削刃上的亚像素级精度的数据点分别拟合出反映左、右切削刃整体趋势的直线,分别计算该两条直线与水平方向的夹角,取两个夹角的均值作为所求周向定位角度,以该角度旋转刀具图像,使刀具图像中切削刃处于水平位置,便完成球头铣刀的周向定位;
步骤7.周向定位后新刀图像中刀尖位置与原始后刀面范围的确定
对周向定位后的新刀图像进行逐列扫描处理,每一列在竖直方向上存在两个边界,对于每一列像素点进行边界提取处理,根据每列所得的两个边界计算两边界间距离,则两边界间距离最小的列为刀尖所在的列,这样便确定了刀尖的精确横向位置,并且原始后刀面范围即为图像中每列两边界间的范围;
步骤8.磨损后刀具图像中铣刀磨损量的测量
在铣削加工退刀间隙,采集磨损后刀具图像,并保证该时刻采集图像与采集新刀图像时,铣刀在机床坐标系中具有相同的位置和转角;以上述步骤6中求得的周向定位角度旋转磨损后刀具图像,完成磨损后刀具图像的周向定位,利用步骤7中求得的刀尖的精确横向位置将图像划分为左右两个扫描区域;对该两个扫描区域进行逐列扫描,得到区域内每一列中的上下边界,然后通过比较该上下边界的位置与原始刀体后刀面的边界的位置来确定该列是否发生了磨损,其中,左侧区域比较该B方边界与原始后刀面B方边界的位置是否重合,右侧区域比较该A方边界与原始后刀面A方边界位置是否重合,若不重合便可判定该列发生了磨损,对发生了磨损的列采用亚像素边缘检测方法确定磨损上下边界的精确位置,从而便可计算得到该列的磨损量,整个区域处理完后便可得到铣刀在该时刻的磨损量;
对于右旋铣刀,上述A方指下方,B方指上方;对于左旋铣刀,上述A方指上方,B方指下方。
该方法首先对球头铣刀的新刀图像进行处理,提取出图像中代表切削刃的精确数据点,对这些数据点进行直线拟合,便可计算出用于球头铣刀周向定位的水平夹角;在新刀图像中提取出刀尖的位置,而所有刀具图像中刀尖具有相同的位置。以该水平夹角旋转磨损后刀具的图像,实现刀具的周向定位,以该新刀中的刀尖位置作为磨损后刀具图像中刀尖的位置,接下来便可在竖直方向上测得球头铣刀分别在左右后刀面上的实际磨损量。
本发明的有益效果是:解决了采用机器视觉的手段监测球头铣刀磨损过程中的球头铣刀定位问题,一方面完成了刀具的周向定位,即确定球头铣刀的切削刃的转角,另一方面完成了刀具上刀尖的定位,确定了左右后刀面的区域范围;在实现了图像中铣刀定位的基础上完成了铣刀磨损量的测量;该发明采用软件实现处理算法,直接对采集的刀具图像进行处理,即可快速自动完成球头铣刀的定位,而不需要借助附加的定位装置,并测得铣刀当前的磨损量,从而实现铣刀的在线监测。
上述步骤2.所述的滤波方法为中值滤波法,中值滤波是常用的非线性滤波方法,也是图像处理技术中最常用的预处理技术,它在平滑随机噪声方面非常有效,同时它可以保护图像的边缘。
上述步骤3.与步骤4.所述的边界提取过程所采用的算法具体为:
对于每一列采用公式(1)进行卷积操作,
D(i,j)=-1×A(i-2,j)-2×A(i-1,j)+2×A(i+1,j)+1×A(i+2,j) (1)
式中,A(i,j)为第j列、第i行像素点的灰度值,D(i,j)为该像素点在选定的前后各两像素的邻域内的灰度差分值。
上述步骤5.所述的亚像素边缘检测算法为高斯曲线拟合算法,具体过程如下:
上述步骤4中已提取的像素级精度的切削刃上的点以及其前后各两点一共5个点的灰度差分值的分布,在x--y坐标系下近似符合高斯分布,其中x为该列中的像素行坐标,y为该点像素的灰度差分值,高斯曲线表达式为:
其中,μ为均值,σ为标准差,该式左右两边取对数,则转化为下式:
记为:y'=ax2+bx+c (4)
该式为抛物线曲线,其顶点即为图像中切削刃上的亚像素级精度的数据点。
对应差分值最大的点标记为i=0,其左右两个点i值分别为-2、-1、1和2,则xi为该点的x坐标,yi为该点处的差分值,yi取对数即为yi',根据方形孔径采样定理可得:
其中yi'=lnyi (6)
采用改进的高斯拟合方法对切削刃上的数据点进行精确定位是通过将该5个点y方向同时向上平移大于等于M的距离,再进行高斯曲线拟合,则最终改进后的算法表达式为:
由于本发明采用一维扫描处理,采用高斯曲线拟合算法具有计算速度快和定位精度高的优点。
上述步骤8.所述的划定的左右两个扫描区域进一步缩小为图像中刀体左右后刀面的外接矩形区域,只对该两个矩形区域进行处理便可得到铣刀的磨损量,可以节省计算处理的时间。
具体实施方式
下面对本发明提出的球头铣刀磨损监测中的刀具定位及磨损监测方法的具体实施步骤做进一步描述。
步骤1.安装视觉监测系统
在数控机床上选择不影响正常铣削加工的机床边缘处,而主轴又能到达的地方安装视觉监测系统,包括相机支架、CCD相机、镜头和LED环形光源,支架采用磁力吸附固定在机床上,相机固定在支架上并位于主轴下方,LED环形光源加装在镜头前,实际拍摄时环形光源直接照射球头铣刀。
在机床上装夹球头铣刀,此处为右旋球头铣刀,将机床主轴移至相机正上方,使得在刀具图像中刀尖位置大致处在图像的中心,从而确定进行图像采集的主轴所在位置的x、y坐标;然后调整机床主轴转角,使得所采集的刀具图像中切削刃大体处于水平位置;根据刀具最大切深计算出最大切削宽度,则图像中应呈现所有切削宽度范围内的刀具后刀面,根据所需成像大小调整好焦距并固定,沿z向调整主轴位置,使刀具切削刃在图像中清晰成像;调节光圈,使得在刀具图像中能清晰地区分出刀具。
步骤2.采集球头铣刀新刀图像并进行图像预处理
视觉监测系统安装调试完毕后,开始采集铣刀的新刀图像,实际采集的刀具图像为灰度值图像,图3左侧所示为采集的新刀图像的示意图。
对图像进行滤波去噪处理,降低噪声带来的影响。在这里采用中值滤波方法,可以有效的抑制局部噪声。图像的预处理是非常重要的,直接影响到后续相关操作的准确度。
步骤3.划分新刀图像中的扫描处理区域
首先,选定要进行列扫描处理的图像区域。图像中,刀尖大致位于图像中心,刀具的左右切削刃呈中心对称分布。对左侧切削刃,取图像左半部分自下向上逐列扫描,同理对右侧切削刃,取图像右半部分自上向下逐列扫描。
实际操作过程中,对新刀灰度图像按列依次处理,每一列在竖直方向上存在两个边界,对于每一列像素点进行边界提取处理,对于每一列采用图1所示算子模板与该列采用式(1)进行卷积操作,
D(i,j)=-1×A(i-2,j)-2×A(i-1,j)+2×A(i+1,j)+1×A(i+2,j) (1)
式中,A(i,j)为第j列、第i行像素点的灰度值,D(i,j)为该像素点在选定的前后各两像素的邻域内的灰度差分值。
计算各像素点灰度差分值,比较同一列中各像素点灰度差分值大小,则每一列中的两个边界处的灰度差分值分别具有最大值和最小值,根据每列所得的两个边界计算两边界间距离,则两边界间距离最小的列即为刀尖所在的列,以刀尖所在的列将刀具图像划分为左扫描区域和右扫描区域两部分;
步骤4.新刀图像中切削刃上的点粗定位
理想情况下,图像中刀具边界处应产生阶跃型变化,在实际拍摄图像中,由于光学元器件的采样、光学衍射的作用以及光学系统的像差,导致物空间剧变的灰度值经光学成像后成为渐变的形式,而在图像中边缘处灰度变化最为剧烈,根据此原理,可对刀具的边界进行粗定位。
观察刀具图像可知,在竖直方向上每一列存在两个边界,一侧为切削刃,另一侧为刀体,而需要的是只提取一侧边界即切削刃。对刀具图像中选定的左扫描区域自下向上逐列扫描,右扫描区域自上向下逐列扫描,则每列中切削刃处为灰度上升边界,刀体处为灰度下降边界,对于每一列采用图1所示算子模板与该列采用式(1)进行卷积操作,比较得到的每点处前后各两像素的邻域内的灰度差分值,该值最大处即为灰度上升边界即刀具切削刃。前后各取两个像素参与卷积运算,具有更好的平均效果,避免局部极值带来的误差。将选取的图像处理完后即可得到代表切削刃的像素级精度的数据点。
步骤5.新刀图像中切削刃上的点精确定位
上述得到的粗定位结果是基于离散的像素,精度只能达到像素级。为了获得更高的精度,接下来采用亚像素边缘检测进一步定位,将离散的像素点的灰度差分值拟合为一条连续曲线,通过曲线可求得亚像素边缘坐标。根据分析,对于图像中所扫描处理的每一列,刀具切削刃属于图像中该列上的边界,而在图像边界附近的像素灰度值的差分值在x--y坐标系下近似符合高斯分布,如图2所示,其中x为刀具图像上该列中像素的行坐标,y为该点像素的灰度差分值,因此可以用这些差分值拟合高斯曲线,则高斯曲线的中心即高斯分布的均值是差分值最大处,如图2中红色虚线所示,其对应的像素行坐标也就是该列中切削刃上精确数据点的位置。
高斯曲线的表达式为:
其中,μ为均值,σ为标准差。该式比较复杂,直接拟合有一定困难,可以先将该式左右两边取对数,得到下式:
而该式是一条二次曲线,即y取对数后符合抛物线分布,因此可以把高斯曲线拟合转化为抛物线拟合。可设该抛物线方程为:
y'=ax2+bx+c (4)
这里,取5个点进行拟合,即差分值最大的点,和其左右的各两点。对应差分值最大的点标记为i=0,其左右两个点i值分别为-2、-1、1和2,xi为该点的x坐标,则x0代表切削刃的像素级坐标,yi为该点处的差分值,yi取对数即为yi'。根据方形孔径采样定理,可以得到下式:
其中yi'=lnyi (6)
则有:
但是,直接采用该方法会存在问题,因为由步骤4计算得到的差分值不能保证大于零,则上式中右边将无意义,因此须要对该算法进行改进。由前述可知在刀具边界点附近,像素的灰度差分值符合高斯分布,只是这些差分值可能存在小于零的情况,因此无法直接取对数。但是,灰度图像中像素灰度值的范围是0~255,则根据灰度值计算得到的差分值也是有界限的,那么就存在一个M值,只要将参与拟合的5个点的差分值同时向上平移大于等于M的距离,就能使这些值都大于零,而不改变它们的相对位置关系,这样拟合出的抛物线的顶点坐标也不会变化。事实上M值的选取也十分方便,只需通过简单计算,取一个较大的M值就可保证上述要求。
图2所示为该算法改进的示意图,图中的5点分别代表已提取的像素级精度的切削刃上的点以及其前后各两点一共5个点的灰度差分值,它们近似符合高斯分布,但不一定在x轴上方,因此通过将其整体沿y方向向上平移M的距离来保证它们恒大于零。
采用该方法,则上式转化为:
上式中有5个方程式,而未知数只有3个,因此该方程组为超定方程组,可以采用最小二乘法求解。
将上述方程组记为:
A[abc]T=B (9)
其中:
根据上述方法,可将该超定方程组的法方程组表示为如下的矩阵形式:
[abc]T=(ATA)-1ATB (11)
求解上式便可得到a、b、c的值,则抛物线的顶点坐标为:
则刀具边界即切削刃上的点的亚像素坐标值为:x*=x0+x' (13)
经过以上操作便完成了刀具图像中切削刃上精确数据点的定位。
步骤6.新刀图像中切削刃上的数据点的拟合
利用已提取的精确数据点,分别拟合出左右切削刃,将实际的微小弧度曲线拟合成直线。如果采用曲线拟合,将会更加符合切削刃的实际形状,但拟合出的曲线难以得到所需的转角信息。而采用近似直线拟合,可以很方便计算出铣刀切削刃与水平方向的转角,而且误差在允许范围内。
采用最小二乘法将左切削刃拟合为直线l1,该直线水平夹角为θ1;同理,将右切削刃拟合为直线l2,该直线水平夹角为θ2。
取
则θ即为最终要求的用于球头铣刀周向定位的角度,以该角度旋转刀具图像,便可完成球头铣刀的周向定位,处理结果如图3右侧所示。
步骤7.周向定位后新刀图像中刀尖位置与后刀面范围的确定
在步骤3中已经对周向定位前的新刀图像进行了刀尖定位,但是新刀图像经旋转定位后的刀尖的位置很有可能会发生微量偏移,因此须要对周向定位后的新刀图像重新进行刀尖定位。新刀图像经旋转定位后如图4所示,从图中可以发现,呈现在图像中的是铣刀切削宽度范围内刀体的后刀面,在刀尖处刀体上下边界间的长度具有最小值dmin,利用该特征可以提取出图像中球头铣刀刀尖的位置。
对整个新刀图像进行逐列自下向上扫描处理,采用图1所示算子模板与该列采用式(1)进行卷积操作,得到每点处选定的前后各两像素的邻域内的灰度差分值,该值最大处即为图4中l2上的点;该值最小处即为图4中l1上的点。这样便完成了图4中的后刀面边界l1、l2的粗定位,再通过采用步骤6中的亚像素边缘检测方法对该l1和l2上的点进行精确定位,从而便可计算得到每一列上精确的d值,通过比较求得dmin所在的列,则该列即为图像中刀尖所在的列,这样就完成了刀尖位置的确定。通过刀尖的横向位置便可将刀具后刀面划分为左右两部分。
步骤8.磨损后刀具图像中铣刀磨损量的测量
经过以上步骤后,求得了新刀图像中切削刃的水平夹角和刀尖的位置,并确定了铣刀切削宽度范围内的后刀面所在的区域,在图4中表示为线l1和线l2之间的区域。因为所采集的新刀图像和磨损后刀具图像具有相同的位置和转角,所以上述从新刀图像中得到的信息对于后续的每幅磨损后刀具图像同样适用。因此便可以以该水平夹角旋转磨损后刀具图像,完成磨损后刀具图像的周向定位,并且磨损后刀具图像与新刀图像具有相同的刀尖位置和后刀面区域。接下来只需对磨损后刀具图像中后刀面区域进行处理便可求得球头铣刀的磨损量,而不用对整个图像进行处理,节省了处理时间。
以刀尖为划分点,将上述后刀面区域划分为左右两部分,分别对该两个区域进行处理,可以测得铣刀左右后刀面上的磨损量。对于左后刀面,由于切削刃发生了磨损,原始新刀的切削刃会被磨去,产生的新的切削刃相比原切削刃在图像中会稍有上移,因此不能简单的以新刀图像中提取得到的左侧切削刃做为左后刀面的磨损下边界,而是须要重新定位。将左侧处理区域限制在图5所示左侧矩形区域内,该矩形为刀体左后刀面的外接矩形。采用步骤3中提到的图像边界提取方法对该区域进行处理,得到该区域内每一列中的上下边界d1、d2,然后通过比较该上边界d2的位置与后刀面的上边界du的位置来确定该列是否发生了磨损,如果d2在du下方,则该列发生了磨损,并且提取出的上下边界即为磨损上边界和磨损下边界,如果d2与du重合,则该列没有发生磨损。对发生了磨损的列采用步骤6中提到的亚像素边缘检测方法确定磨损上下边界的精确位置,从而计算得到该列的磨损量,处理完该左侧区域后,便可得到刀具左后刀面上的磨损量。对于右后刀面,采用同样的操作完成右后刀面上磨损量的测量。到此,便实现了整个铣刀当前的磨损量测量。
上述方法是针对右旋球头铣刀周向定位及磨损量测量的,对于左旋球头铣刀方法类似,只是在部分步骤进行适应性调整。