0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于GEME-3000主控制器和计算机视觉组件实现自动化定位系统的设计

牵手一起梦 来源:连锦湮 - 《世界产品与技 作者:连锦湮 2020-04-25 11:13 次阅读

前言

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

影像定位后的坐标转换

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

● 坐标位移

公式:X2 = X1 + ΔX

Y2 = Y1 + ΔY

基于GEME-3000主控制器和计算机视觉组件实现自动化定位系统的设计

图1 坐标位移示意图

● 坐标旋转

(1)将(X1,Y1)转换成极坐标→ (X1,Y1) = (R1,θ1)

其中,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 坐标旋转的示意图

● 坐标位移+旋转

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

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

基本架构

● 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《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;

}

}

结束语

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

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

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 控制器
    +关注

    关注

    112

    文章

    15223

    浏览量

    171156
  • 计算机
    +关注

    关注

    19

    文章

    6649

    浏览量

    84503
  • 机器视觉
    +关注

    关注

    161

    文章

    4043

    浏览量

    118354
收藏 人收藏

    评论

    相关推荐

    计算机机房自动计费系统

    想到使用微处理代替人工,由此诞生的计算机机房自动计费管理系统是一套适用各类机房管理的高科技产品。它的最主要功能就是实现机房管理的
    发表于 06-27 23:58

    手机接口电路板组件计算机视觉检测系统的开发

    手机接口电路板组件计算机视觉检测系统的开发
    发表于 08-04 00:00

    机器视觉计算机视觉的关系简述

    ,以控制相应的行为。因此,可以说,计算机视觉为机器视觉提供图像和景物分析的理论及算法基础,机器视觉计算
    发表于 05-13 14:57

    自动驾驶系统要完成哪些计算机视觉任务?

    Geiger 的研究主要集中在用于自动驾驶系统的三维视觉理解、分割、重建、材质与动作估计等方面。他主导了自动驾驶领域著名数据集 KITTI 及多项
    发表于 07-30 06:49

    浅析自动化控制系统的设计与实现

    我们常说的 PLC 技术,它是在计算机技术基础上发展而来的一种技术,本身其实也是计算机技术的一种表现,是可编程控制器的一种简称。这种技术为当前大规模产品制造创造了极高的生产效率,并且技术日趋成熟
    发表于 07-02 06:02

    计算机控制技术简介

    Hefei University课程综述课程题目:计算机控制技术姓 名:胡年军学 号: 0805070111专 业: 自动化(1)班授课老师:丁健一、计算机控制技术简介计算机控制技术是
    发表于 09-01 08:09

    微型计算机控制技术与系统

    自动化、电子与电气工程、计算机应用、机电一体等专业的主干专业课程。本课程以计算机在过程控制中的应用技术为中心,主要研究如何将
    发表于 09-01 08:16

    计算机在电气中的应用是什么

    原标题:电气自动化在电力系统中的应用分析近年来,随着计算机技术、信息技术的发展,以计算机软件、硬件为主的电力控制逐渐
    发表于 09-08 06:06

    微型计算机

    微机原理重点考试习题 自动化方向~第1章 微型计算机系统导论一、自测练习题㈠ 选择题1. 微型计算机是指以()为基础,配以存储以及输入/输出接口电路和相应的辅助电路而构成的裸机。A.
    发表于 09-10 09:17

    水厂计算机监控系统的实际控制

    和管理,提高设备运行效率,节省资源是水工业技术发展的必然趋势。随着自动化控制技术的迅猛发展,供水行业里的许多水厂建立起供水设备的计算机监控系统。但在实际应用中,真正能够达到满意效果的水
    发表于 09-10 08:12

    浅析计算机接口与控制技术

    :3适用专业:钻井、机电、工业自动化课程性质:学位课先修课程:模拟数字电路、自动控一、课程目的与要求:工业控制计算机的一个重要应用领域,计算机控制
    发表于 09-10 06:45

    计算机系统组成

    存储过程中按照执行的顺序;以运算控制器作为计算机结构的中心等。冯诺依曼计算机广泛应用于数据的处理和控制方面,但是存在一些局限性2、结构:
    发表于 12-09 08:19

    计算机视觉及其在焊接中的应用

    简要阐述了计算机视觉的基本原理、系统结构和计算机视觉的基本处理方法,并着重讲解了在焊接自动化领域
    发表于 07-18 10:19 9次下载

    基于计算机的机床测试系统设计

      本文以一台计算机主控制器,采用Windows风格接口软 件,计算和测试速度快,信息处理能力强,系统集成度高,工作界面友好,操作方便,实现
    发表于 08-29 11:45 961次阅读
    基于<b class='flag-5'>计算机</b>的机床测试<b class='flag-5'>系统</b>设计

    自动化计算机是什么,它的作用是什么

    任务都是通过使用控制机械和过程的自动化PC实现自动化的。这篇文章的目的是解释什么是自动化计算机
    的头像 发表于 01-18 15:05 6266次阅读