首页 | 期刊简介 | 编辑部 | 广告部 | 发行部 | 在线投稿 | 联系我们 | 产品信息索取
2024年4月20日星期六
2011年第01期
 
2010年第12期
 
2010年第11期
2010年第11期
 
2010年第10期
2010年第10期
 
2010年第09期
2010年第09期
 
2010年第09期
2010年第08期
 
2010年第07期
2010年第07期
 
2010年第06期
2010年第06期
 
2010年第05期
2010年第05期
 
2010年第04期
2010年第04期
 
2010年第03期
2010年第03期
 
2010年第02期
2010年第02期
 
2010年第01期
2010年第01期
 
2009年第12期
2009年第12期
 
2009年第11期
2009年第11期
 
2009年第10期
2009年第10期
 
2009年第9期
2009年第9期
 
2009年第8期
2009年第8期
 
2009年第7期
2009年第7期
 
2009年第6期
2009年第6期
 
2009年第5期
2009年第5期
 
2009年第4期
2009年第4期
 
2009年第3期
2009年第3期
 
2009年第2期
2009年第2期
 
2009年第1期
2009年第1期
 
2008年第12期
2008年第12期
 
2008年第11期
2008年第11期
 
2008年第10期
2008年第10期
 
2008年第9期
2008年第9期
 
2008年第8期
2008年第8期
 
2008年第7期
2008年第7期
 
2008年第6期
2008年第6期
 
2008年第5期
2008年第5期
 
2008年第4期
2008年第4期
 
2008年第3期
2008年第3期
 
2008年第2期
2008年第2期
 
2008年第1期
2008年第1期
机器计算机视觉的应用
——打孔机影像定位系统设计

Mechanical Computer Vision Applications
——Key Punch Image Location System Design

凌华科技自动化产品事业部 连锦湮


前言

计算机视觉的应用大致上可以分成定位 (Location)、量测(Measurement)、识别(Recognition)、缺陷检测 (Defect Inspection)四大类,其中以定位的应用最为广泛,机器视觉系统同时涵盖了多项功能,例如检视主机板上的电子组件。也可以用来控制机械手臂,在机械手臂上加装CCD,利用影像辨识的定位,带动机械手臂来做一些高危险性的医疗研究,例如:病毒研究、药物混合等,都可以用这种方式来做控制,除了精准之外,对人类的生命也比较有安全保障。


影像定位后的坐标转换

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


坐标位移

公式:(略)


坐标旋转

1.将 (X1,Y1) 转换成极坐标 ' (X1,Y1) = (R1, 1)
其中, R1=√X12 + Y12
1 = Tan-1( Y1 / X1 ) 反正切函数
2. 2 = 1 + , 其中, = 表示旋转角度
→X2 = Cos ( 2 ) * R1
=Cos ( Tan-1( Y1 / X1 )+ ) *√X12+Y12
Y2 =Sin ( 2 ) * R1
= Sin ( Tan-1( Y1 / X1 )+ ) *√X12+Y12


坐标位移+旋转

遇到同时发生坐标位移&旋转时,先计算位移,再套用旋转的公式,即可算出最后的结果。


系统基本架构

GEME-3000主控制器: 含HSL控制卡,安装Windows
XP操作系统

3-Axis定位平台:三菱伺服马达+滚珠螺杆

运动控制器:HSL-4XMO控制模块。

计算机视觉组件:使用IEEE1394 CCD采集影像,利用Euresys Vision的EasyMatch进行影像比对(Pattern Match),作定位偏移的补正计算。

图1:系统架构实机图(略)


系统流程

本系统为介绍如何设计出结合“机械运动”与“计算机视觉”的自动化定位系统。


系统校正

Mitsubishi 驱动器调校:10,000 pulse/roll

滚珠螺杆的螺距vs. Pulse/Roll:

如,螺距=10mm/roll,10,000 pulse/roll ' 1um/pulse

F.O.V. (Field of View) 的选定:F.O.V.要大于定位点的大小。太小,可接受的“初步定位”误差变小;太大,因定位点影像太小,影像定位误差大。

CCD工作距离的选定:工作距离要大于打孔顶针,以免对焦时打孔顶针撞到工件。当F.O.V.及工作距离确认后,即求出 LENS & Ext. Ring。


教导作业

启动系统3轴回Home,待3轴回定位后,再由人工将工件置于3轴之定位平台上并作“初步定位”;

手动控制Z轴缓慢下降,使其接近定位平台上方(约0.5~1.0mm);

手动控制X/Y轴,使打孔顶针刚好在工件第一个孔位上方;再将Z轴缓慢下降,使其插入第一个孔位内。如定位不准,可以手动移动工件,使其定位更准确。

精确定位后,将Z轴上升至CCD的实时影像可看到完整“定位点”后,执行下列“流程图”。

(略)


自动定位

由人工将工件置于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<TOTAL_POINT; 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<TOTAL_POINT; 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;
}
}


结语

机器视觉系统应用在现今的工业上,不但大幅的提升了工业的生产力,而且增加了使用者的能力。机器视觉系统适用在如下领域中:
1.需要显微镜或放大镜配合的工作,长期使用放大工具对视力将会造成很大的损害,且操作人员的素质也成为检验上不定的因素。

2.高危险工作环境,例如高温、低温、真空、高压、高噪音、高量辐射、高电压、大电流的工作环境。

3.重复性工作,一成不变的工作容易造成操作人员的倦怠,容易产生疏忽而受伤,或有怠工的现象,而机器视觉能二十四小时无休止的工作,且能在高速下执行检查,而检视的准确度也能控制在较稳定的程度之内。
4.需要快速处理的状况,如军事武器操控,实时、大量的生产线。
5.高精确性工作,如量测、定位、对象判别。

《世界电子元器件》2006.9
         
版权所有《世界电子元器件》杂志社
地址:北京市海淀区上地东路35号颐泉汇 邮编:100085
电话:010-62985649
E-mail:dongmei@eccn.com