机器视觉定位下的工业机器人系统设计
引言
目前工业机器人仅能在严格定义的结构化环境中执行预定指令动作,缺乏对环境的感知与应变能力,这极大地限制了机器人的应用。利用机器人的视觉控制,不需要预先对工业机器人的运动轨迹进行示教或离线编程,可节约大量的编程时间,提高生产效率和加工质量。
Hagger 等人提出通过基于机器人末端与目标物体之间的误差进行视觉反馈的方法;Mezouar 等人提出通过图像空间的路径规划和基于图像的控制方法 。国内这方面主要应用于焊接机器人对焊缝的跟踪。
本文利用基于位置的视觉伺服思想,以六自由度垂直关节型喷涂机器人为载体,提出一种基于机器视觉的工业机器人自定位控制方法,解决了机器人末端实际位置与期望位置相距较远的问题,改善了喷涂机器人的定位精度。
1. 视觉定位系统的组成
机器人视觉定位系统构成如图 1 所示,在关节型机器人末端安装喷涂工具、单个摄像机,使工件能完全出现在摄像机的图像中。系统包括摄像机系统和控制系统:
(1)摄像机系统:由单个摄像机和计算机(包括图像采集卡)组成,负责视觉图像的采集和机器视觉算法;
(2)控制系统:由计算机和控制箱组成,用来控制机器人末端的实际位置;经 CCD 摄像机对工作区进行拍摄,计算机通过本文使用的图像识别方法,提取跟踪特征,进行数据识别和计算,通过逆运动学求解得到机器人各关节位置误差值,最后控制高精度的末端执行机构,调整机器人的位姿。
图1 喷涂机器人视觉定位系统组成
2. 视觉定位系统工作原理
2.1 视觉定位系统的工作原理
使用 CCD 摄像机和1394 系列采集卡,将视频信号输入计算机,并对其快速处理。首先选取被跟踪物体的局部图像,该步骤相当于离线学习的过程,在图像中建立坐标系以及训练系统寻找跟踪物。学习结束后,图像卡不停地采集图像,提取跟踪特征,进行数据识别和计算,通过逆运动学求解得到机器人各关节位置给定值,最后控制高精度的末端执行机构,调整机器人的位姿。工作流程如图2 所示。
图 2 视觉定位系统软件流程图
2.2 基于区域的匹配
本文采用的就是基于区域的相关匹配方法。它是把一幅图像中的某一点的灰度领域作为模板,在另一幅图像中搜索具有相同(或相似)灰度值分布的对应点领域,从而实现两幅图像的匹配。在基于区域相关的算法中,要匹配的元素是固定尺寸的图像窗口,相似准则是两幅图像中窗口间的相关性度量。当搜索区域中的元素使相似性准则最大化时,则认为元素是匹配的。
定义P (i, j) P 是模板图像中一点,取以P (i, j) P 为中心的某一邻域作为相关窗口K ,大小为(2w +1),假设K 在原始图中,水平方向平移Δu ,垂直方向平移Δu 后,K 所覆盖下的那块搜索区域叫做子图S k ,若K 和S k 相同,则它们的差为零,否则不为零。由此定义K 和S k 的相关函数为:
当D(K, S k )达到最小,K 与S k 达到最佳匹配。
2.3 图像的特征提取
工作台上的工件与工作台背景在颜色方面具有很大的差别,即工件呈现为黑色,将这一信息作为识别工件的重要特征。
工件的边缘处灰度有急剧的变化,可以以此判断出工件的边界点。采用扫描线的方法,扫描方向上灰度剧变的像素点就是边界点。最后,通过最小二乘法把找到的边界点拟合出圆周,并计算出圆心位置。
2.4 实验与分析
实验目的是通过机器视觉,快速识别出工件的特征(这里是圆孔的圆心)。
(1)首先在原始图像(图3)选取被跟踪工件的局部图像作为模板图像template(图4)。
(2)以局部图像template 为模板,在原始图像中进行基于区域的匹配,并以template 的左
下角为原点,建立坐标系。然后定义一个搜索区域ROI(region of interest),根据要提取的特征选择区域的形状,这里选择环形区域。搜索区域必须包含全部目标特征。在ROI 中提取工件的特征,如图3 所示。
图 3 圆心识别
该步骤相当于离线学习的过程。每次使用前只需要学习一次即可。通过离线学习,系统得到ROI 与工件的相对位置关系,以便实时识别中工件出现偏移、翻转等,ROI 都可以准确出现在合适位置。
(3)离线学习后,视觉系统经过区域匹配、阀值分割和边缘提取等步骤找到需要识别的特征(这里是圆孔的圆点),如图4 所示。
图4 实时识别
(3)离线学习后,视觉系统经过区域匹配、阀值分割和边缘提取等步骤找到需要识别的特征(这里是圆孔的圆点),如图4 所示。
2.5 结果分析如下:
(1)识别率分析:第一步通过离线学习,训练提取形状特征。第二步使用离线学习得到的坐标关系,实时跟踪工件,得到需要跟踪的形状特征信息。只要离线学习恰当,目标特征就准确识别并且得到相关信息。
(2)实时处理结果分析:图像采集卡的采集速度是25 帧/s,每幅图采集时间为40ms。摄像头采集一幅图像需要20ms,该图像处理的速度为10ms/幅。通过程序优化,在采集的同时进行图像处理,而且图像处理的速度比采集的时间要短,就避免了图像的失真和抖动。在物体运动不超过极限速度时,能够较准确地找到圆心的位置。
3. 空间坐标的获取
由一幅图像得到的信息是二维信息,程序中使用的坐标是以像素为单位的,机器人在空间运动需要将图像的信息换算成三维空间坐标。其计算过程如下:
(1)以工件上圆孔的圆心为机器人定位基准,A(X ,Y, Z)圆心的世界坐标。当圆心与视觉图像的中心重合时,机器人定位完成。
(2)标定摄像机,得到投影矩阵ce M ,即图像中两个像素间的距离与世界坐标系的转换关系。
(3)摄像机拍摄图像后,经过特征识别得到圆心在图像中坐标a(x, y),计算出与图像中心的偏移量Δx、Δy。
(4)以A(X ,Y, Z)为基准,按照下式计算机器人末端的世界坐标B(X ‘,Y ’, Z‘):其中,Mc是摄像机与机器人末端的坐标转换参数。
注意,本文使用单目视觉,所以这里假设 Z 坐标不变;如果使用双目视觉,就可以通过立体视觉计算出Z’。
4. 误差分析与补偿
本项目的喷涂机器人是六自由度的旋转关节操作臂,与Unimation PUMA560相似,关节4、5、6 的轴线相互垂直,且相交与一点。应用参考文献3 的方法计算如下:
(1)通过机器视觉可以得到机器人末端的空间位置坐标B(X ’,Y ‘, Z’)。
(2)确定机器人的连杆参数表,如下表:
(3)运用DH 法计算各关节的转角θi :
结论
本文描述了基于机器视觉的工业机器人定位系统,该系统将基于区域的匹配和形状特征识别结合,进行数据识别和计算,能够快速准确地识别出物体特征的边界与质心,机器人控制系统通过逆运动学求解得到机器人各关节位置的转角误差,最后控制高精度的末端执行机构,调整机器人的位姿以消除此误差。从而解决了机器人末端实际位置与期望位置相距较远的问题,改善了喷涂机器人的定位精度。该方法计算量小,定位准确,具有工程实用性。本系统是使用 C#在Visual Studio 2003 环境中编写。