董靖川,张成君,王一成,王静涛,刘 丽,卞鹏锡
(天津大学 机械工程学院,天津 300354)
伴随智能制造系统在工业中的广泛应用[1-2],对于基于机器视觉的智能机器人抓取系统的需求不断增长。利用机器视觉算法识别和定位目标[3-4],实现自动上下料、分拣等快速抓取作业[5-8],具有重要的实用价值。
针对智能制造实验教学项目的要求,开发了面向机器人抓取任务的视觉定位实验平台。该实验平台以5 自由度的关节式机器人为基础实现物料的抓取和搬运,以Matlab 软件环境为依托进行机器视觉算法的开发,通过网络与机器人运动控制器进行通信,完成视觉定位与抓取任务,能够支持开放式的项目制实验教学。
该实验平台的硬件组成包括5 自由度关节式机器人、机器人运动控制器、彩色数字摄像机、工作平台和上位机,如图1 所示。实验平台采用自主研制的5自由度关节式教学型机器人,其中4 个关节由交流伺服电机驱动,第5 个关节由直流舵机驱动。机器人前3 个关节实现了末端手抓的空间定位,由谐波减速机和平行四边形机构实现传动。位于腕部的第4 关节由交流电机直接驱动,可带动手抓在水平面内实现360°旋转,以使手抓从合适的方向抓取物体。第5 个自由度由直流舵机控制手抓的开合。机器人的运动控制器采用实验室自主开发的基于32 位ARM 单片机的控制板,具备模拟量、编码器、通用IO、以太网等接口,可实现4 台伺服电机的闭环控制和直流舵机的PWM比例控制。运动控制器内置机器人运动控制固件,实现伺服闭环控制、正/逆运动学、轨迹插补、加减速控制、网络控制等功能,接收并执行来自上位机的运动指令。彩色数字摄像机采用USB 2.0 接口与上位机连接,分辨率为1 920×1 080 像素,用于拍摄工作平台实时图像。工作平台作为机器人作业的水平基准面,上面放置待抓取的工件。上位机采用PC 机进行机器视觉算法的开发,通过以太网接口与运动控制器连接。
图1 实验平台硬件组成
图2 所示为视觉定位算法开发环境。上位机采用64 位Windows 7 操作系统,安装了彩色数字摄像机的驱动程序、Matlab 软件、图像采集工具箱、图像处理工具箱、计算机视觉工具箱、机器人网络通信工具箱。Matlab 的编程语法简单易学,具有强大的运算能力,并且配置了支持机器视觉算法开发的各种工具箱,学生能够在短时间内掌握软件的使用并开展实验,非常适合教学使用。机器人网络通信工具箱封装了以太网TCP/IP 通信的细节,学生可以直接将规划好的运动路径坐标存储到Matlab 矩阵中,通过调用函数即可将路径下载到运动控制器内,控制机器人手抓的空间运动。
图2 视觉定位算法开发环境
实验以工厂生产线上物料抓取任务为工程背景,采用项目式实验教学手段[9-10],学生分组完成视觉抓取任务。实验项目中采用直径和长度不等的彩色圆柱形物料作为抓取对象,物料的轴向与工作平台的平面平行,各个物料的位置和方向随机分配。实验项目的任务:首先由彩色摄像机拍摄工作平台图像,然后对图像进行处理,识别物料的数量、位置坐标和角度,在此基础上规划机器人的抓取路径,最后通过网络控制机器人将物料移动至目标位置。在实验中,项目小组成员需要分工配合,学习相关的机器视觉知识和编程知识,设计视觉定位算法程序,并进行系统调试,完成任务。
在Matlab 环境下开发实现完整的视觉定位算法程序。该实验中主要的程序处理步骤和实现思路如下:
(1)相机标定。相机标定的目的是建立机器人工作台平面坐标系与像素坐标系之间的关系,从而为后续视觉定位中的坐标变换提供依据。相机标定通常需要建立成像的几何模型,识别相机内参和外参,并校正透镜畸变[11]。本实验中相机安装位置光轴与工作台平面垂直,且与机器人工作台坐标Z轴重合,另外实验系统透镜畸变可忽略,故可近似通过比例变换得到工作台平面到像素坐标间的比例系数。这里也可采用Matlab 的Camera Calibrator 工具配合棋盘格方便地获取相关参数。
(2)图像预处理。相机拍摄到的原始图像见图3。为了通过视觉定位物料,需要将物料与背景区分。原始图像中被抓取物料上有反射的高光,背景上有物料的阴影,且物料的颜色和亮度不一,难以通过亮度、对比度等进行区分。考虑到被抓取对象是鲜艳的彩色物料,本文采用色彩空间转换的方法,将色彩饱和度高的物料与白色背景区分开。因此,可以将原始图像由RGB 色彩空间转换到HSV 色彩空间[12]。HSV(Hue,Saturation, Value)模型中H分量代表色调,S分量代表饱和度,V分量代表明度。在此可选择S分量的图像,使物料更加突出。使用rgb2hsv 函数进行转换,转换后的S分量如图4 所示。可以看到,由于工作台背景及物料的阴影饱和度较低,因此阴影被很好地抑制。
图3 原始图像
图4 HSV 空间S 分量
(3)图像分割。本实验中图像分割的作用是将图像中各个物料的图像区域划分出来。图像分割的区域需要满足一定的相似度标准,如灰度、纹理、色彩等。可以采用阈值分割技术,生成二值化图像,将原先基于S分量的灰度图像分割为物料和背景两类区域。以S=0.2作为分割阈值的二值化图像分割结果如图5(a)所示。可见,分割后基本能够清晰区别出物料区域,但是某些物料由于存在反射高光,依然有影响后续处理的深色条纹。
为提高分割图像的质量,进一步采用形态学运算[13]的方法去除干扰条纹。首先,使用bwareaopen 函数进行基于面积的开运算,将像素面积小于200 的区域删除,消除图像中的噪声;然后,使用imfill 函数对图像中出现的空洞部分进行填充,消除反光的影响。经形态学处理后的图像如图5(b)所示。
图5 图像分割处理
(4)目标识别。目标识别需要确定图像中物料的数量N,并分离各个物料的图像。对于该实验,目标识别可通过识别图像中连通区域[14]实现。使用bwlabel函数对二值化图像中的连通区域进行标记,可将图像中各物料像素以不同值分别标记出来,得到各物料的所在的区域。
(5)坐标计算。对于识别出的第i个物料目标(i= 1,2, … ,N),采用find 函数获得其连通区域内所有像素的坐标,通过minboundrect 函数获得物料最小包围矩形的顶点坐标,如图6 所示。根据机器人抓取的要求,由顶点坐标可计算最小包围矩形长边与X轴的夹角θi,该角度即为物料轴线与X轴夹角,用于确定抓取时机器人第4 关节在水平面内的角度。抓取位置为物料重心坐标(xi,yi),可由mean 函数对连通区域坐标进行计算。最后,用相机标定参数将该坐标转换成机器人使用的工作台坐标系下的坐标(X i,Yi)。
图6 物料的最小包围矩形与重心
(6)运动路径规划。对于识别出的第i个物料目标,其抓取路径可按如下方法规划:①机器人手抓移动到物料上方,坐标为(X i,Yi,Zm)。其中Zm是设定的定位平面,保证机器人在移动过程中不会碰到物料,手抓水平面角度设定为θi,与物料轴线平行,机器人手抓张开。②手抓垂直下降至(X i,Yi,Zp),Zp是设定的抓取平面。③手抓夹紧,抓取物料。④手抓垂直上升返回至(X i,Yi,Zm)。⑤手抓移动到物料存放指定位置上方(Xsi,Ysi,Zm)。⑥手抓垂直下降至(Xsi,Ysi,Zp)。⑦手抓张开,完成物料放置。⑧手抓垂直上升返回至(Xsi,Ysi,Zm)。对于所有的物料重复上述动作即可形成完整的运动路径。机器人抓取运动的实际效果如图7 所示。
图7 机器人物料抓取动作
视觉定位和机器人抓取的基本实验项目只限定了要实现的目标,而不强制要求所要采取的具体算法步骤。同时,该实验平台基于Matlab 构建,实验中所有程序源代码均可在线编辑,具备良好的开放性。因此,可以引导学生在项目式学习过程中,通过学习和实践探索各种不同的实现方案,在基本流程的基础上进行创新拓展。
在图像处理算法方面,还可使用边缘检测的方法得到物体轮廓,如Sobel、Canny、Prewitt、LoG 等边缘检测算法[15]。同时,要通过滤波等方式尽可能消除噪声、光线等对边缘检测的影响。对于物料的轮廓,可采用Hough 变换检测轮廓中直线的参数[16],进而计算物料坐标。这样就可实现另一种视觉定位方案。在抓取路径规划方面,对于多个物料及多个物料存放位置的情况,可以对抓取路径规划进行优化,尽可能缩短任务完成的时间。
在项目任务安排上,可以改变基本的设定。例如,可以模拟实际设备中难以在工作台正上方安装相机的情况,改变摄像机的位置和角度,这样增加了视觉处理的难度;也可增加不同形状、纹理、材质的物料种类,此时在完成任务时需要使用更加智能的物体特征识别与分类算法;还可以在物料上增加二维码、序列号、生产日期等信息,通过开发机器视觉识别算法提取这些信息,进一步模拟工厂的智能制造生产环境。
面向机器人智能抓取任务的视觉定位实验来源于智能制造行业的需求,符合产业的发展趋势,具有重要的工程意义。所开发的实验平台具有很好的开放性,学生可以使用易于学习的Matlab 软件自主设计和测试视觉定位系统中各个环节的算法程序,通过动手实验深入领会相关的理论知识和实践方法。在以小组为单位的项目式的实验过程中,只规定了需要实现的目标而不约束具体实现的方法,接近于真实的工程项目的开发过程,能够锻炼学生的学习能力和组织能力。实验项目融合了机器视觉、机器人控制、机电一体化等多方面课程知识,能够锻炼学生解决复杂工程问题的能力,提高专业知识的学习兴趣,激发创造性思维,实现了良好的教学效果。