APP下载

视觉引导下机器人拆垛场景识别定位抓取方法

2023-02-28朱新龙崔国华陈赛旋杨琳

机床与液压 2023年3期
关键词:码垛姿态物体

朱新龙, 崔国华, 陈赛旋, 杨琳

(上海工程技术大学机械与汽车工程学院, 上海 201620)

0 前言

随着我国智能制造转型升级进程不断加快,工业机器人应用领域也不断拓展,除了生产环节以外,在搬运、分拣、码垛等物流环节的应用也在逐步广泛。在仓储物流中,多种类混合拆垛、码垛一直是物流仓储行业难点,多种尺寸规格的物体,传统的拆垛机器人无法完成精准的检测、识别定位。2018年视比特机器人有限公司研发了基于3D视觉引导机器人多SKU混合无序箱子拆垛、码垛机器人。机械科学研究总院席云飞[1]基于3D视觉技术设计了纸箱拆垛方案,解决了垛型未知的自动化拆垛问题。山东大学魏卓[2]结合物流仓储情况,提出了一个面向物流场景的拆垛机器人视觉系统框架。其中,物体的识别定位一直都是机器人拆垛、码垛过程中研究的重点内容。

目标识别通常使用2D视觉,翟敬梅等[3]提出了一种基于2D图像信息的目标物体识别与抓取方法。李志昂等[4]提出一种基于SURF算法和RGB颜色空间相结合的目标对象特征提取方法。但由于缺乏物体的深度信息,在姿态估计方面,基于2D视觉对物体的姿态估计不够准确,而3D视觉有着较好的效果。BUCHHOLZ等[5]提出了一种激光扫描点云数据与CAD数据匹配的高度柔性bin-pick系统。WU等[6]提出了一种基于CAD模型的六自由度姿态估计方案。王玉等人[7]提出了一种基于三维图像与CAD模型匹配的工业机器人视觉定位方法。然而因点云数量较多,CAD模型和场景点云匹配计算量大,且点云间尺度不一致,从而影响配准时的精度与速度[8];同时点云的预处理比较复杂,使得3D视觉的匹配效率较低。因此,本文作者提出了一种基于改进Mask R-CNN与局部点云匹配迭代优化相结合的方法,有效提高工业机器人的拆垛、分拣及码垛效率。

1 系统平台设计

如图1所示,文中搭建视觉引导下的协作机器人拆垛、分拣及码垛系统的实验平台,实验平台分为视觉平台和抓取平台。视觉平台由RGBD相机构成,在视觉系统中,根据机器人与相机的相对位置不同分为eye-in-hand与eye-to-hand 两种类型,此平台为eye-to-hand视觉系统。由于相机最佳深度范围800~1 300 mm,RGBD相机固定在工作平台正上方的位置,距离工作平台的高度为1 000 mm,保证视野在最佳深度范围内。

图1 系统平台Fig.1 The system platform

抓取平台由UR5协作机器人、末端执行器二手指及固定支架构成,UR5的负载为50 N,安全性高,操作灵活性大且精度较高;由于此实验平台抓取的目标物体为方形木块,因此选取了二手指作为末端执行器;实验为了抓取方便,把UR5安装在特制的固定支架上,与实验平台呈45°安装,模仿了工人工作时的手臂操作形式。

2 基于2D-3D视觉的机器人识别定位

文中将改进后的Mask R-CNN与点云的匹配迭代优化方法结合起来,完成对堆垛物体检测识别和位姿估计。系统框架分为目标检测部分和位姿估计部分:目标检测部分利用改进的Mask R-CNN网络,得到目标所属的类别、包络框及掩膜,结合深度信息生成的场景点云;位姿估计部分通过改进的ICP(Interactive Closest Point)算法将局部点云模型和分割后的场景目标点云迭代匹配,完成对堆垛物体的位姿估计。系统的整体框架如图2所示。

图2 基于实例分割与迭代优化方法的拆垛码垛方法系统框架

2.1 基于改进Mask R-CNN网络的目标检测识别

2.1.1 基于Mask R-CNN的改进

Mask R-CNN[9]是基于2D视觉识别的卷积神经网络,基于Faster R-CNN添加了掩膜分支,同时用ROIAlign替换掉ROIPooling,通过双线性插值使Mask R-CNN能够得到物体的像素级掩膜。另一方面,为了强化特征提取网络,Mask R-CNN采用FPN与ResNeXt-101作为特征提取网络,达到state-of-the-art的效果。在现实场景的抓取环境下,由于CNN提取的特征缺乏旋转不变性,所以训练的模型不能够较好地识别出旋转角度过大的物体[10]。

图3 STN模块Fig.3 STN module

(1)

2.1.2 Mask R-CNN模型训练

文中以木块作为检测识别目标,对改进前后的Mask R-CNN模型训练,模型训练时使用的是TensorFlow和Keras深度学习框架。在训练前确定合适的迭代周期与迭代次数,每当完成一次迭代周期得到对应的损失函数值。在模型参数设置中,最大的迭代周期设置为100个epoch,所有标签在每个epoch完成一次迭代,初始学习率及学习率衰减系数均设置为0.001,动量设置为0.9。模型训练类别系数设置为2,IMAGES_PER_GPU设置为1,RPN_ANCHOR_SCALES设置为(8×6,16×6,32×6,64×6,128×6),比例设置为(0.5,1,2)。经过100个epoch的迭代,改进前后Loss值变化如图4所示,Loss值在完成30次迭代后趋于稳定。

图4 损失函数值Fig.4 Loss function value

2.1.3 Mask R-CNN模型测试

在堆垛物体的识别检测中,Mask R-CNN不仅可以准确地识别出物体的种类,还可以对它进行实例分割。模型训练完后对堆垛的物流箱1和物流箱2的木块进行检测识别,如图5所示。对100组样品进行检测,识别率超过85%判定识别正确。将改进前后Mask R-CNN的检测识别结果对比,如表1所示,改进前后物流箱1和物流箱2的平均识别准确率分别为91%和97%,改进后的Mask R-CNN框架对物体的识别准确率有着较大提升,误识别及未识别较低,满足实验对识别精度的要求。

图5 物流箱1和物流箱2的识别结果

表1 改进前后Mask R-CNN的检测识别结果对比

2.2 基于3D局部点云的位姿估计

2.2.1 构建物体的三维点云模型

在模板点云构建中,局部点云模型法相较三维扫描法[12]、逐帧拼接法[13]有着独特的优势。三维扫描法是使用扫描仪器构建目标对象的三维点云模型,所得的点云整齐且误差小,如图6所示。但三维扫描法与相机所得的模型在特征和尺度上存在着较大的差异,影响着模型之间的配准。逐帧拼接法是通过相邻帧之间的特征点,计算其转换矩阵,把转换矩阵运用到场景点云中[13]。逐帧拼接法对场景点云的运算量大,由于人工删除无效点,点云模型变形较为严重。

图6 FARO扫描臂(a)和扫描的三维点云(b)

针对文中的协作机器人拆垛、分拣及码垛系统,利用局部点云模型法来构建模板点云模型,更有利于对目标物体的姿态估计。首先利用相机采集模板物体的图像,通过2D视觉检测识别,得到模板物体的ROI区域。将该区域的深度图转变对应的点云,通过ICP算法拼接成模板物体的局部点云,如图7所示,获得模板点云模型。虽获取的模板点云模型精度不是很高,但其精度与相机采集到的场景物体点云相同,使得点云配准与姿态估计较为精准,同时也降低了由于点云尺度带来的影响。

图7 局部点云法构建的模板点云模型

2.2.2 ROI局部点云与模型点云的配准

将ROI局部点云与模板点云配准来进行姿态估计。首先利用改进的Mask R-CNN网络得到目标所属的类别、包络框及掩膜,结合点云信息分割目标点云,得到物体场景局部点云,如图8所示。

图8 物体场景局部点云Fig.8 Local point cloud of object scene

ICP算法在点云配准中使用较多,在文中的协作机器人拆垛、分拣及码垛系统中,对ROI场景点云与模板点云的配准关系进行计算,从而得到目标物体的姿态信息。由于利用局部点云法,场景点云与模板点云中点的数量较少,降低了ICP算法搜寻点对带来的影响。此系统中点云噪声点较少,其带来的误差对ICP算法影响也相对较小。因此,文中对场景点云和模板点云进行配准适合选用ICP算法。

ICP算法[14]的基本原理是在待匹配的目标点云P和源点云Q中,根据约束条件来寻找最邻近点(pi,qi),通过计算得到最优匹配参数R和t,从而使误差函数取得最小值。其中误差函数E(R,t)为

(2)

式中:pi为目标点云中的点;qi为源点云Q中与pi对应的最近点;n为最邻近点对的个数;R为旋转矩阵;t为平移向量。

设文中的物体模板点云为S,场景点云为T,si和ti为点云S和T中的点。

S={s1,s2,…,sn}∈F1

(3)

T={t1,t2,…,tn}∈F2

(4)

在点云配准时,为使R和T有式(5)的关系:

∀i,ti=Rsi+T

(5)

在实际配准中,通过点对间的误差值对其配准结果进行衡量:

(6)

改进的ICP算法对ROI局部点云和模板点云配准时,主要步骤如图9所示。

图9 点云配准流程Fig.9 Flow of point cloud registration

2.2.3 四元数与目标物体姿态估计

在物体姿态估计中,四元数、旋转矩阵及欧拉角都能通过旋转来表示物体的姿态信息。其中四元数与旋转矩阵相比,四元数仅需4个数据就能替代旋转矩阵16个数据来表示旋转,降低了运算的复杂性。在表示旋转中四元数与欧拉角对比,四元数不需指定旋转条件,同时四元数不会出现万向节锁现象[8],故文中选用四元数对目标物体进行姿态估计。

ICP算法最终的点云配准结果采用旋转矩阵和平移矩阵来表示,文中通过四元数对物体和机器人末端的姿态进行描述,把旋转矩阵转变为相应的四元数,对目标物体姿态信息进行表示。其中,模板点云提前设定好其最佳抓取姿态,保证其抓取的准确率。

3 实验及结果分析

3.1 视觉系统的标定实验

视觉系统的标定,通过坐标系转换关系将RGBD相机与UR5协作机器人联系起来。机器人相机标定,构建出图像中目标物的像素坐标位置与世界坐标系中位置坐标的变换关系,建立相机成像的几何模型。

之后再进行eye-to-hand手眼标定,通过求解得到RGBD相机坐标系到机器人基座坐标系的转换矩阵。将物体在相机视野下的位置坐标,转换成机器人基坐标系下的位置坐标,从而精准地控制机器人抓取物体。

文中标定板选取的是7×5的棋盘格,每个方格大小为24 mm×24 mm。标定时,拍摄采集了机器人处于10个不同位置姿态的标定板图像,通过标定板中黑白格子交叉角点的相对位置求解相机标定的内参矩阵和外参矩阵。

图10所示为实验标定过程,表2所示是手眼标定结果。

图10 系统标定过程

表2 手眼标定结果Tab.2 Hand-eye calibration results

3.2 基于3D局部点云的位姿估计实验

ICP配准算法省去了点集的特征提取与分割过程,相对于同类算法有着较好的算法收敛性且配准结果较为精确[15]。然而针对场景点云和模板点云的邻近点的计算,每次都需进行迭代,对应点对的搜索计算量较大。文中对ICP算法改进,引入了K维树邻域搜索,较大程度上减少了搜索时间,提升了配准算法的速度。

点云的精匹配中ICP配准算法比较常用,它有着比较高的配准精度,但由于ICP算法有着较高的点云初始位置要求。为了确保配准的精度,一般在精配准前先通过RANSAC等粗配准算法来预匹配[16]。在文中的识别抓取环境中,由于场景ROI局部点云与模板点云都是通过局部点云法得到的,两者特征及尺度差距不大,实验可以省去点云粗匹配过程。

根据最近点确立关系,ICP算法迭代计算易陷入局部最优解。但在实验中,ROI局部点云与模板点云中点的数量较少,且在位置姿态上存在着差异,很大程度上避免了陷入局部最优解。实验结果表明:加入了K维树邻域搜索使得ICP算法在姿态估计中有着较好的表现。图11所示为目标物体匹配过程示意。

图11 目标物体匹配过程示意

图12所示为ICP位置误差与迭代次数的关系,可以看出:随着迭代次数的增加,ROI局部点云与模板点云配准时位置误差逐渐减小,迭代前期减少较快,后期变化逐渐缓慢。

图12 ICP位置误差与迭代次数的关系

在ROI局部点云与模板点云的ICP匹配中,由于点云中点的数量并不多,迭代10次ICP位置误差就达到了0.988 mm,小于1 mm。如果进一步增加迭代次数,匹配误差也得不到较大的改善,此时的位置误差满足了实验误差要求,迭代终止。

由ICP匹配算法所得旋转平移矩阵为

(7)

在UR5协作机器人系统中,待抓取物体的位置为(x,y,z),其姿态信息为(x1,y1,z1,w)。通过改进后ICP算法得到点云配准结果,即为式(7)所示的旋转平移矩阵。把旋转矩阵转变为相应的四元数对目标物体姿态信息进行表示,则待抓取物体的位置为(0.017 834,0.012 421,-0.001 717)时,姿态为(-0.001 625 12,0.009 300 71,-0.007 675 58,0.999 925 97)。将最终得到的物体姿态信息传输给机器人末端,使其根据目标物体的实际姿态来调整二手指抓取姿态。模板点云提前设定好其最佳抓取姿态,机器人末端的二手指通过旋转移动来完成每次最佳姿态的抓取,保证其抓取的准确率。

3.3 机器人拆垛、分拣码垛实验

实验对不同类型木块进行拆垛,为了降低不同场景下点云分割的复杂程度,对目标物体点云进行了分层处理。深度相机拍摄时与实验台的工作区域垂直,采集数据后,首先确定码垛物体点云最高点。利用2D视觉识别出最高层的物体,获得物体表层ROI点云。计算出物体位姿,把木块的位姿信息传输给机器人,完成对位置最高木块的拆垛抓取。图13所示为木块识别抓取顺序流程,图14所示为UR5协作机器人抓取识别定位过程。

图13 木块识别抓取顺序流程

图14 机器人抓取识别定位过程

实验拆垛、分拣及码垛对象分为2种类型的木块,分别标记为物流箱1、物流箱2,在相机的测量范围及UR5协作机器人的工作空间内,把2种类型的木块随意码垛在工作台上,结合2D-3D视觉识别出目标物体的位置和姿态,引导UR5协作机器人和二手指完成对物流箱1和物流箱2的拆垛、分拣实验。相机首先识别出码垛堆中木块的深度信息,完成对位置最高木块的识别定位,然后对其进行抓取。实验将分拣后的物流箱1和物流箱2分两列放置,UR5抓取后对其进行分类码垛。实验过程如图15所示。

图15 机器人拆垛(a)、分拣(b)和码垛(c)实验

4 结束语

(1)实验结果表明,加入STN模块的Mask R-CNN网络框架对物体的识别准确率达到97%,相较于改进前有着较大的提升,满足实验对识别精度的要求。

(2)在点云的匹配迭代优化位姿估计中,ROI局部点云与模板点云的匹配迭代10次,位置误差可达到1 mm以内,减少了模板点云与ROI点云配准的迭代次数,有效提升了点云匹配的效率。

(3)拆垛分拣过程为了降低不同场景下点云分割的复杂程度,对目标物体点云进行了分层处理,有效提高了工业机器人的拆垛、分拣及码垛效率,其性能可以满足实际应用的要求。针对复杂多变的仓储物流环境,该系统的可移植性较好,可以作为仓储物流行业的解决方案来进一步扩展。

猜你喜欢

码垛姿态物体
可控机构式码垛机器人的运动学误差分析
攀爬的姿态
移动式码垛机器人移动臂的优化设计
深刻理解物体的平衡
GSK工业机器人码垛程序编写技巧
我们是怎样看到物体的
全新一代宋的新姿态
跑与走的姿态
为什么同一物体在世界各地重量不一样?
悬浮的鸡蛋