金 昭,李长安,窦亚萍,杨慕升,隋文涛
(山东理工大学 机械工程学院,山东 淄博 255000)
斜齿轮在工程中应用广泛,相对于直齿轮,具有运转平稳、承载能力高、噪音小等优点。斜齿轮螺旋角的大小没有固定的标准,不同厂家生产的斜齿轮的螺旋角常常不同。工业测量斜齿轮螺旋角主要采用接触式测量方法,分为万能角度尺法、拓印法、导程仪法、滚齿机法等。根据GB/T 6315—2008,万能角度尺的测量精度为2′或5′,测量耗时一般为18 s左右[1]4。接触式测量耗费工时较多,越来越难以适应工业快速生产[2]。斜齿轮螺旋角的非接触式测量方法主要为激光测量法、结构光法[3]10、机器视觉法[4,5]等。訾豪等人[6]提出了一种基于激光位移传感器的斜齿圆柱齿轮螺旋角测量方法,该方法中的激光测头需要精密的机械传动装置。石维等人[7]提出了一种基于斜齿轮上下端面图像处理的斜齿轮螺旋角测量方法,该方法需要手动操作,速度较慢。宋栓军等人[1]1提出了一种基于齿轮侧面图像处理的斜齿轮螺旋角测量方法,李捷等人[8]提出了一种结合Hough变换和两直线夹角公式的螺旋角检测方法;这两种方法可以应用于在线测量中,但测量大螺旋角斜齿轮时误差较大,且对齿轮侧面的图像处理效果较差。
笔者通过计算得出斜齿轮齿线在二维空间上的投影解析式,对其进行MATLAB仿真,验证齿线形状的唯一性;通过对斜齿轮侧面图像进行处理,得到齿线的边缘图像,统计结构元素数量得出斜齿轮旋向,再利用曲线拟合的方式得出螺旋角的值。笔者所提算法可以与齿轮端面测量系统结合,实现快速在线测量。
为了切合工业生产环境,斜齿轮螺旋角测量系统应与端面测量系统相结合[9]。一种工业上在线测量齿轮端面的装置如图1所示。
图1 齿轮的在线视觉测量
该装置可实现每2 s测量一个齿轮的端面参数。
笔者测量系统主要包括环形光源1、条形光源2、2×106像素CCD相机、CMOS相机,镜头1、双远心镜头2、相机支架和计算机。测量系统如图2所示。
图2 测量系统示意图
计算机的CPU是AMD的R5-4600 H。光源采用LED侧面条形光源与上方光源组合照明,可以增加斜齿轮侧面齿线边缘的对比度。CCD相机相对于水平面固定,采集水平放置的斜齿轮侧面图像。CCD相机需要用2个水平仪分别调节相机的俯仰角度和左右倾斜角度。双远心镜头景深为18 mm。双远心镜头具有宽景深、低畸变、无透视误差的特性。
测量的工作流程主要包括系统的安装与调试、图像的预处理、齿轮旋向和斜齿轮螺旋角的确定共3部分。其中测量系统的安装与调试主要包括对光源、支架、相机、工件固定装置的安装与装配误差修正;图像的预处理主要包括相机标定、畸变矫正、提取ROI区域、图像灰度化等操作;齿轮旋向和斜齿轮螺旋角的确定包括边缘检测、形态学处理、曲线拟合等操作,最终得出斜齿轮旋向和螺旋角β的值。
斜齿圆柱齿轮简称斜齿轮,斜齿轮的齿线是一系列处于同一圆柱体侧面的螺旋线的组合。螺旋线在空间直角坐标系的参数方程式如式(1~3),可表示为:
(1)
式中:c—斜齿轮的齿数;n—从1开始到c间隔为1的等差数列;θ—角度参数,范围(-b/2r,0)弧度。
其中:n为1时,第一条螺旋线起点与原点的连线与x轴的角度为θ0。
(2)
(3)
式中:β—斜齿轮螺旋角;z—竖坐标,范围[0,b];b—斜齿轮的厚度(螺旋线在z方向的高度)。
在端面坐标系中,每个齿所对应螺旋线旋转的角度为(2π/c)弧度。式(3)中,r、b的符号为负时,斜齿轮为左旋,反之则为右旋。
以1.5模齿数26厚度为15 mm的45°斜齿轮为例,将式(1~3)代入参数后输入MATLAB,可得齿轮齿形如图3所示。
图3 斜齿轮螺旋线三维示意图
斜齿轮螺旋线在xoz平面的投影如图4所示。
图4 斜齿轮螺旋线在xoz平面的投影
由投影图像图4可知:齿线在xoz面的所有投影都不是直线,但是中间的齿线投影与直线近似。由于相机只能采集到齿轮前面的图像,处在y>0部分的齿形曲线是不可见的,因此(0<2(n-1)π/c+θ0<π)。笔者只考虑相机能采集到图像的齿形部分,部分齿形曲线在xoz平面上的投影如图5所示。
图5 相机能采集到的螺旋线
联立式(1,3),可得x与z的函数表达式:
(4)
其他参数不变,在[0:0.05:1]弧度范围内改变β的大小,得到的图像如图6所示。
图6 改变β时的投影图像
由图6可知:β的大小在一定范围内时,投影曲线具有唯一性。
圆柱斜齿轮轴线与上端面的交点在(x0,z0)时,x与z的函数表达式为:
(5)
与直接使用中间齿线上下端点连线的方法对比,1.5模26齿45°斜齿轮图像齿线的上顶点坐标为(-39.78,0)时,理论上比该算法多0.91%的误差。在理想情况下,该算法的误差仅取决于相机的分辨率以及端面视觉测量得到的齿顶圆直径等参数的误差。
对于标准齿轮,齿顶圆直径一般等于分度圆直径加上齿轮模数的2倍。齿顶圆螺旋角与分度圆螺旋角的转换关系可表示为以下两式:
(6)
式中:P—螺旋面导程(不变);d—分度圆直径。
(7)
式中:βy—齿顶圆螺旋角;dy—齿顶圆直径。
由式(6,7)可得分度圆螺旋角β,即:
(8)
测量图像的像素尺寸利用了标准6×9棋盘格,每个棋盘格的尺寸为6 mm×6 mm,使用harris角点检测算法检测角点,根据角点的坐标求出每个像素代表的实际尺寸。在该文中,1个像素代表0.024 1 mm。
笔者基于MATLAB2020a平台,首先采用张氏标定法对相机进行标定,然后对图像进行畸变矫正、提取ROI区域、灰度化等操作。如图1所示,在齿轮的大规模工业视觉测量中,工件使用自动挡板来使工件静止在固定区域,采集完图像后,挡板再给工件放行。那么,图形的ROI区域的横坐标只与齿顶圆直径有关。在测量未知参数斜齿轮时,顶部相机测量齿轮端面的齿顶圆直径、齿数、分度圆直径等参数。缺少这些参数,就无法对提取出来的齿线边缘进行曲线拟合。由于齿轮的齿顶圆直径一般是负公差,使用顶部相机测量实际齿顶圆直径有助于减小所提方法的误差,也有利于自动获取ROI区域的坐标[10]。
经过畸变矫正后的齿轮ROI图像如图7所示。
图7 斜齿圆柱齿轮ROI区域
由于实验条件有限,难以保证工件图像不产生倾斜。所以需要测量工件倾斜角度来使图像坐标系与世界坐标系相匹配,使用轴固定齿轮,通过轴的图像获得更为精确的倾斜角。在图像中提取轴的ROI图像,边缘提取后通过最小二乘拟合得到轴倾斜的角度以及齿轮中心线的解析式。再结合ROI区域的坐标,得出图像坐标系原点的位置。
该步骤的意义在于确定r、b的正负号。先去除ROI图像的canny边缘图像中面积过小的连通域,然后遍历边缘图像,分别找出结构元素1和结构元素2的数量,根据结构元素的数量来确定齿轮是左旋还是右旋。笔者使用的部分结构元素可表示为:
(9)
式中:结构元素1—+45°斜率结构元素;结构元素2—-45°斜率结构元素;结构元素5—水平结构元素。
左旋的齿轮,它的侧面图像纹理的斜率多数是负的,右旋则相反。该算法受噪声影响较大,需要提前对图像高斯滤波进行处理。该算法在781×1 558的ROI图像上的运行时间为27.3 ms。
几种斜齿轮边缘图中,结构元素的数量如表1所示。
表1 结构元素的数量
由表1可知:不同旋向的斜齿轮,其2种结构元素的数量有极大的差异,在19°到45°螺旋角以及生锈、低照度等极端情况下,都不影响算法的准确性。直齿轮由于受到不规则高光反射影响,不能使用该方法判定是否是直齿轮。
以上实验数据证明,这种测量斜齿轮旋向的算法是可行的。
部分边缘提取算法的结果如图8所示。
图8 边缘提取算法效果对比
由图8可知:sobel算子和结合高通滤波器的canny算子检测出的边缘有多处明显断点,结合相位一致性的canny算子与使用高斯滤波器的canny算子效果几乎相同;结合HDR高动态范围成像算法[13]的canny算子在弱光处和灰度均衡化效果类似,其他区域边缘检测效果变差;蚁群算法[14]4检测出的边缘较平滑,但是没有解决断点的问题。在全局阈值的条件下,上述边缘检测方法效果均不佳。分区域的边缘检测算法只有中间部分的图像可以使用自适应阈值canny,左右部分图像的高斯滤波核和边缘检测阈值需要手动设定,采用大津法的自适应阈值会将齿底的反光误识别为边缘。采用同态滤波[15]5是最简单有效的方法,使用该方法最终提取的齿线数量比分区域的边缘检测算法多1条。
在MATLAB2020a环境下,结合HDR和蚁群算法的边缘检测算法运行时间均超过4 s,分区域的自适应canny边缘检测、sobel、高通滤波canny等算法运行时间小于0.1 s。结合同态滤波和canny算子的边缘检测算法运行时间小于0.3 s。
综合边缘提取效果和运行时间,笔者采用结合同态滤波和canny算子的边缘检测算法提取边缘。
根据齿线的形状可知,使用斜率筛选边缘最可靠。笔者采用改进的击中击不中变换算法实现斜率筛选,提取出需要的齿线边缘。首先构建结构元素,遍历图像,将与结构元素相同的部分清除,保留不相同的部分。这样可以断开与齿形边缘相连接的冗余边缘。改变结构元素,可以将图像中不需要的横线和竖线去除,仅保留齿线部分边缘。形态学处理流程如图9所示。
图9 形态学处理流程图
形态学处理中的几个关键步骤结果如图10所示。
图10 形态学处理效果图
由图10可知:笔者所提形态学算法对于边缘提取的缺陷有良好的补偿作用。
笔者在平面直角坐标系下对曲线进行拟合,将提取的一条边缘上点的横纵坐标进行如下变换,使其转换到以工件轴线为y轴,以齿轮图像上端面为x轴的坐标系上,并对工件倾斜角进行补偿。由于MATLAB图像坐标系与平面直角坐标系相反,坐标系原点在图像中对应的坐标(y0,x0)在平面直角坐标系对应的坐标就是(x0,y0),未发生倾斜时的坐标关系可表示为:
妙用几何直观,使学生在类比沟通中明了算理。如设计巩固练习题,让学生运用建立的几何直观,掌握同类问题的解题方法。
xreal1=y_img-x0
yreal1=x_img-y0
(10)
式中:x_img—一条边缘上点的横坐标;y_img—一条边缘上点的纵坐标;(xreal1,yreal1)—工件像素点在平面直角坐标系中的坐标。
倾斜矫正后的坐标与(xreal1,yreal1)的关系可表示为:
xreal2=xreal1×cos(θrotate)-
yreal1×sin(θrotate)+x0
yreal2=xreal1×sin(θrotate)+
yreal1×cos(θrotate)+y0
(11)
式中:θrotate—工件倾斜的角度;(xreal2,yreal2)—倾斜矫正后的坐标。
寻找各条边缘在图像中间区域的横坐标,设最右边缘解析式中的n为1,以该横坐标的大小对边缘排序。选择最长的边缘,利用MATLAB集成的fit函数进行拟合。设第n条齿线在y=0时的横坐标为xn,在一定条件下,xn的范围可表示为:
(12)
拟合程序流程如图11所示。
图11 拟合算法流程图
受边缘提取精度影响,单根曲线拟合出来的解析式可能有误差,应该将此解析式的参数代入式(5),得出其他曲线的坐标(xn,yn),然后计算图像横坐标xreal2与xn的方差。在极端情况下,计算得到的n会比实际值大1,需要事先对方差设置阈值。当方差大于该阈值时,将n减1,可以得出正确的β。
一条齿线边缘的曲线拟合效果图如图12所示。
图12 一条边缘的拟合效果图
以0.000 29弧度为间隔改变式(5)中β的值,利用式(5)得出坐标值,再求其与实际坐标的方差,使方差最小,求出最优β。
为了验证该方法的可靠性,笔者进行了实验验证。被测齿轮为2个1.5模数45°左旋斜齿轮、2个1.25模数19°左旋斜齿轮和1个1.5模数45°右旋斜齿轮(锈蚀)。不同厂家螺旋角的技术指标略有不同。笔者所提方法测量结果和设计值的对比如表2所示。
表2 斜齿轮螺旋角测量结果
基于该文平台,对于45°斜齿轮,文献[8]算法的测量结果是44.100 6°。该文方法的相对误差相对于文献[8]降低了1.74%。根据文献[1]的数据,该文方法的平均相对误差降低了0.56%。万能角度尺的精度为2′或5′,该文方法的检测精度接近万能角度尺。
与使用普通工业相机相对比,近距离测量45°斜齿轮时,由于难以精确补偿视差,中间位置视差较小的齿线测得螺旋角的相对误差达到2.7%,两侧视差较大位置齿线测得的螺旋角误差达到了5.01%。该文方法采用双远心镜头将相对误差降低了2%以上。
该文算法的总运行时间约1 s,相对于文献[7],检测时间减少了约7 s,相对于万能角度尺法检测时间减少了约17 s,可以满足图1所示在线测量系统的需要。
该文方法的精度对比接触式测量还有一定的差距,导致误差的原因主要有如下4个方面:
(1)测量系统装配误差;
(2)图像倾斜矫正的误差[16];
(3)齿面缺陷和污渍。齿面缺陷和污渍导致部分齿线的边缘断开,无法参与后面的拟合过程。提取的部分齿线边缘存在异常点,手动将其剔除后,单条边缘的测量误差平均降低了约0.02°;
(4)齿轮的倒角。齿轮倒角的边缘不在齿顶圆的圆柱面上。在没有倒角的斜齿轮上,检测精度比有倒角的齿轮检测精度略高。以45°斜齿轮为例,去除部分边缘中的倒角后,单条边缘测量误差平均降低了约0.1°。在没有倒角的斜齿轮上,拟合公式中的θ0参数可以通过角点检测算法提前测量得出,可以减少拟合算法的复杂度。该文算法更适合测量没有倒角的斜齿轮。
笔者通过MATLAB仿真,验证了斜齿轮侧面齿线形状的唯一性,统计结构元素数量得出了斜齿轮旋向,利用结合同态滤波的canny算子提取了齿轮侧面边缘;再使用改进的击中击不中变换算法对边缘进行了筛选,得到了齿线的边缘;最后,利用曲线拟合的方式得出了螺旋角的值。
研究结果表明:
(1)所提算法的测量系统结合了斜齿轮端面在线测量系统,并在其基础上进行了改进,能够在测量齿轮的齿数、齿顶圆直径、分度圆直径等参数的同时,测量斜齿轮的螺旋角和旋向,切合工业生产环境;
(2)与前人的研究相比,该文所提方法检测精度较高、检测速度较快,测量精度接近万能角度尺法。该文所提图像处理算法可以有效改善光照、齿面缺陷等对斜齿轮边缘提取的不利影响。并且,前人的研究大多无法实现在线测量,而该文方法可以较好地实现在线测量;
(3)该文方法在精度上还不能完全取代传统的接触式测量方法,但在速度上较传统方法有较大优势,可以应用在斜齿轮制造和装配工序中初步的精度测量和自动化分拣等部分。
在后续的研究当中,笔者准备减小边缘提取算法对光源的依赖性,争取在单一光源下就能取得良好的边缘提取效果;优化拟合算法,减小异常点的影响;使用C语言重新编写程序或将循环改写成矩阵运算的形式以提高运行速度。