廖家骥,刘建群 ,高伟强,胡钊雄
(广东工业大学 机电工程学院 广东省微纳加工技术与装备重点实验室,广州 510006)
机器视觉技术是指用摄像机模拟人眼的视觉功能,并以此来对客观的事物进行测量和判断[1]。现如今,机器视觉技术在工业中得到了广泛的应用,对提高生产效率,实现生产智能化起到了至关重要的作用[2]。
工件分拣是工业生产中的一个重要的组成部分,在传统的生产线上,采用的是人工分拣的方法,但这种工作的重复性高,且劳动强度大,工人在长时间工作后,易出现错分现象[3]。随着工业的发展与进步,开始逐渐采用工业机器人来代替工人进行分拣,但因为机器人的运动,是通过示教或者离线编程实现的,所有动作都是预先设定的,一旦工件的摆放位置有所变化,机器人无法做出相应的调整,就会造成抓取错误[4]。与传统的机械分拣作业相比,将机器视觉技术应用到工业分拣系统之中,能够显著地增加整个分拣系统的柔性,降低工件摆放的要求,提高分拣的成功率[5]。
本文将机器视觉技术应用到工业机器人的分拣作业中,搭建基于视觉的机器人分拣实验平台。经测试,该平台能够对摆放在相机视野范围内任意位置的工件进行分拣,为工业自动化提供了一套切实可行的方案。
基于视觉的机器人分拣系统如图1所示,是由6轴机器人、视觉模块、气动模块、计算机组成,6轴机器人安装在铝制基板上,视觉模块由相机和镜头组成,安装在机器人以外的支架上,气动模块由气动吸盘、空气压缩机、电磁阀、控制电路、真空发生器组成,在计算机上编写程序,将这几个模块结合起来,形成基于视觉的机器人分拣系统。
图1 基于视觉的机器人分拣系统工作原理示意图
6轴机器人:由于需要分拣的工件质量在400g以内,最大搬运距离为500mm,故选用Nachi公司的MZ04高速轻型6轴机器人,该机器人可以搬运4kg重量的物体,移动范围为600mm,具有精度高,速度快的优点。
视觉模块:视觉模块由相机和镜头组成。式(1)为相机选型公式。
F=FOV/D
(1)
式中,FOV为视野范围,D为视觉模块的识别精度,F为相机的像素。因为待分拣的工件,放置在180mm×250mm的工作区域中,所以将整个视觉模块的视野范围FOV定为200mm×300mm,而整个视觉识别模块的识别精度D要求为0.8mm,根据式(1)算出要满足精度要求,至少需选用10万像素的相机。为提高稳定性和准确率,用13个像素表示一个毫米,故需要选用130万像素的相机。Basler的Aca-1300-gm相机,像素为130万,芯片尺寸为1/3英寸,并且有着较高的稳定性,能够满足精度要求。镜头选型的原理,如图2所示。
图2 镜头选型示意图
根据已知的工作距离H、视野范围FOV、芯片尺寸X,结合相似三角形原理求得镜头焦距f为16mm。选型完成后,将相机和镜头安装在机器人以外的支架上,经过调试后,测得该视觉模块能够满足识别精度。
气动模块:气动模块由吸盘、空气压缩机、电磁阀以及真空发生器组成。吸盘和真空发生器安装在机器人末端,真空发生器将空气压缩机输出的压缩空气转为负压,从而使吸盘吸取工件。
整个系统的工艺流程如图3所示,整个流程可以分为3个模块,分别是模板生成模块,系统标定模块以及主模块。模板生成模块的功能是提取各类工件特征,生成分类模板,为之后的模板匹配做好准备;标定模块的功能是建立起视觉坐标系与机器人坐标系的转换关系;主模块的功能是建立计算机与机器人的通信,并实现自动分拣功能。
图3 基于视觉的机器人分拣系统工艺流程图
特征提取与模板匹配是机器视觉和模式识别中一个重要的环节[6],目标图像的形状、灰度值等特征都可以作为模板匹配时的准则。在选择匹配特征时,需优先考虑特征在不同的光照条件下和不同环境下的鲁棒性,这将直接影响到匹配的准确率。目前常用的模板匹配有基于灰度相关的模板匹配和基于形状的模板匹配,基于灰度相关的模板匹配是以图像灰度值信息作为特征参数直接进行匹配[7],其原理简单,实现较为容易,但易受光照影响,需要在光照条件稳定的区域进行才有较高的匹配准确率。基于形状的模板匹配以图像中的轮廓信息作为特征参数来进行匹配[8],其稳定性高,不易受到光照和外界环境的影响,由于整个分拣系统对稳定性有着较高的要求,故选用基于形状的模板匹配方法。生成模板文件的流程分为以下3步。
(1)图像预处理。由于该视觉系统的工作距离长,视野范围广,普通的光源不能胜任这一工作场景,而定制大面积的光源成本高昂,为提高采集图像的质量,使用分段线性函数对图像进行灰度拉伸,提高图像的灰度范围,增强图像的对比度,改善输出图像的质量。
(2)边缘提取。使用Canny算子提取工件的边缘轮廓,Canny算子是一个综合性强的边缘检测算子,包括滤波、增强、检测等多个阶段[9],能够有效地去除干扰,得到优质的边缘。
(3)生成模板。调用Halcon中的create_shape_model算子,输入工件的边缘,设置模板的旋转角度范围、缩放系数等参数,创建模板文件,最后调用write_shape_model算子将生成的模板文件保存至计算机中,以便之后的调用。
根据相机与机械手的相对位置不同,可将标定方式分为Eye_in_hand和Eye_to_hand[10],Eye_in_hand是将相机装在机械臂上,并随着机械臂运动,具有较好的灵活性,但稳定性有所欠缺。Eye_to_hand是将相机安装在机器人以外的某一固定的位置,具有较好的稳定性和较大的视野范围,能够满足该项目的需求,故选用Eye_to_hand系统。
手眼标定的本质是求取机器人坐标系与相机坐标系的转换关系。传统的手眼标定模式需要获取机器人坐标系与工具坐标系的转换关系,工具坐标系与工作平面坐标系的转换关系,以及工作平面坐标系与相机坐标系的转换关系,最后根据这3个转换关系,求得摄像机坐标系与机器人坐标系的转换关系[11]。这种方法标定起来较为繁琐费时,要通过多次机器人的移动,才能完成标定。故提出一种快速手眼标定方法,能够直接在工作平面上建立机器人坐标系与视觉坐标系的转换关系。在快速手眼标定模式的过程中,首先将带有3个Mark点的标定板放在工作平面上,并使用Basler的Aca-1300-gm相机对其拍照,然后根据图像的灰度值,将3个非共线的Mark点区域提取出来,并计算出这3个点中心的像素坐标,接下来控制机器人,使机器人的工具末端依次停在3个点的中心上方,并记录此时的机器人坐标,最后调用转换模型,求取仿射变换矩阵。该手眼标定的转换模型为:
(2)
式中,(x,y)是相机坐标系下3个Mark点的中心坐标,(x′ ,y′)是机器人坐标系下机器人工具末端移动到3个Mark点中心上方时的坐标,a1,a2,a3,a4表示旋转变量,tx,ty分别表示x方向与y方向的平移量。
通过3组(x,y)和(x′,y′)坐标,可求解出相机坐标系与机器人坐标系的仿射变换矩阵。该手眼标定方法因为没有涉及到机器人的正逆解,所需要的计算参数也很容易得到,故这种快速手眼标定方法不仅适用于机器人,也同样适用于其它需要使用机器视觉的工程机械。
主模块是整个系统的主干,在主模块中将调用分类模板和标定矩阵,对工件进行分类并获取工件的中心坐标,最终引导机器人完成自动分拣。图4为主模块的流程图。
图4 主模块流程图
如图4所示,主模块由计算机程序、机器人通信程序以及机器人运动程序组成。在计算机程序中,发送指令控制相机对待分拣工件进行拍照,接下来调用Halcon中的find_shape_model算子,输入模板文件,以及已经获取的待分拣工件的图片,设置搜寻的起始角度、匹配度等参数,提取出图片中所有与模板文件相同类别物体的中心在图像坐标系下的坐标,然后将其与标定矩阵做运算,得到工件中心在机器人坐标系下的坐标,接下来申请与机器人建立连接,将工件的中心坐标以及该类工件对应类别的放置区坐标,发送给机器人。在机器人通信程序中,将依次执行创建套接字,分配端口号等操作,并等待计算机申请连接的要求,在接收到要求后,建立连接,接收计算机发送的坐标,并将其依次存储到机器人自身的寄存器之中。在机器人运动程序中,设置运动的速度、加速度、平滑系数,之后依次调用寄存器中的坐标,完成工件的分拣。
为检测整个系统的分拣成功率,搭建分拣系统平台,进行分拣实验,图5为整个分拣系统实物图。
图5 基于视觉的机器人分拣系统实物图
整个系统由机器人、工业相机、镜头、空压机、真空发生器、计算机等组成。在工作区域内的任意位置,放置三类工件,每类工件若干,然后启动机器人自动分拣系统进行实验,图6为分拣效果图。
(a) 分拣前 (b) 分拣后 图6 分拣效果图
图6a中的矩形框为零件放置的工作区域,可以将待分拣的工件随意摆放在工作区域内的任意位置。图6b为工件分拣后的状态,图中共有三个矩形框,从上到下依次是矩形工件放置区、圆形工件放置区、三角形工件放置区,如图6b所示,各个工件已经被成功分拣。实验得到的工件几何中心点的位置如表1所示。
表1 工件定位结果
由表1可知,整个系统计算出的工件几何中心点与工件的实际几何中心点的误差不大于0.65mm,能够满足精度要求。经过多次实验与观察,工作区域内的工件均能成功被分拣。
将视觉检测技术与工业机器人结合起来,搭建基于机器视觉的机器人分拣系统,提出一种快速手眼标定算法,该算法运算速度快,精度高,整个系统能够对摆放在相机视野范围内任意位置的工件进行分拣,分拣稳定性高,分拣效果好,为工业自动化提供了一个切实可行的方案。