APP下载

基于机器视觉的工业机器人智能分拣系统设计

2019-09-10徐青青

仪表技术与传感器 2019年8期
关键词:超平面位姿标定

徐青青

(宿迁学院机电工程学院,江苏宿迁 223800)

0 引言

工业机器人在工业领域得到广泛应用,是制造业生产自动化中的重要一环[1]。随着计算机视觉技术的发展,如何将工业机器人与计算机视觉技术相结合成为研究的热点问题。机器视觉在工业应用领域中应用广泛,主要有3个功能:视觉测量、视觉引导和视觉检测[2]。目前传统的工业机器人通过示教或者离线编程的方式,无法满足复杂作业环境要求,基于视觉引导的工业机器人分拣系统,具有广阔的应用前景。王诗宇[3]等利用并联机器人和康耐视相机搭建了物体分拣平台。倪鹤鹏[4]等提出了一种基于时间与工件位置的图像去重算法与基于牛顿-拉夫森迭代的动态抓取算法,提高了抓取的准确率与效率。唐旭[5]利用物体形状特征不变性识别物体,利用双臂机器人和Kinect相机搭建了一个智能分拣平台。陈恳[6]建立以库卡机器人为执行体的物料分拣平台。4自由度分拣机器人SCARA,集成了视觉系统,具备视觉引导功能,可用于分拣平台上的工件[7]。总结目前的研究成果,多是通过机器人分拣平面上相互独立的物体,实际的生产环境会涉及到物体有重叠或者是遮挡的情况。为了进一步提高工业机器人在自动化生产线上的灵活性,本文利用深度相机获取点云数据的特性,搭建了一个基于机器视觉的工业机器人智能分拣平台。

1 分拣系统平台搭建

本文利用Kinect深度相机、PC机、史陶比尔TX60型六关节串联机器人,搭建如图1所示的智能分拣平台。Kinect深度相机用来获取彩色图像和深度图像;PC机功能是通过处理彩色图像来识别分拣物体,通过处理深度图像获取物体的位姿,并且与工业机器人控制器通信,传输抓取物体的位姿信息;史陶比尔工业机器人用来分拣物体,当机器人控制器接收到上位机发送的分拣物体的位姿信息时,利用控制器Val3语言来接收位姿信息,并控制工业机器人执行相应的操作。

图1 分拣平台

2 分拣系统方案设计

2.1 系统标定

搭建工业机器人智能分拣系统平台,首先要对整个系统进行标定。第一步标定Kinect深度相机,获取Kinect深度相机的内外参数,建立相机坐标系与世界坐标系之间的关系;第二步手眼标定,获取工业机器人基坐标系与相机坐标系之间的关系。Kinect深度相机标定使用张正友[8]棋盘标定法,利用OpenCV计算机开源视觉库标定模块,检测棋盘角点,求出相机的内外参数,如图2所示;工业机器人手眼标定,首先通过示教,建立起工业机器人的用户坐标系,然后通过第一步得出的相机外参数,即可建立起工业机器人基坐标系与相机坐标系之间的关系,如图3所示。

图2 相机标定

图3 手眼标定

标定结果为:

(1)内参数

(2)外参数

(3)机器人世界坐标系与相机坐标系关系矩阵

2.2 物体识别

面对日益复杂的生产作业需求,对工业机器人分拣提出的要求越来越高,传统的模板匹配和特征识别,可能无法满足复杂分拣环境下的识别任务,因此引入机器学习中的支持向量机(SVM)。SVM在解决小样本、非线性及高维模式识别中有优势,并能推广应用到函数拟合等其他机器学习问题中[9],是一种监督式学习方法。算法原理是首先将向量映射到一个更高维的空间里,在其中建立最大间隔超平面,将数据分开;然后在超平面两边再设立两个互相平行的超平面;最后分隔超平面,使两个平行超平面的距离最大化[10]。超平面分类如图3所示。

图3 超平图

本系统主要是识别物体的形状和颜色信息,算法流程图如图4所示。

图4 支持向量机算法流程图

使用SVM作为分类器,先训练SVM样本模型。具体是第一步输入图片,对于给出的每个训练样本,都要明确每个样本的归类是0还是1,即每个样本都要标注一个确切的类别标签,作为SVM训练时使用。一般SVM对于样本特征的选择以及维度没有明确的要求,根据样本实际情况选择,常用的边缘、Haar、角点、Sift、Surf、直方图等各种特征表述参与训练。

第二步设置SVM参数。SVM常用的参数有SVM类型选择、核函数类型以及算法的终止条件和松弛变量等。其中核函数的选择是决定SVM识别效果的关键性因素,它的本质作用是将低维空间的线性不可分类问题,借助核函数转化为高维空间的线性可分,进而可以在高维空间找到分类的最优边界,即超平面。常见的核函数有线性核函数、多项式核函数、径向基(RBF)核函数(也称高斯核函数)和Sigmoid核函数(二层神经收集核函数)。

(1)线性核函数

K(x,x1)=(xgx1)

(2)多项式核函数

K(x,x1)=[v(xgx1)+1]q

(3)径向基(RBF)核函数

(4)Sigmoid核函数(二层神经收集核函数)

K(x,x1)=tan(h(v(xgx1)+c))

根据实际的识别情况,本系统选用多项式核函数作为SVM训练核函数。

第三步训练支持向量,输入特征标签和核函数,输出支持向量分类器。

程序运行时,首先获取从摄像机采集的彩色图片,然后针对彩色图像,进行ROI提取,裁剪出需要识别的物体的区域,保存作为测试图片,接着训练图片并且跟训练好的模型分类器作对比,最终找出支持向量,进而实现物体识别的功能。

2.3 位姿获取

通过工业机器人手眼标定,建立相机坐标系与机器人基坐标系之间的转换关系。获取分拣物体的位姿,是智能分拣系统的关键一步。Kinect深度相机输出点云数据,利用PCL开源库,实现对点云数据的配准。本文使用基于采样一致性(SAC-IA)粗配准算法和迭代最近点(ICP)精配准算法来实现点云的配准。SAC-IA粗配准算法流程图如图5所示,ICP精配准算法如图6所示。

图5 采样一致性粗配准

图6 迭代最近点点云精配准

SAC-IA粗配准首先对点云数据进行采样,得出源点云P和目标点云Q两个点云,其次分别提取两个点云的法向量,接着计算配准点云的快速点云特征直方图(FPFH),即从待配准的源点云P中选取n个采样点,为了尽量保证所采样的点具有不同的FPFH特征,采样点两两之间的距离应满足大于预先给定最小距离阈值d。计算随机对应点之间刚体变换矩阵,判断是否达到迭代次数,当达到设定次数时,粗配准结束,反之继续计算随机对应点之间刚体变换矩阵。

ICP精配准过程:

(1)将经过SAC-IA粗配准后的源点云作为新的源点云,目标点云保持不变;

(2)计算出源点云上的每个点到目标点云上的每个点的距离,根据距离最近原则匹配初始点对应关系;

(3)由于只是简单地通过计算得出对应点关系,因此初始对应点集中可能会出现错误的对应关系,这会影响最终ICP的配准结果,采用方向向量阈值剔除错误的对应点对;

(4)确定ICP精配准所需的目标函数;

(5)求解刚性变换,计算源点云数据到目标点云数据的旋转矩阵和平移向量;

(6)判断是否达到迭代次数或者是满足收敛指定的范围,如果条件成立则配准结束,反之将得到的经过刚体变换的点云数据作为新的源点云数据,继续从第(2)步开始执行,直至满足条件为止。

3 实验及结果分析

针对物体形状识别功能,设计圆形和正方形两种样本形状。针对物体颜色识别功能,设计白色和红色两种颜色。在VS2010编译环境下,编写MFC上位机测试程序,如图7所示。将学习的结果与物体本身的结果对比,如果相同,输出正确识别结果。

图7 物体识别模块

针对物体位姿获取功能,通过标准姿态与点云算法配准姿态进行对比,配准结果如图8所示,效果图如图9所示。经过SAC-IA粗配准和ICP精配准后,得出目标点云数据相对于基准点云的位姿。

图8 点云配准结果

工业机器人智能分拣系统运行效果图,如图10所示。通过本文搭建的平台,可以实现物体的识别和分拣功能。

4 结束语

本文针对工业机器人复杂分拣环境下的物体识别和位姿获取问题,搭建了基于机器视觉的工业机器人智能分拣系统平台,借助OpenCV库实现基于SVM的物体识别分类算法,借助PCL库实现点云数

图9 点云配准效果图

(a)识别

(b)开始抓取

(c)放置目标

(d)放置完成

据的SAC-IA粗配准和ICP精配准算法来获取物体位姿。实验结果表明,该系统平台能够较好地实现物体识别和位姿获取功能,为进一步推广工业机器人在复杂环境下分拣物体提供参考。

猜你喜欢

超平面位姿标定
融合二维图像和三维点云的相机位姿估计
全纯曲线的例外超平面
涉及分担超平面的正规定则
船舶清理机器人定位基准位姿测量技术研究
使用朗仁H6 Pro标定北汽绅宝转向角传感器
优化ORB 特征的视觉SLAM
CT系统参数标定及成像—2
CT系统参数标定及成像—2
以较低截断重数分担超平面的亚纯映射的唯一性问题
涉及周期移动超平面的全纯曲线差分形式的第二基本定理