基于机器视觉的工业机器人分拣技术研究

2016-06-29新闻资讯

 对机器人工作进行分析,发现搬运、分拣是所有工作的基础,无论机器人应用于哪一行业,都会涉及到搬运和分拣工作。考虑到机器人的搬运、分拣工作实现基础是机器视觉,而机器视觉又分为两种情况,即相机静止-目标静止,相机静止-目标运动,一旦机器视觉定位不当,分拣工作就会受到影响,甚至于无法完成。本文章在机器视觉基础上搭建一个在机器人分拣实验系统,对机器人工作中应用到的分拣技术作详细论述。
  1、 国内关于机器人分拣系统的研究   
  尽管我国已经研发研制出了多种类、多造型的机器人,但整体研究工作目前还处于初级阶段,所以真正意义上的国产视觉机器人尚未研发出,更多的是在国外研究基础上进行改进、二次开发。关于视觉机器人分拣系统,国内研究人士提出了几种可行的算法,如连通域矩特征提取法;贝叶斯估计跟踪算法;目标识别法等等。这些算法都能在一定程度上对机器人分拣动作进行辅助,确保机器人分拣动作的顺利完成,防止错抓。
  2、 基于机器视觉下的机器人分拣系统构建   
  为了探讨机器人分拣技术的特点,文章现以 MOTOMAN-UP6机器人为例,基于机器人视觉构建一个机器人分拣系统,并对该系统在相机静止-目标静止,相机静止-目标运动两种情况下的运行情况做详细论述。   
  2.1 机器人分拣系统的构成   
  实验中所构建的机器人分拣系统由四个部分构成,分别为相机标定、图像处理、模式识别以及机器人控制,四个部分缺一不可。相机标定的作用是为系统建立一个图像坐标系与机器人坐标系,并以此来研究二者之间的关系;图像处理的作用是对相机拍摄到的外界图像进行预处理,提取图像中的某些特征,并根据这些特征来确定出联通成分的中心坐标;模式识别需以图像作基础,对图像及图像中的联通成分进行识别、分类;机器人控制是Zui后步骤,控制的实现方法是在计算机和机器人之间建立一个连接通信,利用计算机程序来对机器人动作进行控制。  
  2.2 机器人分拣技术分析   
  机器人分拣系统的整体运行过程便是机器人分拣的实现过程,也就机器人分拣技术。具体内容包括以下几个方面:   
  2.2.1 相机标定   
  相机标定是机器人分拣的首要步骤,也是机器人的视觉基础,如果相机标定不存在,则机器人视觉将无法实现。相机标定的基本作用为分别建立以个图像坐标系和空间位置坐标系,并探讨二者之间的对应关系。机器人分拣中,通过对相机标定结果的分析,可准确判定目标在机器人坐标系中所处的位置,为机器人的分拣和抓取动作奠定基础。   
  2.2.2 目标识别   
  目标识别前期需要完成目标提取,也作图像分割,基本定位为:将图像中某些具备一定特征,或者敢兴趣的部分提取出来。目标提取的方法有很多种,包括边缘检测法、区域提取法、阀值分割法等等。目标提取之后的工作是目标识别,具体工作是对提取出的特征图像或感兴趣目标进行分析、分类。下图1为目标识别过程简图。

88c3d482-83c2-419b-a239-b3a413555de9.png

图1 目标识别过程简图

  2.2.3 传送带上的目标分拣   
  (1)运动目标检测   

  运动目标检测就是从图像序列中将要识别的运动目标从场景图像中提取出来。文章研究的是静态背景下(即相机静止)的运动目标检测,解决此类问题的方法主要可以分为三类:光流法、帧间差分法、背景差分法。   
  (2)垫圈模板的建立与识别
  
  先拍摄一张没有垫圈场景的照片做为背景,采用背景差分法提取待识别的目标,进行联通标记处理后,提取目标的中心点(形心),以形心为中心,提取 80×80 的二值图像作为模板,针对垫圈中心对称的特点,做以下标记,将模板中在垫圈外部的像素标记+1,垫圈上的像素标记为 O,垫圈内部的像素标记为-1,如图2所示。
          

19e84096-c6b0-41ad-9086-cabbff38a197.png

图2 垫圈模板   

  (3)运动目标跟踪   
  运动目标跟踪可采用多目标跟踪法,具体做法是对图像序列的每一帧图像进行分析,从各帧图像中检测出运动目标,判断这些目标是否是要识别的目标及属于哪一类,建立运动目标链,并在后续各帧中定位、识别这些目标,不断更新运动目标链,建立不同帧图像间同一物体运动的对应关系,对目标位置做出判断。运动目标跟踪的同时要建立相应的运动模型,以供后期分拣参考。   
  2.2.4 机器人运动控制   
  MOTOMAN 系列机器人控制系统提供了 MOT0COM32 软件开发包,该开发包包含了机器人控制柜与计算机的通信、机器人运动的基本指令、数据文件的交换等功能。文章在 VC++6.0 上开发的控制平台,MOTOCOM32 提供了在该平台上运行模式,VC 程序调用MOTOCOM 库函数,通过 RS232 接口向控制柜发出指令,控制柜控制机器人完成相应的任务。

  要在 VC 环境中调用 MOTOCOM 库函数,就要在 VC 中配置环境变量包含 MOTOCOM32 动态链接库,将安装文件中的 Moto-Com32.dll、Motolk.dll、MotoLkr.dll、vrp32.dll、motoeom.h、MotoCom32.LIB 这 6 个文件拷贝到程序的工作目录中,再在 VC 的工作窗中/工程一项目 0,弹出/项目设置 0 窗口,在该窗口/连接 0 一栏/对象/库模块 0 中输入 motocom32.lib。
  3、结束语   
  食品加工业、汽车业、农业等生产领域都已研发出相应的机器人技术,并且实现了机器人工作,在很大程度上提高了行业生产效率,促进了行业经济的发展。考虑到机器人分拣工作是所有工作的基础,且机器人在执行分拣工作时极有可能会出现定位不当、无法识别问题,所以必须建立试验系统,对机器人分拣技术进行探讨和分析,找出适用且有效的分拣系统,切实保证机器人的分拣准确性,防止错抓。