>
首页 » 技术文章 » 机器计算机视觉的应用-打孔机影像定位系统设计

机器计算机视觉的应用-打孔机影像定位系统设计

作者:凌华科技自动化产品事业部 连锦湮  时间:2007-04-25 18:08  来源:

计算机视觉的应用大致上可以分成定位、量测、识别、缺陷检测四大类,其中以定位的应用最为广泛。机器视觉系统可以用来检视主机板上的电子组件,也可以用来控制机械手臂,在机械手臂上加装ccd,利用影像辨识的定位,带动机械手臂来做病毒研究、药物混合等一些高危险性的医疗研究。除了精准之外,对人类的生命也比较有安全保障。

影像定位后的坐标转换

市面上影像比对的函数库(library)很多,使用者可以自行选用合适的函数库。以下所提的系统采用euresys公司开发的evision easymatch,这是一种基于灰度相关性的图像匹配函数库,速度非常快,而且能够达到次像素(sub-pixel)精度的匹配结果。对于旋转、比率变化(缩/放)和平移等,都能精确找到模板图像(golden image)的位置。故本文仅对影像定位后的二维坐标产生的“位移”与“旋转”做探讨。

● 坐标位移
公式:x2 = x1 + δx
y2 = y1 + δy

图1 坐标位移示意图

图1是坐标位移的示意图。

● 坐标旋转
(1)将(x1,y1)转换成极坐标→ (x1,y1) = (r11)
其中,r1 = √x12 + y12
θ1 = arctan( y1 / x1 ),即反正切函数
(2)θ2 = θ1 + θ,其中,θ= 表示旋转角度
得出 x2 = cos (θ2) * r1
= cos (arctan(y1/x1)+θ) *
√x12 + y12
y2 = sin(θ2) * r1
= sin(arctan(y1/x1)+θ) * √x12 + y12

图2 坐标旋转的示意图

图2是坐标旋转的示意图。

● 坐标位移+旋转
遇到同时发生坐标位移和旋转时,先计算位移,再套用旋转的公式,即可算出最后的结果。
下面介绍如何设计出结合“机械运动”与“计算机视觉”的自动化定位系统。

基本架构

● geme-3000主控制器:含hsl控制卡,安装windows xp操作系统
● 3-axis定位平台:三菱伺服马达+滚珠螺杆
● 运动控制器:hsl-4xmo控制模块
● 计算机视觉组件:使用ieee 1394 ccd采集影像,利用euresys evision的easymatch进行影像比对(pattern match),作定位偏移的补正计算。
完整的实际系统如图3所示。

图3 系统架构实机图

系统校正

● mitsubishi驱动器调校:10 000 pulse/roll,即运动控制卡送出10 000个脉波,马达会转一圈。
● 滚珠螺杆的螺距vs. pulse/roll:如,螺距=10mm/roll,10 000 pulse/roll意味着1μm/pulse,即每发出一个脉冲,螺杆会前进1μm。
● f.o.v.(field of view)的选定:f.o.v.要大于定位点的大小,太小则导致可接受的“初步定位”误差变小;太大则导致因定位点影像太小,影像定位误差大。
● ccd工作距离的选定:工作距离要大于打孔顶针,以免对焦时打孔顶针撞到工件。当f.o.v.及工作距离确认后,即求出镜头和延伸环。

教导作业

● 启动系统3轴回到初始位置,待3轴回定位后,再由人工将工件置于3轴之定位平台上并作“初步定位”;
● 手动控制z轴缓慢下降,使其接近定位平台上方(约0.5~1.0mm);
● 手动控制x/y轴,使打孔顶针刚好在工件第一个孔位上方;再将z轴缓慢下降,使其插入第一个孔位内。如定位不准,可以手动移动工件,使其定位更准确。
● 精确定位后,将z轴上升至ccd的实时影像可看到完整“定位点”后,执行图4所示的流程图。

图4 图像处理软流程图

自动定位

● 由人工将工件置于3轴定位平台上,作“初步定位”后并启动本系统;
● 系统会驱动3轴定位平台将ccd移至定位点上方(2个不同位置),取像并利用已“教导”的标准影像做“影像比对”作业;
● 计算出“初步定位”的偏移量(shift x/y)及旋转角度 (rotation angle);
tx = goldexy[ccd_find][1] - m_find.getcenterx();
ty = goldexy[ccd_find][0] - m_find.getcentery();
if (ccd_find==0) { //第一次定位
shiftx = zerox - tx*calibration;
shifty = ccd_y - ty*calibration;
} else { //第二次定位
dx = ccd_locate[1][0] - tx*calibration;
dy = ccd_y - ty*calibration;
angle = atan2( dy - shifty, shiftx-dx);
calnewlocate(angle, shiftx, shifty);
}
● 通过“极坐标转换”,重新计算工件上所有孔位的新坐标(point table)。
void calnewlocate(f64 angle, f64 shiftx, f64 shifty)
{
int i;
f64 p[total_point*2];
f64 t;

for (i=0; i p[i*2] = sqrt( orglocate[i*2] * orglocate[i*2]
+ orglocate[i*2+1] * orglocate[i*2+1]);
p[i*2+1] = atan2( orglocate[i*2],
orglocate[i*2+1])+ angle;
}
for (i=0; i t = p[i*2]*sin(p[i*2+1]);
newlocate[i*2] = (shiftx + t)*scale_x;
t = p[i*2]*cos(p[i*2+1]);
newlocate[i*2+1] = (shifty + t)*scale_y;
}
}

结束语

机器视觉系统不但大幅的提升了工业的生产力,而且增加了使用者的能力。使用机器视觉系统可以保护人眼的健康和提高检测精度,而机器视觉系统能24小时不停顿地工作,且能在高速下执行检查,而检视的准确度也能控制在较稳定的程度之内。


此外,在危险工作环境中,在需要快速处理的军事武器操控,实时、大量的生产线上,在量测、定位、对象判别等高精确性工作中,机器视觉系统也都有很好的应用前景。

相关推荐

美国迈思肯庆祝引领自动识别和机器视觉技术创新30年

迈思肯  机器视觉  2012-05-11

机器视觉检测技术的典型应用

机器视觉  印刷电路板  2011-06-23

迈思肯推出机器视觉创新产品

美国迈思肯公司任命Scott Summerville先生为新总裁

2011-04-25

康耐视向中国多所大学捐赠其最高端机器视觉产品

康耐视  机器视觉  2010-11-25

康耐视为您提供免费的机器视觉学习资源

在线研讨会
焦点