摘要:建立了一个主动机器视觉定位系统,用于工业机器人对零件工位的精确定位。采用基于区域的匹配和形状特征识别相结合的图像处理方法,该方法经过阈值和形状判据,识别出物体特征。经实验验证,该方法能够快速准确地得到物体的边界和质心,进行数据识别和计算,再结合机器人运动学原理控制机器人实时运动以消除此误差,满足工业机器人自定位的要求。
目前工业机器人仅能在严格定义的结构化环境中执行预定指令动作,缺乏对环境的感知与应变能力,这极大地限制了机器人的应用。利用机器人的视觉控制,不需要预先对工业机器人的运动轨迹进行示教或离线编程,可节约大量的编程时间,提高生产效率和加工质量。
本文利用基于位置的视觉伺服思想,以六自由度垂直关节型喷涂机器人为载体,提出一种基于机器视觉的工业机器人自定位控制方法,解决了机器人末端实际位置与期望位置相距较远的问题,改善了喷涂机器人的定位精度。
2. 视觉定位系统的组成
机器人视觉定位系统构成如图 1 所示,在关节型机器人末端安装喷涂工具、单个摄像机,使工件能完全出现在摄像机的图像中。系统包括摄像机系统和控制系统:
(1)摄像机系统:由单个摄像机和计算机(包括图像采集卡)组成,负责视觉图像的采集和机器视觉算法;
(2)控制系统:由计算机和控制箱组成,用来控制机器人末端的实际位置;经 CCD 摄像机对工作区进行拍摄,计算机通过本文使用的图像识别方法,提取跟踪特征,进行数据识别和计算,通过逆运动学求解得到机器人各关节位置误差值,最后控制高精度的末端执行机构,调整机器人的位姿。
图1 喷涂机器人视觉定位系统组成
3. 视觉定位系统工作原理
3.1 视觉定位系统的工作原理
使用 CCD 摄像机和1394 系列采集卡,将视频信号输入计算机,并对其快速处理。首先选取被跟踪物体的局部图像,该步骤相当于离线学习的过程,在图像中建立坐标系以及训练系统寻找跟踪物。学习结束后,图像卡不停地采集图像,提取跟踪特征,进行数据识别和计算,通过逆运动学求解得到机器人各关节位置给定值,最后控制高精度的末端执行机构,调整机器人的位姿。工作流程如图2 所示。
图 2 视觉定位系统软件流程图
3.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 达到最佳匹配。
3.3 图像的特征提取
工作台上的工件与工作台背景在颜色方面具有很大的差别,即工件呈现为黑色,将这一信息作为识别工件的重要特征。
工件的边缘处灰度有急剧的变化,可以以此判断出工件的边界点。采用扫描线的方法,扫描方向上灰度剧变的像素点就是边界点。最后,通过最小二乘法把找到的边界点拟合出圆周,并计算出圆心位置。
3.4 实验与分析
实验目的是通过机器视觉,快速识别出工件的特征(这里是圆孔的圆心)。
(1)首先在原始图像(图3)选取被跟踪工件的局部图像作为模板图像template(图4)。
(2)以局部图像template 为模板,在原始图像中进行基于区域的匹配,并以template 的左
下角为原点,建立坐标系。然后定义一个搜索区域ROI(region of interest),根据要提取的特征选择区域的形状,这里选择环形区域。搜索区域必须包含全部目标特征。在ROI 中提取工件的特征,如图3 所示。
图 3 圆心识别
该步骤相当于离线学习的过程。每次使用前只需要学习一次即可。通过离线学习,系统得到ROI 与工件的相对位置关系,以便实时识别中工件出现偏移、翻转等,ROI 都可以准确出现在合适位置。
(3)离线学习后,视觉系统经过区域匹配、阀值分割和边缘提取等步骤找到需要识别的特征(这里是圆孔的圆点),如图4 所示。
图4 实时识别
(3)离线学习后,视觉系统经过区域匹配、阀值分割和边缘提取等步骤找到需要识别的特征(这里是圆孔的圆点),如图4 所示。
3.5 结果分析如下:
(1)识别率分析:第一步通过离线学习,训练提取形状特征。第二步使用离线学习得到的坐标关系,实时跟踪工件,得到需要跟踪的形状特征信息。只要离线学习恰当,目标特征就准确识别并且得到相关信息。
(2)实时处理结果分析:图像采集卡的采集速度是25 帧/s,每幅图采集时间为40ms。摄像头采集一幅图像需要20ms,该图像处理的速度为10ms/幅。通过程序优化,在采集的同时进行图像处理,而且图像处理的速度比采集的时间要短,就避免了图像的失真和抖动。在物体运动不超过极限速度时,能够较准确地找到圆心的位置。
4. 空间坐标的获取
由一幅图像得到的信息是二维信息,程序中使用的坐标是以像素为单位的,机器人在空间运动需要将图像的信息换算成三维空间坐标。其计算过程如下:
(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’。
5. 误差分析与补偿
本项目的喷涂机器人是六自由度的旋转关节操作臂,与Unimation PUMA560相似,关节4、5、6 的轴线相互垂直,且相交与一点。应用参考文献3 的方法计算如下:
(1)通过机器视觉可以得到机器人末端的空间位置坐标B(X ',Y ', Z')。
(2)确定机器人的连杆参数表,如下表:
(3)运用DH 法计算各关节的转角θi :