基于机器视觉的蜗壳智能识别拆垛系统*
2022-11-25骆凯鑫
杨 平,王 博,骆凯鑫
(厦门大学航空航天学院,厦门 361102)
0 引言
码垛是按照集成单元化的思想,将多件物料按照一定模式堆码成垛,以便实现物料的存储、搬运、装卸与运输的物流活动[1]。而拆垛则是将堆放好的物料按顺序抓取并放到指定位置,配合后续工序的进行。由于工业界对拆垛的精度、效率要求越来越高,人工拆垛的方式已逐渐无法满足业内需求,相对人工而言设备化的生产模式拥有着高效率、高精度以及低成本等优点,所以取代了人工被更广泛的应用于各产线。
机器视觉技术与不同工业自动化设备的融合开发应用,促进了生产制造过程智能化、数字化程度的提升。加入了视觉模块的自动化拆垛系统就像拥有了“眼睛”,通过视觉模块的识别、定位,机器人等抓取装置可以准确、快速完成物料的拆垛,极大地提升自动化产线的效率与效益。
近年来,国内外工业界与学术界在自动化码垛方面开展了诸多研究,在传统的无视觉模块融合的自动化码垛方面,XU等[2]阐述了重载码垛机器人的工作原理和主要结构设计,利用有限元分析软件以及Solidworks仿真验证了其结构的合理性。XU、ZHANG等[3-4]设计了相应的规划与匹配算法,分别完成了对具有规则形状有序堆叠的纸箱和不规则形状的香烟的抓取规划。
融合视觉模块的自动化码垛系统可以显著地提高抓取过程的鲁棒性和智能化程度,国内外学者对此也展开了诸多研究。在码垛或拆垛作业在固定平面时,LEE、刘振宇等[5-6]分别利用Harris角点特征和HU特征矩融合等算法,完成了对微小零件的码垛和工件的分类码垛。STAS等[7]利用神经网络作为模式识别系统,在较为复杂的环境下利用视觉系统和机器人完成了产线产品的实时码垛。在需要获取场景三维信息时,无论是PMD相机还是双目视觉都可以完成图像的三维重建并搭配机器人完成拆码垛[8-9]。
手眼标定技术作为关联视觉系与抓取机构间的坐标转换方法,其效果直接影响了最终抓取结果。ZHANG等[10]分析了机器人末端法兰坐标与相机坐标之间的相对空间位置关系,提出了一种简化的机器人视觉系统手眼标定方法。梁冬泰等[11]在面对相机标定效果较差的情况时,将每张图像都分成了若干个子块,并在每一个子块中进行了相应的标定,较大的提高了标定的精度。
综上所述,视觉成像技术与机器人硬件的结合已成为智能拆垛系统发展的热点领域,但是被搬运对象的差异化,使得识别定位算法存在较大的差异。因此,本研究针对特殊黑色吸光物体,开展物料在无序摆放及多层堆叠场景下的智能拆垛系统开发,主要包括智能拆垛硬件设计与选型,研究不规则黑色吸光物体的识别定位算法,最终进行了拆垛实验评估。
1 智能拆垛系统整体设计
本论文搬运对象为黑色塑料蜗壳,蜗壳的底面直径为190 mm,高度为210 mm,形状为不对称的螺旋形,底面直径略大于顶面,蜗壳质量约为200 g,如图1所示。
实际拆垛场景为蜗壳以每层4×4无序摆放,共堆叠6层,层与层之间由硬纸皮隔开,物料堆长宽高约为1300 mm×1300 mm×1500 mm,如图2所示。基于该需求本研究提出了融合机器视觉与6轴工业机器人的智能拆垛系统设计方案。
系统主要由上位机、工业机器人、末端抓取装置以及RGB-D相机4大模块构成。上位机选择常见的台式机并搭配Windows 64位系统,为保证能尽可能的抓到更多不同位置的物料,工业机器人的选型定为6自由度且负载为6 kg,臂展为1400 mm。进行图像与三维点云采集的RGB-D相机深度图像像素为1280×960,采样帧率为1 fps。末端抓取装置采用海绵吸盘,利用真空发生器产生的吸力将物料抓起,工作气压为0.5 MPa时,真空到达口的真空压力为92 kPa。其整体系统硬件搭建的示意图与实物图如图3和图4所示,所用到的硬件如表1所示。
图3 整体系统示意图图4 整体系统实物图
表1 所需硬件列表
系统的软件部分主要包含了图像处理、机器人控制两大模块。图像处理模块包含了图像获取、图像预处理以及深度图像处理三部分,而机器人控制模块包含了机器人通讯、手眼标定坐标转化、运动控制以及反馈信息处理四部分,其总体流程简图如图5所示。
图5 软件模块工作流程图
其中深度图像处理部分完成了对蜗壳的识别与定位,而坐标转化部分则是要通过手眼标定来确定参数,将相机坐标系与机器人坐标系进行转化。
2 多目标空间位置识别
为了实现对于每层蜗壳物料的快速判别,本论文选用了利用结构光空间编码搭配双目视觉的方式来进行深度计算的3D相机。其具体原理是通过结构光投射器将结构光投射到待测物体表面,再通过红外摄像头接收物体表面反射回的结构光图案进行深度测量,最终得到的图像单通道十六位,每一个像素点的值都如图6所示,代表着图像中该点到相机光学中心所在平面的直线距离。
图6 深度图像像素值示意图
由于待识别物体材质为ABS/PP,最终物体表面所呈现出的颜色为黑色,在实际生产中可以看到识别效果如图7所示,对应的实物图像如图8所示。
图7 蜗壳料堆深度图像 图8 蜗壳料堆实物图像
图7中将噪声点置为黑色,非噪声点置为白色,可以看出蜗壳所在区域噪声较多,整个蜗壳区域近乎空洞,因此无法通过直接识别蜗壳的方式来判断蜗壳所在位置。针对此种情况,本文使用通过纸皮区域间接推断蜗壳位置的方法来判断蜗壳在图像中的位置,其识别流程如图9所示。
图9 识别流程简图
在相机安装时由于条件有限,因此无法很准确的使相机的光学中心所在的平面与水平平面平行,因此可以通过式(1)进行每个像素深度值的校正:
ZCij=Zij[1+(Xi-X0)sinθ+(Yj-Y0)sinφ]
(1)
式中,θ和φ分别表示偏置平面与水平平面X轴方向与Y轴方向的夹角,可以通过计算的方式获得;(X0,Y0)代表像素原点坐标;Zij代表图像中(Xi,Yi)坐标所对应的像素值,即图像当前坐标对应的深度值,最终得出的ZCij则为偏置校正之后的深度值。各变量如图10所示。
图10 图像偏置校正示意图 图11 蜗壳堆叠方式
在实际生产中蜗壳的堆叠方式为纸皮-蜗壳-纸皮,即每层蜗壳中间会有纸皮隔开,其堆放方式如图11所示。
由于RGB-D相机对黑色反光材质物体的识别效果较差,所以通过识别纸皮层高度来确定纸皮所在位置。具体做法为先将获取的深度图像进行偏置校正,再对纸皮所在的区域进行识别。在深度图像中可将像素点的类型分为纸皮所在皮面、噪声区域和其他平面3类,如图12所示蜗壳全都摆放在纸皮的上方且未超出纸皮所在的区域,因此在深度图像中蜗壳所在区域如图13所示为纸皮所在平面、噪声区域与其他平面的交集。
图12 相机与蜗壳相对位置示意图
图13 蜗壳所在区域判断图
在深度图像中为将纸皮所在平面与其他两区域分割开,如式(2)所示将纸皮区域记录下并将其图像中的像素值置为0,相应的将非纸皮区域对应的像素值置为255,再取纸皮区域与纸皮边缘所围成的矩形区域内像素值为255的区域取交集,即可得到蜗壳所在区域。
h=(z
(2)
式中,z0如图9所示为相机光心到下层纸皮的距离;z为当前像素点的深度值;Δh为判定是否为纸皮深度值的容许偏差,最终得出h为255时,则代表蜗壳区域,反之为0时则代表当前为纸皮区域。
获取的图像会有小的孔洞影响后续图像处理,并且纸皮边缘会有一定的倾斜度,为了不影响后续的腐蚀膨胀操作,应将纸皮以外的区域像素值均设为0,并去除区域面积小于500的孔洞,并利用式(3)所示回归直线的算法计算计算出纸皮区域四条边对应的逼近线,并将逼近线组成的封闭区域外部的所有点的像素值都置为0。
(3)
式中,a、b为计算所得回归直线方程系数;xi、yi为图像中黑白区域的交界点。
相较于图9而言,采用式(2)算法得到的二值图像如图14a所示,图中白色部分为蜗壳所在区域,黑色部分为纸皮所在区域。而经过式(3)的回归直线算法运算后其边缘逼近线的示意图如图14b所示,在经过处理后如图14c所示,此时图像中白色区域的分布情况就代表着蜗壳在图像中的分布情况。
观察图14c可以发现16个蜗壳并没有被分成16个连通域,边缘区域会有一定的重合,此时采用一定大小的核来进行腐蚀操作,将粘连在一起的蜗壳分开,每个连通域的外接圆圆心的坐标即为每个工件的中心像素坐标。
(a) 式(2)所得 二值图像(b) 式(3)所得 逼近线(c) 处理后的 二值图像
3 分层—分块的手眼标定方法
为实现像素-机器人坐标系的转化,还需要完成手眼标定模块。手眼标定大致可分为两种模式—即“眼在手上”与“手眼分离”,本研究中相机和机器人分别固定于天花板与地面,相机安装位置与机器人基座的相对位置不会发生变化,为“手眼分离”模式。相较传统的手眼标定而言,分块—分层的手眼标定方法可以将三维坐标系降为至二维,且整张图的标定区域更加细化,可以降低随机误差对标定结果的影响。
3.1 像素坐标系—机器人坐标系转化
在传统的相机标定中,像素坐标到世界坐标的转换可以分为3步4个坐标系,即像素—图像坐标系转换、图像坐标系—相机坐标系转换、相机坐标系—世界坐标系转换。其中图像坐标系—相机坐标系转换在使用CCD相机时可以将其等效为小孔成像模型来处理,其原理如图15a所示,将其简化为二维平面形式如图15b所示,坐标系XWO1YW-ZW为相机坐标系,坐标系X-O2-Y为图像坐标系,F为镜头焦点,f为焦距。
(a) CCD相机成像模型 (b) 相机成像简化二维模型
根据相似三角形原理可以得出式(4)。
(4)
式中,f代表镜头的焦距;SX、SY代表缩放系数,它的单位为fps/ms,通过上式可以将三维空间中的物体投射到二维成像平面中,而像素坐标系与图像坐标系其实位于同一平面且没有旋转关系,因此在X与Y方向分别加上两个偏移量CX与CY即可。
由于相机坐标系与机器人坐标系都是映射真实世界三维坐标的坐标系,因此两坐标系各坐标轴单位一致,且两坐标系之间的相对位置关系可以通过刚性变换来完成转换—即只通过平移-旋转的方式进行坐标变换。即式(4)所示相机坐标可以由机器人坐标左乘旋转矩阵并再加上一个平移向量所获得,写成齐次坐标的形式如式(5)所示。
(5)
综合上述可得出像素坐标系到机器人坐标系的转化为:
(6)
3.2 分块-分层标定法
在式(6)中,相机坐标系下的ZW由于蜗壳表面吸收结构光的特性,无法准确测出,所以传统的相机标定方法在此处效果较差。考虑到蜗壳摆放方式为纸皮—蜗壳—纸皮,最后一层则为高度固定的木托,蜗壳高度同样为定值,因此可以分层标定—即针对每一层蜗壳进行手眼标定,相应的坐标系转换的方式也有三维降至二维,不仅可以降低计算复杂度,也能尽量减少ZW对计算结果的影响。
在蜗壳一共有6层的情况下,可以将式(10)中的ZW分为ZW1~ZW66层6段,同时标定数据也分为6组,在对应的区间使用相应的标定数据如式(7)所示。
(7)
当蜗壳高度为h时,在区间(ZWi-0.5h,ZWi+0.5h]上使用第i组标定数据即Ri与Ti,其中Ri为旋转矩阵右乘缩放系数矩阵。针对每层的手眼标定本文提出了一种8区域分割的分块标定方法,即如图16a将待标定平面根据9个不同的顶点分为如图16b所示的8个区域,实际情况如图16c所示。
(a) 8个区域对 应的顶点 (b) 8个区域对应 区域示意图 (c) 8个区域对应 区域实际分布
根据不同的顶点将图像分为8个区域,每个区域都为三角形,这样可以用最少的约束点得到最多的区域。判断点是否在三角形区域内的方法如图17所示,设点P为目标点,对三角形ABC来讲,如图17a所示只要∠APB+∠APC+∠BPC=180°,即可认为点P在三角形ABC内部,反之则如图17b所示点P在三角形ABC外部。
(a) 目标点在三角形内部 (b) 目标点在三角形外部
而在实际标定时,考虑到目标检测过程是在深度图像中完成,因此本文利用深度图像完成了与工业机器人之间的手眼标定。
在实际操作时可以在每个区域选择3个特征点,对于深度图像来讲特征点可以使一些尖锐的角点。在记录下3个特征点在图像中的坐标(U1,V1)、(U2,V2)、(U3,V3),同时记录下机器人末端到达特征点所在位置时对应的机器人坐标(XC1,YC1)、(XC2,YC2)、(XC3,YC3),此时坐标之间的对应关系如式(8)所示,用3组对应的数据即可解出相应的R2×2与T2×1。
(8)
4 反馈定位与邻域抓取的设计
为解决系统在Z轴上定位不准确和防止抓取位置有偏差导致未成功抓起两种情况,本研究设计通过末端真空吸盘反馈定位Z轴坐标和邻域抓取的算法来解决上述问题。
如图18所示,所测纸皮平面在相机坐标系下对应的Z轴坐标值为Z1,在机器人坐标系下对应的Z轴坐标值为Z2,那么可以通过机器人Z坐标轴与相机Z轴的近似线性关系算出一个Z2的近似值,再人为加上一个合适的正值,得到一个稍大于Z2的值Z3。当机器人工装末端运动到对应的Z3时,此时末端的吸盘仍位于纸皮上方。减缓机器人的运动速度,令机器人的Z值缓慢地减小,逼近Z2,即吸盘逼近纸皮。当末端吸盘碰触到纸皮时,真空发生器的反馈开关动作,机器人侧会收到反馈信号,即确认工装末端吸附到的目标物。此时机器人的Z坐标即为Z2,程序中设定将此时的Z值记录下来并作为Z2传递给上位机,则在抓取本层物料时上位机都会以该Z2为基准来进行坐标传递。其程序流程图如图19所示。
图18 相机与末端吸盘示意图 图19 反馈抓取程序流程图
在有了物料上层纸皮的基准坐标后,由于纸皮的厚度很小,基本都在10~15 mm,而海绵吸盘上方都有弹簧作为缓冲装置,具有50 mm的缓冲余量,因此可以相对基准Z2坐标下压25~30 mm,保证可以顺利吸起蜗壳,同时在缓冲装置的保护下不会对末端吸附装置造成损坏。
由于识别后的坐标仍有可能与实际坐标有一定偏差,在机器人运动程序中加入了利用末端反馈机制实现的邻域测试过程。该过程以识别结果的坐标为起点,以25 mm为步长,在坐标周围的平面内额外寻找8个位置,最多会对9个位置进行吸取测试,如图20所示。在每个目标点机器人的具体动作如下:到达目标点上方,启动吸盘并以低速接近目标点,下降一个固定的距离(25~30 mm),此时判断是否吸取到目标物,若已吸到,则中断整个邻域测试过程,抬起目标物离开来料区;若未吸到,则抬起相同的距离,前往下一个目标点进行下一次测试。若重复9次该过程仍无吸取到目标物,则说明识别的结果有较大偏差。
图20 邻域测试顺序(俯视图)
5 拆垛实验结果
对图14c采用半径为70的圆形核进行腐蚀操作后得到的图像如图21a所示,可以看出此时图像中有16个属于蜗壳的连通域,将16个连通域的轮廓分别提取出来,再求出每个轮廓的最小外接圆,每个外接圆圆心的坐标即代表每个蜗壳在图像中的坐标,其结果如图21b所示。再对每个蜗壳的图像坐标进行坐标系的转化,就可以得出每个蜗壳对应在机器人坐标系下的坐标。
(a) 腐蚀后的图像 (b) 每个连通域对应外接圆示意图
在预设末端反馈机制的情况下,本系统的定位误差容许范围为25 mm,将物料堆叠层数设置为6层,物料容许摆放区域范围设为1.3 m×1.3 m,机器人运行速度设为机器人最大速度的60%。
在使用了分块—分层的手眼标定方法并增加了机器人末端反馈机制的情况下,系统抓起成功率达到了100%,其中不包含因末端海绵吸盘磨损而掉落的情况。随机选取某次计算出的蜗壳所在坐标与实际蜗壳所在坐标进行对比,图22为第1层到第6层每层计算点与实际点坐标分布情况,其中第1到6层分别对应机器人的6个不同Z值,分别为Z1=-384 mm,Z2=-164 mm,Z3=56 mm,Z4=276 mm,Z5=496 mm,Z6=716 mm,图23为计算点与实际点在空间位置中的分布情况。
图22 6层物料手眼标定计算点与实际点对比
图23 手眼标定计算点与实际点对比 图24 手眼标定坐标计算点与实际点误差图
图中可以直观地看出计算出的点的位置和实际点位相差很小,在进行6层96次抓取后,手眼标定计算点与实际点之间的平均偏差为7.6 mm,标准差为2.91 mm。在搭配末端反馈机制的情况下是完全满足物料抓取要求的,同时也不会出现漏识别或者多识别的现象,完全可以满足自动化码垛的需求。
6 结束语
本文基于RGB-D深度相机与6轴关节工业机器人开展智能拆垛系统研究,具体研究成果包含如下:
(1)通过对纸皮平面、噪声区域和其他平面的判别,实现了对深度图像中蜗壳所在位置的定位与识别,可以准确的计算出蜗壳外接圆圆心像素坐标;
(2)利用机器人反馈的Z方向高度,完成了料堆的分层,将难以获取的三维信息以二维的形式分层获取,在空间上的降维降低了标定算法的复杂度,并采用每层分块标定的方式降低了随机误差对手眼标定准确度的干扰;
(3)开展6层料堆拆垛实验,可成功抓起全部蜗壳,对比分析手眼标定计算坐标点与实际抓取点位坐标可实现抓取定位偏差平均值为7.6 mm,标准差值为2.91 mm。