毕业论文

更新时间:2024-05-16 14:29:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

长 春 工 程 学 院 (论 文)

目 录

1. 绪论 -------------------------------------------------------------- 2 1.1 论文的研究背景和意义 --------------------------------------------- 2 1.2 机器视觉控制系统的发展状况与趋势 --------------------------------- 2

1.2.1 机器视觉控制系统在国内外的发展概况 -------------------------------- 2 1.2.2 国外发展概况 ------------------------------------------------------ 3 1.2.3 国内发展概况 ------------------------------------------------------ 3 1.2.4 机器视觉控制系统发展趋势 ------------------------------------------ 5

1.3 本课题研究的主要内容 --------------------------------------------- 5 2. 视觉控制系统总体设计 ----------------------------------------------- 5 2.1 系统功能及技术的要求 --------------------------------------------- 5 2.2 系统的总体结构 --------------------------------------------------- 6

2.2.1 X、Y工作台简介 --------------------------------------------------- 6 2.2.2 视觉控制系统框架 -------------------------------------------------- 7 2.2.3 视觉系统硬件组成 -------------------------------------------------- 8

3. 图像处理 ---------------------------------------------------------- 11 3.1 图像去背景 ------------------------------------------------------ 11 3.2 图像二值化 ------------------------------------------------------ 15 3.3 图像腐蚀与膨胀 -------------------------------------------------- 17 3.4 图像边缘检测 ---------------------------------------------------- 17 3.5 提取图像轮廓坐标信息 -------------------------------------------- 21

3.5.1 单区域跟踪 ------------------------------------------------------- 21 3.5.2 多区域跟踪 ------------------------------------------------------- 22 3.5.3 边界点坐标的数据结构 --------------------------------------------- 22 3.5.4 坐标的存储 ------------------------------------------------------- 23 3.5.5 去除非图像轮廓的干扰 --------------------------------------------- 23 3.5.6、出现的问题及解决方案 ---------------------------- 错误!未定义书签。

4. 运动部分的设计 ---------------------------------------------------- 24 4.1 运动控制系统 ---------------------------------------------------- 24 4.2 运动控制器 ------------------------------------------------------ 25

4.2.1 运动控制器与伺服系统的匹配 --------------------------------------- 26 4.2.2 运动控制系统典型应用 --------------------------------------------- 27

4.3 二维插补 --------------------------------------------------------- 28

4.3.1直线插补和圆弧插补的计算原理 ------------------------------------- 28 4.3.1逐点比较法直线插 ------------------------------------------------- 28

4.3 坐标系转换 ------------------------------------------------------- 30

4.3.1 取文件中的坐标 --------------------------------------------------- 30 4.3.2 工件坐标值的转化 ------------------------------------------------- 30 4.3.3 坐标系数的计算 --------------------------------------------------- 31

0

长 春 工 程 学 院 (论 文)

4.3.4 定位模拟加工 ----------------------------------------------------- 32

5.致谢 ---------------------------------------------------------------- 35 6.参考文献 ------------------------------------------------------------ 33

1

长 春 工 程 学 院 (论 文)

1. 绪论

1.1 论文的研究背景和意义

在数控机床生产线上,机床在数控系统的控制下,实现了零件加工过程的自动化。但是,仍主要用非自动化的方式对被加工零件(工件)进行安装、定位、加紧,且还需人工的在计算机上画图,编程,个人之间的差异等产生误差和错误源源不断地影响着工件的加工精度,这种工件安装操作方式及编程的方式是与数控加工的高精度、高效率、高柔性、高自动化的特征不相适应。因此,本文在这样的背景下把当今最为热门的机器视觉引入了数控平台的研究当中。

机器视觉就是用机器代替人眼来做测量和判断。机器视觉系统是指通过机器视觉产品(即图像摄取装置,分 CMOS 和CCD 两种)将被摄取目标转换成图像信号,传送给专用的计算机图像处理系统,根据像素分布和亮度、颜色等信息,转变成数字化信号;图像系统对这些信号进行各种运算来抽取目标的特征,进而根据判别的结果来控制现场的设备动作。

机器视觉系统的特点是提高生产的柔性和自动化程度。在一些不适合于人工作业的危险工作环境或人工视觉难以满足要求的场合,常用机器视觉来替代人工视觉;同时在大批量工业生产过程中,用人工视觉检查产品质量效率低且精度不高,用机器视觉检测方法可以大大提高生产效率和生产的自动化程度。而且机器视觉易于实现信息集成,是实现计算机集成制造的基础技术。

正是由于机器视觉系统可以快速获取大量信息,而且易于自动处理,也易于同设计信息以及加工控制信息集成,因此,将机器视觉引入到数控的自动化生产中,有着巨大的意义。

1.2 机器视觉控制系统的发展状况与趋势 1.2.1 机器视觉控制系统在国内外的发展概况

机器视觉是一项综合技术,其中包括数字图像处理技术、机械工程技术、控制技术、光源照明技术、光学成像技术、传感器技术、模拟与数字视频技术、计算机软硬件技术、人机接口技术等

[1]。它是实现精确定位、精密检测、自动化生产的有效途径,同时它具有实现非接触测量、具

2

长 春 工 程 学 院 (论 文)

有较宽光谱响应范围、可长时间工作等优点,因此被广泛应用于各个领域,如工业制造生产、医学、导航、遥感图像分析等。虽然机器视觉技术从20 世纪80 年代才开始起步,但由于其突出的优点,在各种工业领域被广泛应用,特别是近几年发展十分迅速,国内外的成果也是层出不穷。 1.2.2 国外发展概况

对于机器视觉的研究应用,日本、德国和美国等发达国家早在上世纪六十年代就开始了。到上世纪九十年代,随着光电子技术和计算机技术的发展,机器视觉已取得了广泛的应用,其市场潜力十分巨大。

在实际工业控制领域,机器视觉控制系统在国外近些年了有了比较多的应用。1993 年,Wu,Q . M采用模糊控制算法应用机器视觉技术自动调节线加工机械的切削位置

[2]。1999 年,Jennings

R.B.等将机器视觉技术应用于化工产品生产过程中。在这个系统中,机器视觉系统指导一个两轴运动器的运动,以完成化工产品的混料工序

[3]。2000 年,F.Meriaudeau 将机器视觉系统应用在

冶金工业中的金属焊接质量检测与在线过程控制中。F.Lahajnar 将机器视觉技术应用在柴油机装配柴油过滤器的过程中,对其进行识别定位,其识别定位时间大约0.9s。为了能够在使这个定位系统中适用于不同的柴油过滤器的装配,采用了Karhunen _Loeve展开法对图像进行特征提取

[4]。2002 年,F.hajnar 利用机器视觉系统检测电路板。这个系统应用了两个长焦相机,并采用

亚边缘检测技术和对系统进行半自动校准,精确测量出了电路板的几个尺寸参数。并且机器视觉系统能够很好的跟踪电路板生产过程,检测每一个电路板,分拣次品。大量的试验表明这个控制系统具有快速、精确、鲁棒性好的优点

[5]。同年,P.Burgeat用视觉方法检测金属管不同部位的

缺陷。2003 年,Eladawi.A.E 将机器视觉技术用于数控铣床加工中,对水平和垂直两个方向进行测量,以获得的实时加工数据。整个系统工作过程分为两步:第一步利用利用视觉捕获加工物件图像;第二步利用图像处理软件对图像进行处理和分析,以获得所需的数据。2005 年,O’Leary利用机器视觉技术实现了整个金属轧辊过程的监控,并通过数据高速传送网络实现了整个系统的视觉反馈控制。2006 年,Kerr.D 采用机器视觉技术对数控机床的刀具磨损进行监控。在实际加工中,需要周期性的对刀具磨损进行检测,以保证加工的精度

[6]。

1.2.3 国内发展概况

3

长 春 工 程 学 院 (论 文)

机器视觉控制系统在国内的应用主要集中于检测、定位等几个方面,这样的工业产品占据了中国市场的绝大部分。天津大学针对双列直插集成电路芯片研究出了基于机器视觉的管脚尺寸自动检测装置。整个自动检测设备系统主要由管脚图形采集模块、管脚图像识别及检测模块、自动控制模块三个功能模块组成。整个系统具有检测精度高、速度快的优点

[7]。华中科技大学在金属

板材数控加工中利用机器视觉技术对加工轨迹坐标定位。为了有效排除成形过程中坐标对位对零件上出现的拉裂、材料堆积等现象的影响,更精确的进行工艺分析,必须完成成形轨迹坐标的准确对位。然而人工对位效率低、精度差,因此提出了一种基于机器视觉的非接触式加工轨迹坐标对位方法,完成了金属板材数字化成形中支撑模型的非接触式高精度快速定位

[8]。在汽车制造质

量检测,机器视觉技术被应用于汽车零部件外形尺寸检测、车身轮廓检测、装备完整性检测等方面

[9]。目前这方面的技术已经产业化,特别是以西门子SIMATIC VS 710 视觉产品为代表的产品

已广泛应用于汽车制造质量检测中。另外英国ROVER 汽车公司800 系列汽车车身轮廓尺寸精度的检测、Fuchs Engineering (福克斯工程公司)的生产汽车中的电插塞式连接器何差动齿轮的过程检测中也应用了机器视觉技术

[10]

国内在定位领域对于机器视觉的应用主要集中于PCB数控钻机。印刷电路板(PCB) 基准定位孔的准确性直接影响PCB的质量,而传统的定位无法满足高精度集成电路,因此包括中国计量学院等单位进行了基于机器视觉的PCB数控钻机定位研究。大量的实践证明采用机器视觉系统进行定位并且综合运用数控伺服传动技术以及各种先进控制技术能够有效实现精确定位

[11]

在其它的机器视觉控制系统应用领域,我国也有些成果。比如中南大学和香港大学联合开发了棒材生产在线视觉技术系统。利用机器视觉技术可以很好的对棒材在线快速计数和分钢自动化操作

[12]

。而在焊接领域很多情况下具有危险或人无法到达,可以利用机器视觉技术去指导执行

[13]

机构完成焊缝等焊接工作。

机器视觉控制系统由于其具有的高精度、可实现非接触测量、可长时间稳定工作等特点,在国内外工业领域均被广泛应用,大大提高了产品质量和生产线自动化程度。而国内在机器视觉产品研究开发上与国外相比还有一定差距,目前国内在机器视觉产品研究开发水平上仍处于一个比较低的水平,普遍采用的是国外产品。在软件方面,特别是在算法的研究方面国内的研究尤其欠缺,主要仍采用一些经典的数字图像处理算法,很少提出新的更为有效的算法。而国外针对工业

4

长 春 工 程 学 院 (论 文)

现场的实际情况在发展机器视觉硬件产品的同时,对算法的研究更是投入了大量的人力和物力。 1.2.4 机器视觉控制系统发展趋势

机器视觉控制系统的应用目前主要集中在检测、定位、运动控制、机器人等几个领域。而在近2 年,在运动控制、生产流水线、诊断、测试、数控设备等几个领域对于机器视觉的应用需求增长最为迅速

[14]

。目前国内外都在大力发展机器视觉产业,并在逐渐形成细分组成机器视觉产

业的“视觉软件”、“机械手”、“造型设计”、“相机系统”、“光源”等微观个体,从而加快了这个产业的发展。在机器视觉控制系统硬件发展的同时,对于机器视觉软件的研究也正进一步深入。由于机器视觉控制系统主要用于工业现场,工作环境较为恶劣、现场噪声大,因此目前机器视觉算法的研究主要集中于去噪、提高精度和速度上,目前很多算法在实验室里已经得到了验证。因此未来机器视觉控制系统的控制精度将更高、速度将更快、应用范围将更为广泛。 1.3 本课题研究的主要内容

1)、照相机摄取X、Y数控平台上的工件或图片,将被摄取目标转换成图像信号,传送给专用的计算机图像处理系统;

2)、读取图像,并对图片进行二值化处理、去背景处理、腐蚀和膨胀处理、提取图片或工件的轮廓、轮廓跟踪、提取轮廓信息;

3)、运动控制器对X、Y数控床身的控制。图片像素值与机床进给脉冲数的转换、X、Y机床坐标和图像像素坐标与演示笔(实际生产中的Z轴)光标坐标三者的统一。

2. 视觉控制系统总体设计

2.1 系统功能及技术的要求

本次设计是基于X、Y数控视觉控制系统的研究,在X、Y数控平台上建立视觉系统,完成X、Y数控平台对工件或图片轮廓的跟踪运动,在实际的生产线上,可以利用此技术对工件轮廓进行无需人工操作的自动化加工,实现生产的自动化、智能化、高效化。

5

长 春 工 程 学 院 (论 文)

2.2 系统的总体结构 2.2.1 X、Y工作台简介

X-Y运动平台是车、铣、钻、激光加工等多种数控设备的基本组成部件,应用于机电一体化系统的教学和研究,同时还可以用作机器人、PCB封装半导体加工和零件等各种工业应用软件的设计平台。本运动平台由机械本体和控制系统两部分组成,机械本体采用模块化拼装。其主体由两个直线运动单元(GX系统)组成,控制系统主要由普通pc机、电控箱、运动控制器、伺服(步进)电机及相关软件组成,可进行运动控制系统PID控制、单轴运动策略规划、数控代码编程、二维插补原理及应用、二维轨迹插补算法研究和二维运动控制应用系统开发。

? XY 平台系统组成

GXY 系列工作台集成有 4 轴运动控制器、电机及其驱动、电控箱、运动平台等部件。各部件全部设计成相对独立的模块,便于面向不同实验进行重组。

机械部分是一个采用滚珠丝杠传动的模块化十字工作台,用于实现目标轨迹和动作。为 了纪录运动轨迹和动作效果,专门配备了笔架和绘图装置,笔架可抬起或下降,其升降运动由电磁铁通、断电实现,电磁铁的通断电信号由控制卡通过IO接口给出

[15]

[14]

图 2-1 GT 运动控制器典型应用

执行装置根据驱动和控制精度的要求可以分别选用交流伺服电机,直流伺服电机和步进电

6

长 春 工 程 学 院 (论 文)

机。直流伺服电机具有起动转矩大、体积小、重量轻、转矩和转速容易控制、效率高的优点。但维护困难,使用寿命短,速度受到限制。交流伺服电机具有高速,高加速度,无电刷维护,环境要求低等优点,但驱动电路复杂,价格高。一般伺服电机和驱动器组成一个速度闭环控制系统,用户则根据需要可通过运动控制器构造一个位置(半)闭环控制系统。步进电机不需要传感器,不需要反馈,用于实现开环控制;步进电机可以直接用数字信号进行控制,与计算机的接口比较容易;没有电刷,维护方便、寿命长;启动、停止、正转、反转容易控制。步进电机的缺点是能量转换效率低,易失步(输入脉冲而电机不转动)等。当采用交流伺服电机作为执行装置时,安装在电机轴上的增量码盘充当位置传感器,用于间接测量机械部分的移动距离,如果要直接测量机械部分移动位移,则必须额外安装光栅尺等直线位移测量装置。

控制装置由PC 机、GT-400-SV(或GT-400-SG)运动控制卡和相应驱动器等组成。运动控制卡接受PC 机发出的位置和轨迹指令,进行规划处理,转化成伺服驱动器可以接受的指令格式,发给伺服驱动器,由伺服驱动器进行处理和放大,输出给执行装置。控制装置和电机(执行装置)之间的连接示意如图2-1所示: 2.2.2 视觉控制系统框架

机器视觉是机器(通常指数字计算机)对图像进行自动处理并报告“图像中有什么”的过程,也就是说它识别图像中的内容,图像中的内容往往是某些机器零件,而处理的目标不仅要能对机器零件定位,还要能对其进行检验

[16]

对机器视觉,人们也经常使用术语“计算机视觉”与“图像理解”。 机器视觉有两部分组成:特征度量与基于这些特征的模式识别。

图(2-2)用图的方式表示了一个机器视觉系统在最基本层次上的组成。首先对未知物体进行度量,并确定一组特征的度量值。在工业应用中,这些特征包括被度量零件在图像中的长、宽和面积。一旦特征经过度量后,其数值就被送到一个现实决策规则的过程中去,这种决策规则一般用一个子程序实现。它对度量值进行计算,并根据所度量的值确定物体最可能属于的类别。

正如图(2-2)所示,一个机器视觉系统的结构相当简单。然而,每个模块的细节会相当复杂,并且对设计分类器与特征量系统的不同选择很多。

“特征度量”模块可以进行进一步分解成较详细的操作,如图(2-3)所示。在这个层次上,结构流程会变得更加复杂,因为要执行的具体操作,随图像的类型以及任务要实现的目标变化而

7

长 春 工 程 学 院 (论 文)

变化。并不是所有的操作在任何的应用中都要执行。

图2-2 机器视觉系统的组成框图

图2-3 特征度量系统组成

2.2.3 视觉系统硬件组成

本文研究的计算机视觉系统主要由七个部分组成:摄像机和光学部件、灯光、图像采集卡、运动控制器、X、Y数控平台,如图(2-5)系统结构。其中,摄像机和光学部件主要用于拍摄目标物体;灯光用于照亮工件,以便从摄像机拍摄到更好的图像;图像采集卡将摄像机与运动控制器连接起来,从摄像头中获得数据(模拟信号或数字信号),然后转换成运动控制器能处理的信息;最后运动控制器控制X、Y数控平台进行模拟加工,完成设计的整个流程。系统构成如图2-4所示:

光 源 位于X、Y平台上的工 件 摄像机及光学部件 图片采集卡 图 片 处 理 运动控制 器 X、Y运动平台

图2-4 视觉控制的系统组成

8

长 春 工 程 学 院 (论 文)

摄像机激光笔架 X-Y平台

图 2-5 系统结构

数字摄像机

[17]

本次设计所选用的是DH-HV1302UC数字数相机,在Microsoft的32位Windows操作系统中,数字摄像机应用接口库直接操作数字摄像机,并提供给用户一个简单明确的应用接口。用户在编制自己的应用程序时,可以直接调用这些库函数来实现指定的功能。

一般情况下,摄像机的开始操作和初始化参数的设置,最好在用户应用程序的初始化中完成,摄像机的结束操作应在应用程序退出前执行,数字摄像机工作流程如下图所示:

图2-5 数字摄像机工作流程图

1)、开发工具

9

长 春 工 程 学 院 (论 文)

应用接口库支持32位编程开发工具Microsoft Visual C/C++,使用 C/C++编程工具,首先应在程序中调用相关的包含文件(.h),并将静态链接库(.lib)文件加入到工程文件中,供编译程序在链接(Link)时使用。

2)、 摄像机性能 ◇符合USB2.0标准

◇ CMOS彩色数字图像传感器,分辩率:2048×1536(3,145,728 个像素) ◇光学尺寸:1/2英寸 ◇像素尺寸:3.2μm×3.2μm ◇模/数转换精度:10位 ◇像素深度:8位

◇图像数据输出格式:Bayer

◇帧率:QXGA(2048×1536):6帧/秒 UXGA(1600×1200):10帧/秒 SXGA(1280×1024):15帧/秒 VGA(640×480):50帧/秒 CIF(320×240):125帧/秒 ◇图像窗口可无级设置,帧率也随之变化 ◇增益可调

◇快门速度可调(1/100000s - 1s) ◇外触发抓拍功能,触发光源控制接口 ◇信噪比:>42dB ◇动态范围:>60dB

◇灵敏度(绿像素):在550nm的光源下为1V/lux-sec ◇清晰度:900线

工作温度:0 - 60℃ ◇工作湿度:20% - 80%

功耗,额定功率:1.75W 最大功率:2.25W

10

长 春 工 程 学 院 (论 文)

接C制标准镜头

支持Windows9x/2000/XP操作系统

3)、摄像机的机械参数

2-6 图摄像机的机械参数

3. 图像处理

3.1 图像去背景

通过数字摄像机传过来的图片,图片周围有很多干扰部分如图(3-1),如果不处理会直接影响工件(或图像)轮廓的提取精准度。因此,必须采取方法对图片进行处理

方案(一)

如图(3-2),假设工件(或图像)的几何中心就刚好在数字摄像机所获取图片(1280*1024)的中心,那么,以中心点(640,512)为基点,选取以中心点为几何中心,长为2a,宽为2b的矩形区域,为工作区,图片其他的部分的灰度值定义为255,那么就会得到我们所需要的图像。

[18]

11

长 春 工 程 学 院 (论 文)

图3-1 数字摄像机拍下来的图像

工件

图 3-2 方案一的原理图

功能程序:

for(i=0;i<512-a;i++) //图片剪切 for(j=0;j

{

*(dib.m_pBmBits+i*Width+j)=255; //剪切A区域,把此区域内的像素定义为255

}

for(i=512+a;i

for(j=0;j

*(dib.m_pBmBits+i*Width+j)=255; //剪切B区域,把此区域内的像素定义为255

12

长 春 工 程 学 院 (论 文)

}

for(i=0;i

for(j=0;j<640-b;j++) {

*(dib.m_pBmBits+i*Width+j)=255; //剪切C区域,把此区域内的像素定义为255

}

for(i=0;i

for(j=640+b;j

*(dib.m_pBmBits+i*Width+j)=255; //剪切D区域,把此区域内的像素定义为255

}

方案(二)

如图(3-3),要去除边缘图像的干扰,只需要把图像的边缘以内的一定区域不需要的部分去掉就行,即把图(3-3)中灰色部分的值改为255就可以。

工件

图(3-3)方案二的原理图

功能程序:

for(i=0;i

{

*(dib.m_pBmBits+i*Width+j)=255; 剪切A区域,把此区域内的像素定义为255

13

长 春 工 程 学 院 (论 文)

}

for(i=1024-a;i

for(j=0;j

*(dib.m_pBmBits+i*Width+j)=255; 剪切B区域,把此区域内的像素定义为255

}

for(i=0;i

for(j=0;j

*(dib.m_pBmBits+i*Width+j)=255; 剪切C区域,把此区域内的像素定义为255

}

for(i=0;i

for(j=1280-b;j

*(dib.m_pBmBits+i*Width+j)=255; 剪切D区域,把此区域内的像素定义为255

}

方案比较

图3-4 二值化图像 图 3-5 提取的图像轮廓

方案(一),如果工件(或图像)的位置足够的理想,理论上可以得到我们所需要的结果,但是,经常工件(或图像)的坐标中心与摄像机所传来的图片中心有很大的偏差,很难得到比较理想的图像,如图(3-4)就会有一部分缺陷,因此,所得到得轮廓线也会有缺陷如图(3-5),那么就需要不断的调整a和b的值来获取相对精准的图像,因此,操作很繁琐,不适用。

14

长 春 工 程 学 院 (论 文)

方案(二),不管你工件怎么放,只要大概在摄像头下方的中心位置就可以得到很精准的图像如图(3-6)和图(3-7),对于a和b的值,一经调整好,对于不同形状的工件(或图像)都基本可以直接运用。

图 3-6 2值化图像 图 3-7 提取的图像轮廓

综上所述,方案(二)相对的简单,并且通过大量的实验证明可取,所以,本次设计,选用方案(二)。 3.2 图像二值化

所谓二值图像,就是指图像上的所有点的灰度值只用两种可能,不为\就为\,也就是整个图像呈现出明显的黑白效果。为了得到理想的二值图像,一般采用阈值分割技术,它对物体与背景有较强对比的图像的分割非凡有效,它计算简单而且总能用封闭、连通的边界定义不交叠的区域。所有灰度大于或等于阈值的像素被判决为属于物体,灰度值用\表示,否则这些像素点被排除在物体区域以外,灰度值为\,表示背景。这样一来物体的边界就成为这样一些内部的点的集合,这些点都至少有一个邻点不属于该物体。假如感爱好的物体在内部有均匀一致的灰度值,并且其处在一个具有另外一个灰度值的均匀背景下,使用阈值法可以得到比较好的效果。假如物体同背景的差别不在灰度值上(比如纹理不同),可以将这个性质转换为灰度的差别,然后利用阈值化技术来分割该图像。为了使分割更加清晰,适用性更强,系统应该可以自动选择阈值。基于物体、环境和应用域等知识的图像分割算法比基于固定阈值的算法更具有普遍性和适应性。这些知识包括:对应于物体的图像灰度特性、物体的尺寸、物体在图像中所占的比例、图像中不同类型物体的数量等。其中图像直方图就是一种灰度特性,通常被用来作为分割图像的工具

[19]

最常用的分割方法是利用灰度值的大小进行二值化。设原始图像为f(x,y),以一定的准则确

15

长 春 工 程 学 院 (论 文)

定一个灰度值确定一个灰度值t作为分割阈值,然后将大于等于t值的像素判为对象并用255来表示,而将小于t值的像素判为背景并用0来表示,二值化的结果将灰阶图像变成二值图像。

f(x,y)?t?255?g(x,y)??

?0f(x,y)?t?或者反之,对象与背景的大小关系对调。

f(x,y)?t?255?g(x,y)??

?0f(x,y)?t?二值化操作实际上是一种特殊的灰度变换。它的变换函数是两条水平线,一条幅值为0.另一条幅值为255。重要的问题是阈值的确定方法。确定阈值的方法称为阈值选择。有多种选取阈值的方法,如人机交互、简单二值化,p-参数法、(直方图)波形分析法、平均微分直方图法、判别函数法、直接计算法、综合法与局部阈值法等。

图(3-8)为照相机拍摄的工件对象原图像,图(3-9)二值化后的图像。

图 3-8 工件对象原图像 图 3-9二值化后的图像

阈值分割法分为全局阈值法和局部阈值分割法。所谓局部阈值分割法是将原始图像划分成较小的图像,并对每个子图像选取相应的阈值。在阈值分割后,相邻子图像之间的边界处可能产生灰度级的不连续性,因此需用平滑技术进行排除。局部阈值法常用的方法有灰度差直方图法、微分直方图法。局部阈值分割法虽然能改善分割效果,但存在几个缺点:

(1)每幅子图像的尺寸不能太小,否则统计出的结果无意义。

(2)每幅图像的分割是任意的,假如有一幅子图像正好落在目标区域或背景区域,而根据统计结果对其进行分割,也许会产生更差的结果。

16

长 春 工 程 学 院 (论 文)

(3)局部阈值法对每一幅子图像都要进行统计,速度慢,难以适应实时性的要求。 全局阈值分割方法在图像处理中应用比较多,它在整幅图像内采用固定的阈值分割图像。经典的阈值选取以灰度直方图为处理对象。根据阈值选择方法的不同,可以分为模态方法、迭代式阈值选择等方法。这些方法都是以图像的直方图为研究对象来确定分割的阈值的。另外还有类间方差阈值分割法、二维最大熵分割法、模糊阈值分割法、共生矩阵分割法、区域生长法等等。

3.3 图像腐蚀与膨胀

[20]

干扰点

图3-10 二值化后的图像

往往数字摄像机由于多方面的原因,拍摄下来的图像经过图像的二值化后,都或多或少地出现一些干扰因素,如图(3-10),因此要想得到比较完美的图像轮廓,在此必须去除所有的干扰,即图像的腐蚀与膨胀。

腐蚀运算是把区域内边界点变成背景,使区域缩小一圈;膨胀运算则是将区域的外边界变成对象点,使区域扩大一圈。

腐蚀运算只能施行于对象像素,当对象像素,即取值为255的像素的领域中出现一个背景像素(取值为0)时,此像素就改为背景。此类相比类似,膨胀运算只施行于背景像素,对于背景像素,当其领域中出现一个对象值时,此像素就改为对象。对于不同类型的领域,腐蚀、膨胀的结果是不同的。

3.4 图像边缘检测

17

长 春 工 程 学 院 (论 文)

不同图像灰度不同,边界处一般会有明显的边缘,利用此特征可以分割图像。需要说明的是:边缘和物体间的边界并不等同,边缘指的是图像中像素的值有突变的地方,而物体间的边界指的是现实场景中的存在于物体之间的边界。有可能有边缘的地方并非边界,也有可能边界的地方并无边缘,因为现实世界中的物体是三维的,而图像只具有二维信息,从三维到二维的投影成像不可避免的会丢失一部分信息;另外,成像过程中的光照和噪声也是不可避免的重要因素。

在实际的图像分割中,往往只用到一阶和二阶导数,虽然,原理上,可以用更高阶的导数,但是,因为噪声的影响,在纯粹二阶的导数操作中就会出现对噪声的敏感现象,三阶以上的导数信息往往失去了应用价值。二阶导数还可以说明灰度突变的类型。在有些情况下,如灰度变化均匀的图像,只利用一阶导数可能找不到边界,此时二阶导数就能提供很有用的信息。二阶导数对噪声也比较敏感,解决的方法是先对图像进行平滑滤波,消除部分噪声,再进行边缘检测。不过,利用二阶导数信息的算法是基于过零检测的,因此得到的边缘点数比较少,有利于后继的处理和识别工作

[21]

图象边缘检测的基本步骤

(1)滤波。边缘检测主要基于导数计算,但受噪声影响。但滤波器在降低噪声的同时也导致边缘强度的损失。

(2)增强。增强算法将邻域中灰度有显著变化的点突出显示。一般通过计算梯度幅值完成。 (3)检测。但在有些图象中梯度幅值较大的并不是边缘点。最简单的边缘检测是梯度幅值阈值判定。

(4)定位。精确确定边缘的位置。

图3-11 边缘检测算法的基本步骤

1)、微分求边缘

图象上区域的边缘反映为相邻像素间灰度值的跃变。边缘检测可借助空域微分算法通卷积或类似卷积的运算来实现。对于数字图像而言,求导数实际上的求的是差分。有两种主要的类似的

18

长 春 工 程 学 院 (论 文)

微分边缘检测,即一阶与二阶微分。对于一阶微分,将执行某种形式的一阶微分运算,并将所得边缘梯度与一阈值进行比较。如果边缘梯度超过阈值,则该边缘就被设定为当前边缘。对于二阶微分,如果边缘的二阶微分的极性有显著的变化,则该边缘设定为当前边缘。由于阈值的选取直接影响边缘的提取,为了便于选择不同的阈值确定方法,选取适合处理图像的分割阈值。

2)、一阶微分边缘检测算子

图像处理中最为常用的是一阶微分边缘算法有梯度法、Roberts梯度、Sobel算子、Kirsch、Robinson和Prewitt算法等。它们中有的是水平方向和垂直方向的梯度,然后取它们之和或取他们其中较大值作结果,如前三种算法,见式(3-1)、(3-2)。有的则利用8个不同的模板,检测不同方向的梯度,如后三种算法。梯度是矢量,前者通常使用的是计算其幅值,不同算法求梯度的方法不同;后者则涉及方向,一般为上下、左右再加上4个对角线方向。

?g?x,y??|GX|?|GY| (3-1)

或 ?g?x,y??Max(|GX|?|GY|) (3-2)

其中,Gx 、Gy分别为水平梯度与垂直梯度。 邻域内像素的编码

为了便于表示微分边缘检测的计算,特别给3*3邻域内的像素作如表(3-1)那样的定义。其中,by1~by9分别表示邻域内相应像素的像素值,而by5为当前像素的像素值。

by1 by4 by2 by3 by6 by9 by5 by8 by7 表 3-1 邻域内像素的编码

3)、梯度法和Roberts梯度(交叉差分)

[22]

设g、r分别为梯度法与Roberts梯度的处理结果,像素符号按表(3-1)约定,它们的计算公式如下:

g=|by6-by5|+|by8-by5| r=|by9-by5|+|by8-by6|

19

长 春 工 程 学 院 (论 文)

由于计算中使用了绝对值,不能直接使用卷积程序,程序需作调整,但程序框架基本相同。由于它们的差值较小,程序中Scale不作衰减因子,而用作放大系数。

此次设计本人所采取的轮廓提取的算法非常简单,即就是假设二值图像中黑色为目标,白色为背景,如图3-12所示。对于黑色(工件的对象)的区域,只要挖空对象,保留其轮廓就可以;对于白色的背景区,把在这里的所有点像素值都定义为0即可。具体的算法如下:

计算机扫描图片,如果扫描到二值化图中有一点为黑(by=0),且它的4个相邻点都是黑色 (by1+by2+by3+by4 =0),即图(3-12)中区域2,此点即为内部点,应该将其删除(定义为黑点),如果by的4个相邻点不满足by1+by2+by3+by4 =0,那么,这一点是在接近图片对象的轮廓区域,因此把该点定义为白点,依次这样扫描、计算,直至把所有图片中所有的对象处理完毕后结束。

区域3 区域1 区域2

图3-12 处理完后的二值化图 图 3-13 提取的轮廓图

为了细化轮廓以及消除上节中图片腐蚀与膨胀中留下的缺陷。如图3-12中区域3,他们并不是工件的对象,为了不让其影响最后的结果,因此,在这里我们需要去除他们,以保证结果的正确性。对此类干扰的算法是,计算机扫描到图片中by=0时,如果by1+by2+by3+by4 =0且by1+by2+by3+by4+by5+by6+by7+by8 =255*n(5<=n<=8),n是通过实验来得到的最为理想的结果那么就把此点定义为黑点。

对于计算机扫描到到类似图 3-12 中的区域1中的白色区时,判断如果二值化图中有一白点(by=255),且如果此点周围的4领域内点的像素值之和大于0(by1+by2+by3+by4>0),那么此点的像素就定义为0(黑点)。否则,该点的像素点就为255.

经过如上的扫描、计算,记得到了最终比较满意的工件轮廓图。如图3-13 所示。 因此该算法实际是对图像的各像素进行扫描,对于这里讨论的二值图像来说则只需考虑黑

20

长 春 工 程 学 院 (论 文)

点。对图像中的每个图点,考虑其上、下、左、右的八个邻点,如果其全为黑,则说明该点为物体的内部点,可以去除(变为背景点:白点),否则保留. 如果前面的去噪与二值化处理的效果理想的话,该算法提取图像目标轮廓没有什么问题。 3.5 提取图像轮廓坐标信息

提取轮廓坐标信息的方法,主要时轮廓跟踪,轮廓跟踪法根据边界的连通性,逐点跟踪得到区域边界,从而将不同区域分割开来。轮廓跟踪的原理十分简单,就如盲人用探棍探路一样,沿着城墙走一圈,然后回到原点,根据留下来的脚印,我们便可以得到城墙的边界信息。 3.5.1 单区域跟踪

单区域轮廓跟踪由寻找下一边界点与记录跟踪边界的轨迹两个步骤组成。前者的任务是从边界上已知点出发搜索下一边界点,后者的任务是将边界的数据记录下来,并按顺序保存至txt文本文档中。具体的步骤如下:

1)、寻找跟踪起点

扫描轮廓图像,遇到的第一个轮廓对象点(既像素值*(dib1.m_pBmBits+i*Width+j)= 255的点),即为对象区域的跟踪起点。记下此点的坐标值(i, j),并把坐标值(i, j)写入文本中,且更改此处的像素值(*(dib1.m_pBmBits+i*Width+j)=200),以免后面重复扫描时,出现死循环。

2)、单区域跟踪

对象轮廓基本都是一些封闭的图形组成。找到跟踪起点后,以此点(记为bx)为中心基点,扫描bx的8领域表,见表 1-1 ,寻找下一个对象点。在这里为了方便下面的有顺序的循环调用,把bx的8领域表中的所有元素定义为数组b[l],0

本次设计,我所采用的是顺时针扫描法,即在bx的8领域内,从表(1-1)中数组b[1]开始扫描,依次按顺时针扫描循环扫描b[l],如果扫描到其中之一为对象点,记下此点(此处假设是b[5]),并立即停止扫描,跳出循环。由于,当扫描到对象点,并找下一点的操作都是重复上面的循环,在这里,为了方便,我把这一判断下一对象点的循环定义为一个函数循环体,以备下面的循环调用。

当循环体判断完对象点时,须在主函数中记下从循环体传来的坐标点(i-1,j+1),然后把坐标(i-1,j+1)写入到文本文件中,并把此点的像素值改为200。接下来再以这点(b[5])为中心

21

长 春 工 程 学 院 (论 文)

点,调用上面所定义的循环体,扫描该点的8领域的像素值,找属于对象值的下一点,记下此点坐标,改变它的像素值,再继续调用循环体。重复上述这样的循环直至扫描到此区域的跟踪起点(*(dib1.m_pBmBits+i*Width+j)=200),即满足b[l]内的所有值不都不等于255,且b[l]出现像素值等于200的点时,完成本次区域内的轮廓跟踪和坐标点的标记。

b[1] (i+1,j-1) b[2] (i+1, j) b[8] (i, j-1) b[3] (i+1, j+1) b[4] (i, j+1) b[5] (i-1, j+1) bx (i, j) b[6](i-1 ,j-1) b[6] (i-1,j) 表 3-2 bx的8领域表

3.5.2 多区域跟踪

往往一幅图像中通常有多个所关心的区域,这样就需要将它们逐个搜寻出来。多区域跟踪一般分为下列个步骤。

1)、寻找跟踪起点,方法,同单区域跟踪;

2)、单区域跟踪,调用单区域跟踪子程序从跟踪点出发跟踪得到对象区域的整个边界,记录所有的轮廓坐标,并对坐标点的个数进行统计,如果得到一个封闭轮廓的点坐标数小于一定数值(比如100),那么则取消该区域内的坐标提取;

3)、对象区域填色

一个区域跟踪完毕,即用背景色将区域填色,以免同一对象被重复跟踪,或陷入死循环; 4)、重复上面的步骤,直到将图象轮廓中的所有区域全部搜索出来为止,并把按先后顺序记录下来的坐标足迹存放在txt文本文件中,以备下一步的调用。 3.5.3 边界点坐标的数据结构

因为边界图像可能有若干不连续边界,故记录这些不连续的边界点坐标通常有两种方法。一是采用链表的形式,链中每一结点两个字段:一个边界段的点坐标数组及该边界段的点数组成的结构体,指向下一个结点的指针.二是用线性表的形式,一个点坐标数组存储所有边界点的坐标,另用一个结构体记录边界点总点数, 总段数及每段的坐标点数.对于这两种数据结构的选择取决于边界图像是否为最终目标图像边界,如是,则采用线性表的形式处理更容易;如不是,即后续

22

长 春 工 程 学 院 (论 文)

处理中还需对边界进行修正,则采用链表的形式处理更方便。 3.5.4 坐标的存储

坐标的存储是在TXT文本文件中完成的,具体的办法是文本文件以只写的方式打开,然后当扫描到一个属于对象轮廓点时,记下此点相应的坐标,并把坐标分别赋给k和h,然后再在文本文件中存储此点坐标(k h)。

存储的方式是i、j坐标的中间以一个空白字符隔开,坐标的末尾以回车结束如图(3-12),当存储完成所有的对象坐标后,文本关闭,以备下一步的调用。

图 3-12 坐标的存储结构

3.5.5 去除非图像轮廓的干扰

1)、对于图(3-13)中的干扰1所示,他是在图像处理中所遗留下来的问题,在这里,我们必须去除它的干扰,才有可能会达到一个比较完美的效果。其方法很多,在这里我运用轮廓点坐标数量计算方法去除,如果一个区域内的点坐标数小于一定的值(比如100),那么就直接忽略次区域内的信息。即,不储存点坐标的数值。

23

长 春 工 程 学 院 (论 文)

干扰2

图3-13 轮廓干扰说明图

2)、对于如图(3-12)中的干扰2,去除的方法是,如果,扫描到对象点周围8值域内有大于2个点属于对象点,那么直接跳出循环,不执行此区域内的坐标提取。

4. 运动部分的设计

4.1 运动控制系统

运动控制起源于早期的伺服控制,简单地说,运动控制就是对机械运动部件的位置、速度等进行实时的控制管理,使其按照预期的轨迹和规定的运动参数(如速度、加速度参数等) 完成相应的动作。

实际应用中,运动控制系统是由运动控制器、功率放大驱动器、伺服电机、起反馈作用的传感器、加上一些传动机械系统部件组成。

运动控制器是以中央逻辑控制单元为核心、以传感器为信号元件,以电机/动力装置和 执行单元为控制对象的一种控制装置, 运动控制系统通常有开环控制和闭环控制两种形式。 如图 4-1 所示,为开环运动控制系统的典型构成。在开环控制系统中,系统的输出量对 控制作用没有影响,既不需要对输出量进行测量,也不需要将输出量反馈到系统的输入端与输入量进行比较。采用步进电机的位置控制系统就是开环控制系统的例子。步进驱动与控制 器只是按照指令位置

24

长 春 工 程 学 院 (论 文)

运动,不必对输出信号(即实际位置)进行测量。

图 4-1 典型的开环运动控制系统结构

在闭环控制系统中,作为输入信号与反馈信号之差的作用误差信号被传送到控制器,以便减小误差,并且使系统的输出达到希望的值。闭环控制系统的优点是采用了反馈,因而使 系统的响应对外部干扰和内部系统的参数变化均不敏感。这样,对于给定的控制对象,有可 能采用

图 4-2 典型的闭环运动控制系统结构

不太精密且成本较低的元件构成精确的控制系统,采用交流伺服电机的位置控制系统(如图 4-2 所示)就是闭环控制系统的一个例子,安装在电机轴上的编码器不断检测电机 轴的实际位置(输出量),并反馈回伺服驱动器与参考输入位置进行比较,PID 调节器根据位置误差信号,控制电机正转或反转,从而将电机位置保持在希望的参考位置上。 4.2 运动控制器

运动控制器是以中央逻辑控制单元为核心、以传感器为信号元件,以电机/动力装置和执行单元为控制对象的一种控制装置,主要用于对机械传动装置的位置、速度进行实时的控制管理,使运动部件按照预期的轨迹和规定的运动参数完成相应的动作。与传统的数控装置相比,运动控制器具有以下特点:

1、技术更新,功能更加强大,可以实现多种运动轨迹控制,是传统数控装置的换代产品;

25

长 春 工 程 学 院 (论 文)

2、结构形式模块化,可以方便地相互组合,建立适用于不同场合、不同功能需求的控制系统;

3、操作简单,在PC 上经简单编程即可实现运动控制,而不一定需要专门的数控软件。目前,运动控制技术由面向传统的数控加工行业专用运动控制技术而发展为具有开放结 构、能结合具体应用要求而快速重组的先进运动控制技术。与此相适应,运动控制器从以单片机、微处理器为核心或以专用芯片(ASIC)为核心处理器的运动控制器,发展到了基于PC总线的以DSP 和FPGA 作为核心处理器的开放式运动控制器。

这种开放式运动控制器,充分利用DSP 的计算能力,进行复杂的运动规划、高速实时多轴插补、误差补偿和运动学、动力学计算,使得运动控制精度更高、速度更快、运动更加平稳;充分利用DSP 和FPGA 技术,使系统的结构更加开放,可根据用户的应用要求进行客制化的重组,设计出个性化的运动控制器。基于PC 总线的开放式运动控制器已成为当今自动化领域应用最广、功能最强的运动控制器,并且在全球范围内得到了广泛的应用。 4.2.1 运动控制器与伺服系统的匹配

目前广泛采用的交流伺服系统(电机+驱动)通常具有力矩控制、速度控制和位置控制等闭环控制功能。而常用的运动控制器除了具有轨迹规划功能外,也具有位置控制和速度控制等闭环控制功能。运动控制器与交流伺服系统组合时,通常有如图所示的三种方式。本实验系统采用的是(如图 4.3、4.4 所示)的第二种方式。

图 4-3 位置脉冲型闭环控制系统方案 1

26

长 春 工 程 学 院 (论 文)

图 4-4 闭环控制系统方案2

图 4-5 闭环控制系统方案3

4.2.2 运动控制系统分类

根据运动控制的特点和应用,运动控制可分为点位控制、连续轨迹控制和同步控制运动 控制三种基本方式。

1).点位控制

这种运动控制的特点是仅对终点位置有要求,与运动的中间过程即运动轨迹无关。相应的运动控制器要求具有快速的定位速度,在运动的加速段和减速段,采用不同的加减速控制策略。在加速运动时,为了使系统能够快速加速到设定速度,往往提高系统增益和加大加速度,在减速的末段采用S曲线减速的控制策略。为了防止系统到位后震动,规划到位后, 又会适当减小系统的增益。所以,点位运动控制器往往具有在线可变控制参数和可变加减速曲线的能力。

2).连续轨迹控制

又称为轮廓控制,主要应用在传统的数控系统、切割系统的运动轮廓控制。相应的运动 控制器要解决的问题是如何使系统在高速运动的情况下,既要保证系统加工的轮廓精度,还要保证刀具沿轮廓运动时的切向速度的恒定。对小线段加工时,有多段程序预处理功能。

3).同步控制

是指多个轴之间的运动协调控制,可以是多个轴在运动全程中进行同步,也可以是在运动过程中的局部有速度同步,主要应用在需要有电子齿轮箱和电子凸轮功能的系统控制中。工业上有

27

长 春 工 程 学 院 (论 文)

印染、印刷、造纸、轧钢、同步剪切等行业。相应的运动控制器的控制算法常采用自适应前馈控制,通过自动调节控制量的幅值和相位,来保证在输入端加一个与干扰幅值相等、相位相反的控制作用,以抑制周期干扰,保证系统的同步控制。 4.3 二维插补

在设计中,不管图像的轮廓是直线,还是圆弧,提取出来的图像轮廓都是以点的方式存在的,因此在这里,我们都把这些直线或圆弧看作是一些线段点组成的,然后进行直线二维插补。 4.3.1 直线插补和圆弧插补的计算原理

数控系统加工的零件轮廓或运动轨迹一般由直线、圆弧组成,对于一些非圆曲线轮廓则用直线或圆弧去逼近。插补计算就是数控系统根据输入的基本数据,通过计算,将工件的轮廓或运动轨迹描述出来,边计算边根据计算结果向各坐标发出进给指令。

数控系统常用的插补计算方法有:逐点比较法,数字积分法,时间分割法,样条插补法等。 4.3.1 逐点比较法直线插

逐点比较法是使用阶梯折线来逼近被插补直线或圆弧轮廓的方法,一般是按偏差判别、进给控制、偏差计算和终点判别四个节拍来实现一次插补过程。以第一象限为例,取直线起点为坐标原点,如右图所示,m为动点,有下面关系:

图 4-6 第一象限的直线插补

28

长 春 工 程 学 院 (论 文)

以第一象限为例,取直线起点为坐标原点,如图(4-6)所示,m为动点,有下面关系:

XmXe ?YmYe取Fm?YmXe?YeXm,作为偏差判别式: 若Fm=0,表明m在OA直线上:

若Fm>0,表明m在OA直线上方的m处: 若Fm<0,表明m在OA直线下方的m处:

从坐标原点出发,当Fm≧0 时,沿+X 方向走一步,当Fm<0,沿+Y 方向走一步,当两方向所走的步数与终点坐标(Xe,Ye )相等时,停止插补。

当Fm≧0 时,沿+X 方向走一步,则Xm?1?Xm+1, Ym?1?Ym 新的偏差为:Fm?1?Ym?1Xe?YeXm?1=YmXe?(Xm?1)Ye Fm?1?Fm-Ye

当Fm<0 时,沿+X 方向走一步,则Xm?1?Xm, Ym?1?Ym+1 新的偏差为:Fm?1?Ym?1Xe?YeXm?1=(Ym?1)Xe?XmYe Fm?1?Fm+Xe

其它三个象限的计算方法,可以用相同的原理获得,下表(4-1)为四个象限插补时,其偏差计算公式和进给脉冲方向,计算时,Xe,Ye 均为绝对值。

'''

表 4-1 直线插补计算公式和进给脉冲方向

29

长 春 工 程 学 院 (论 文)

第一象限内直线的逐点比较法插补的流程图如下图所示:

图 4-7 逐点比较法插补的流程图

4.3 坐标系转换 4.3.1 取文件中的坐标

经过上面的图片处理,工件的轮廓坐标已经保存在文本文件中了。在这里我们需要把文件里的坐标值取出来后,才可以运用。具体的操作是,先定义一个二维数组C[10000][2],然后扫描坐标值,如果遇到空格即停止,取空格前面的值并把它赋值给C[i][0],把空格后面的坐标赋值给C[i][1],重复循环,直至把所有的坐标提取完毕。 4.3.2 工件坐标值的转化

文件中的坐标提取完毕,但是通过了解摄像机成像原理及大量的实验表明结果表明,提取出来的坐标与工件的实际坐标值是相反的,因此,在上一节的坐标存储中,在坐标写入文本时,需要进行轴的转化。转化后得到的结果才在这里我们还不能直接提取运用,得把提取出来的坐标转化为工件的实际坐标值,才可以进行模拟实验。

30

长 春 工 程 学 院 (论 文)

通过图片处理得来的工件轮廓坐标与机床坐标系是不相一致的,通过大量的实验可得到如图4-7 所示的机床坐标系与工件坐标系的关系,其中x、y代表的是机床坐标系,x'、y'代表的是工件坐标系,从图中显而易见的是,机床坐标系的y轴与工件坐标系的y轴刚好相反,故在调用工件坐标之前必须统一坐标系,

图4-7 机床坐标系与工件坐标系的关系

4.3.3 坐标系数的计算

工件坐标的坐标值是以图片像素点来表示的,坐标值的大小仅代表该点在摄像机所拍摄下来的图片中的具体位置,而不是实际的图片的大小,那么,就必须计算坐标值与实际值间的系数,具体得到计算如下:

方法1:

X、Y数控平台是用私服电机控制其运动的,私服电机是通过控制器传输脉冲数来工作的,本次设计的选用固高科技有限公司所研发的工作台,运动控制器法出50000脉冲相当于机床走动25mm,因此有

1mm=2000脉冲 (4-1) 而通过测量一标准图片(100mm*100mm)提取边缘后的像素点,可得到实际100mm的图片轮廓边缘上有288个像素点,则有

100mm=288个像素点 (4-2) 由式(4-1)和(4-2)得系数比

31

长 春 工 程 学 院 (论 文)

1像素点=494.4444脉冲 (4-3) 方法2:

在平台上放一张图片,并拍摄提取此状态下图片的轮廓坐标,并存储,下一步让机床单方向(指X、Y轴)上走动50000个脉冲,然后再拍摄提取图片在这位置上的轮廓坐标,最后取两种状态下的同一位置(比如提取出来坐标值的第一点,在这里分别记作(x1,y1)、(x2,y2)),计算坐标之间的距离

A?通过大量的实验得到A?(x2?x1)2?(y2?y1)2 (4-4) (x2?x1)2?(y2?y1)2=71.53,而这时脉冲数也正好变化了

50000,那么有可得到像素与脉冲之间的关系

1像素点=494.1766脉冲 (4-5) 由方法一、二计算所得到的比例系数基本相等,那么在这里我们选取两值的平均值就行转化即可。

4.3.4 定位模拟加工

本设计最后要完成工件的模拟加工,进行模拟时,在这里我们用激光笔代替机床的z轴。激光笔是固定在x、y数控平台上的,因此激光笔发出来的激光也是在一个固定的位置上不变的,而摄像机也是固定在机床的上方的,也就是激光笔的激光在摄像机所拍摄照片里的位置也是不变的。有了这些关系,模拟加工就变得很简单了。

图4-8 工件坐标系与激光点的关系

32

长 春 工 程 学 院 (论 文)

由于激光的相对确定,因此,开始,我们可以人为的提取激光在工件坐标系中的坐标位置,方法有二,其一是,全人工的找取激光发出的激光点,具体操作是打开激光笔,运用提取图片轮廓的方法提取激光坐标的位置,然后取其中心点就是激光点的位置;其二是,在平台上放置一张工件图片,打开激光笔,让其发出的激光与图片的一角(A0)重回,提取工件的轮廓坐标,找到A0点的坐标位置也就是激光在工件坐标系的确切坐标。

找到激光的位置后,下一步,我们需要找到激光点相对与工件坐标之间的关系,在这里我只研究激光落在工件上的一种情况如图(4-8),通过各点之间的矢量关系我们可以得到,A0是不动的,要模拟出工件轮廓,只要各轮廓坐标减去A0(x0,y0)就可以满足要求。

参考文献

[1] 唐向阳,张勇,李江有等.机械视觉关键技术的现状及应用展望[J],昆明理工大学学报(理工版),2004,29

(2):36~39.

[2] Jennings R.B.,Bright G. Machine vision and intelligence incorporating motion contro ,Assembly

Automation.1999,19(1):5~58.

[3] Fabrice Meriaudeau,Anne ,Claire Legrand.Machine vision systems in the metallurgy industry[C],

Proceedings of SPIE. San Jose,2000,228~237

[4] Franci Lahajnar,Stanislav Kovacic.Machine vision system for positioning and part verification of

gas oill filters based on eigenimages[C].Proceeding of SPIE. San Jose , 2000,3966:20~227 [5] Lahajnar F., Bemard R., Pernus F. Kovacic S. Machine vision system for inspecting electric plates[J].

33

长 春 工 程 学 院 (论 文)

Computers in Industry,2002,47(1):113~122.

[6] David Kerr,James Pengilley and Robert Garwood. Assessment and visionlization of tool wear using

computer vision[J],The International Joumal of Advanced Manufacturing Technology.2006 , 28 (7-7):781: 781~791.

[7] 左建中,张新荣,王刚,张钢.集成电路芯片管脚尺寸自动检测的研究与实现[J].制造业自动化,2000,22(9):

28~30

[8] 王全义,莫健华,毛锋,黄树槐.金属板材数控渐进成形技术及加工轨迹坐标对位研究[J].锻压装备与制

造技术,2005,40(3):106~108 .

[9] 毛锋,莫健华,王全义,黄树槐.基于计算机视觉的机床自寻位在无模渐进成形设备中的实现[J].锻压技

术,2005,30(6):33~36.

[10] 胡兴军,唐向阳,张勇.机器视觉技术及其在汽车制造质量检测中的应用[D].现代零部件,2005(11):96~101. [11] 琳璞.基于计算机视觉的凸轮磨削自动定位与在线检测技术研究[D].燕山大学,2005 .

[12] 罗三定,沙莎,沈德耀,贾维嘉.棒材生产在线视觉计数系统研究[J].小型微型计算机系统,

2004,25(4):671~675.

[13] 左飞燕.开放式组焊数控系统的研制及焊缝识别的数字图像处理研究[D].湖南大学,2004-04-25. [14] Hoske,M.T.Machine vision looks well beyond inspection [J].Control Engineering.2005,52(5):65~75 . [15] [16] [17] [18] [19] [20] [21] [22] [23] [24]

34

长 春 工 程 学 院 (论 文)

致 谢

本次设计是一个全新的课题,当拿到题目的时候,心里真是几分欢喜,几分忧。其中高兴的是,我是在我最为敬佩的高老师指导下做我大学的最后一次答卷,当时充满了无限的期待,同时由于新题目可参考的空间相当的狭小,不免无形之中增添了有几分恐惧,这时有人建议我换题目,但我一直深信在高老师的指导下,我一定能做出来。

半年时间的战斗,其间经历了无数次的失败。在我被问题所困扰的时候,总是会首先选择去问老师,却一次又一次地被打回来,以至于到了后来我都不怎么去问老师了,遇到问题总是自己思考,然后去实验,但是,在我最为无助的时候,老师总是能雪中送炭。到了今天,随着激光点的运动线路与工件轮廓的完美重合,我也理解了老师的做法,他是不想局限我的思维。老师,真

35

长 春 工 程 学 院 (论 文)

的谢谢你,在你的指导下,我不仅学到了很多专业知识,而且,我也学会了不少做人做事的道理。谢谢你对我的信任和培养。

再次由衷感谢老师对我的指导和教诲,对我的构思以及设计的内容不厌其烦的进行多次指导和悉心指点,使我在完成设计的同时也深受启发和教育。在今后走出学校的日子里,我定会用你给我的知识,不断升华,为社会创造更大的价值!

附录

#include \#include \#include \#include \#include \#include \

36

长 春 工 程 学 院 (论 文)

#include \

#ifdef _DEBUG

#define new DEBUG_NEW #undef THIS_FILE

static char THIS_FILE[] = __FILE__; #endif

//定义自己的0

#define MY_ZERO 0.000000001 #include \

double CNT1[5]={1,0,0,0,0}; double CNT2[5]={0,1,0,0,0}; double CNT3[5]={0,0,1,0,0}; double CNT4[5]={0,0,0,1,0}; //const

const int DeviceNum = 1;

const HV_RESOLUTION Resolution = RES_MODE0; const HV_SNAP_MODE SnapMode = CONTINUATION; const HV_BAYER_LAYOUT Layout = BAYER_GR;

const HV_BAYER_CONVERT_TYPE ConvertType = BAYER2RGB_NEIGHBOUR; const long Gain = 8;

const long ExposureTint_Upper = 60; const long ExposureTint_Lower = 1000;

const long ShutterDelay = 0;

37

长 春 工 程 学 院 (论 文)

const long ADCLevel = ADC_LEVEL2; const int XStart = 0; const int YStart = 0; const int Width = 1280;//800; const int Height = 1024;//600;

///////////////////////////////////////////////////////////////////////////// // CAboutDlg dialog used for App About

class CAboutDlg : public CDialog { public: CAboutDlg();

// Dialog Data //{{AFX_DATA(CAboutDlg) enum { IDD = IDD_ABOUTBOX }; //}}AFX_DATA // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CAboutDlg) protected:

virtual void DoDataExchange(CDataExchange* pDX); //}}AFX_VIRTUAL

// Implementation protected:

38

// DDX/DDV support 长 春 工 程 学 院 (论 文)

};

CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD) { }

void CAboutDlg::DoDataExchange(CDataExchange* pDX) { }

BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)

//{{AFX_MSG_MAP(CAboutDlg)

// No message handlers CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CAboutDlg) //}}AFX_DATA_MAP

//{{AFX_DATA_INIT(CAboutDlg) //}}AFX_DATA_INIT //{{AFX_MSG(CAboutDlg) //}}AFX_MSG

DECLARE_MESSAGE_MAP()

//}}AFX_MSG_MAP

END_MESSAGE_MAP()

///////////////////////////////////////////////////////////////////////////// // CHVStoreBmpDlg dialog

CHVStoreBmpDlg::CHVStoreBmpDlg(CWnd* pParent /*=NULL*/)

39

本文来源:https://www.bwwdw.com/article/1dn7.html

Top