本发明属于数控技术领域,具体为一种数控机床快速找正方法。
背景技术:
数控机械零件加工中,需校准毛坯边线使其与数控机床x轴、y轴对齐,再设置程序加工原点。目前,一般使用划针或测量探针,人工找正程序加工原点,该方法时间长、操作繁琐,且采取手工录入数据偏差大、易出错。
技术实现要素:
为解决上述现有技术存在的不足,本发明所解决的技术问题是提供一种数控机床快速找正方法,可以实现数控加工中快速找正程序加工原点,减少人工停机时间,提高数控设备使用效率。
为解决上述技术问题,本发明数控机床快速找正方法是:基于人工智能的图像识别技术,选用树莓派(rashberry)开源电子平台加载摄像头硬件设备,具体步骤为:
step1:通过摄像头获取毛坯在数控机床的位置图片;
step2:运用基于计算机python语言opencv开源图像库对图片进行分析处理,得到毛坯在机床上的位置数据及位置偏转角度;
step3:通过无线传输模块,传递数据并修改数控系统中的程序加工原点位置变量,快速实现毛坯找正位置。
进一步地,上述方法步骤step1中获取毛坯在数控机床的位置图片的具体方法是:所述的树莓派(rashberry)开源电子平台加载摄像头硬件设备安装于机床主轴上,将其移动到毛坯需找正原点上方,然后通过摄像头获取毛坯在数控机床的位置图片。
进一步地,上述方法步骤step2中运用opencv开源图像库对图片进行分析处理的具体方法是:首先,将图片运用opencv库函数,设定阈值对图片进行二进制处理,使得毛坯区域和非毛坯区域变为黑白分明的图片;其次,对二进制图片处理,计算获得角点或孔圆心等在图片中像素位置,与校准图片比较并校正得出在机床位置的坐标数据及位置偏转角度。
在上述技术方案中,所提出的数控机床快速找正方法,所需设备简单、使用方便、成本低,可以缩短加工周期,质量稳定,并降低劳动强度。
附图说明
图1为本发明数控机床快速找正方法原理图。
图2为本发明运用opencv库函数处理图片的效果示例图
具体实施方式
下面将结合图1和图2,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明某一种具体实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明为一种数控机床快速找正方法。
如图1所示,首先将摄像头与树莓派用数据线联接构成前置模块,可安装于机床主轴上,移动到毛坯需找正原点上方。使用前校准位置,获取毛坯在机床中图片。
然后,在树莓派中编制图片处理基于计算机python语言程序。首先将图片运用opencv库函数,设定阈值对图片进行二进制处理,即毛坯区域和非毛坯区域变为黑白分明的图片。
运用opencv机器视觉库的函数cv.threshold对图片处理几种方式效果如图2。
运用opencv机器视觉库的函数cv.findcontours(),cv.drawcontours()对二进制图片处理获取图形的边界及角点的像素点位置值。
根据角点在图片中像素点位置计算得出机床的实际坐标位置。例如获取的是800×600像素大小图片。初始标定图片原始角点在机床中的位置x、y坐标数据为100、200(单位毫米)。现毛坯找正角点的象素位置为200、300,通过公式进行计算毛坯找正点为:x坐标值公式为x=100+α(200/800),y坐标值公式为y=00+β(300/600)(α、β为根据镜头焦距、拍摄距离及校准以后得到的系数)。
部份python语言程序代码如下:
importcv2ascv
importnumpyasnp
frommatplotlibimportpyplotasplt
img=cv.imread('gradient.png',0)
ret,thresh1=cv.threshold(img,127,255,cv.thresh_binary)
ret,thresh2=cv.threshold(img,127,255,cv.thresh_binary_inv)
ret,thresh3=cv.threshold(img,127,255,cv.thresh_trunc)
ret,thresh4=cv.threshold(img,127,255,cv.thresh_tozero)
ret,thresh5=cv.threshold(img,127,255,cv.thresh_tozero_inv)
titles=['original
image','binary','binary_inv','trunc','tozero','tozero_inv']
images=[img,thresh1,thresh2,thresh3,thresh4,thresh5]
foriinxrange(6):
plt.subplot(2,3,i+1),plt.imshow(images[i],'gray')
plt.title(titles[i])
plt.xticks([]),plt.yticks([])
plt.show()
im=cv.imread('test.jpg')
imgray=cv.cvtcolor(im,cv.color_bgr2gray)
ret,thresh=cv.threshold(imgray,127,255,0)
contours,hierarchy=cv.findcontours(thresh,cv.retr_tree,cv.chain_approx_simple)
cv.drawcontours(img,contours,-1,(0,255,0),3)
cnt=contours[4]
cv.drawcontours(img,[cnt],0,(0,255,0),3)
第三步,树莓派开源电子平台将数据转输至无线发射器后编码发射信号,其发射器应与接收器匹配。
最后,接收器解码后,将数据转入机床数控系统。将数据设置到指定数控系统程序原点变量,在数控系统中执行该设置程序即完成数控程序加工前的程序原点g54等参数设置。如西门子数控系统应系统变量$p_uifr[1]=100来进行程序原点数据设置。
1.一种数控机床快速找正方法,其特征是:所述的方法是基于人工智能的图像识别技术,选用树莓派(rashberry)开源电子平台加载摄像头硬件设备,具体步骤为:
step1:通过摄像头获取毛坯在数控机床的位置图片;
step2:运用基于计算机python语言opencv开源图像库对图象进行分析处理,得到毛坯在机床上的位置数据及位置偏转角度;
step3:通过无线传输模块,传递数据并修改数控系统中的程序加工原点位置变量,快速实现毛坯找正位置。
2.根据权利要求1所述的数控机床快速找正方法,其特征在于:所述的通过摄像头获取毛坯在数控机床的位置图片的具体方法为是,将树莓派(rashberry)开源电子平台加载摄像头硬件设备安装于机床主轴上,然后将该硬件设备移动到毛坯需找正原点上方,最后通过摄像头获取毛坯在数控机床的位置图片。
3.根据权利要求1所述的数控机床快速找正方法,其特征在于:所述的运用opencv开源图像库对图片进行分析处理的具体方法是,首先将图片运用opencv库函数,设定阈值对图片进行二进制处理,使得毛坯区域和非毛坯区域变为黑白分明的图片,其次对二进制图片处理,计算获得角点或孔圆心等在图片中像素位置,与校准图片比较并校正得出在机床位置的坐标数据及位置偏转角度。