基于机器视觉的Baxter机器人抓取算法研究*
2021-09-28饶期捷黄海松张松松
饶期捷,黄海松,张松松
(贵州大学现代制造技术教育部重点实验室,贵阳 550025)
0 引言
随着科学技术的飞速发展,人类迎来了人工智能时代,机器人的应用场景也伴随着人工智能技术的发展,逐步进入医疗救援、家政服务、地质勘探、工业制造等领域。中国制造2025概念的提出,更使智能制造体系顺应新的工业环境而建立,但传统的工业机器人已经无法满足智能制造体系。传统的机器人抓取只能进行简单重复的结构化动作,而新型智能协作式机器人通过与人工智能技术的结合,能满足柔性灵活抓取需求,提升抓取作业的稳定性和生产效率。因此研究基于新型智能协作式机器人的灵活抓取对推进中国制造2025的进程有着重要的研究意义和巨大的应用前景。
机器视觉是通过光学的装置和非接触的传感器自动的接受和处理一个真实物体的图像,以获得所需信息或用于控制机器人运动的装置[1-4]。作为一门交叉性学科,机器视觉技术涵盖图像处理技术、人工智能技术、计算机科学和自动化领域[5]。通过模拟人的视觉,使机器人完成自主检测和控制等功能,近年来,机器视觉凭借其高精度、高效率、非接触式、易于集成等优势,在智能制造方向扮演着重要的角色。本论文通过研究双臂智能协作机器人Baxter的系统组成和工作原理,结合机器视觉技术,在ROS(robot operating system)平台下开发基于智能协作机器人Baxter的目标抓取算法。
算法研究的主要任务是通过改进的机器人抓取检测算法控制协作式机器人Baxter完成对指定工作区域的目标物件检测,同时将识别出来的各类别物件抓取放置到置物托盘中,并通过实验验证抓取任务的准确性和鲁棒性。重点针对任务过程中的图像预处理和物件识别模块使用的算法进行研究和改进,从而提升抓取过程总体的运行速度、准确性和鲁棒性,以满足智能制造体系生产的实际需求。
1 机器人抓取
1.1 抓取任务流程
物件目标抓取任务过程结构如图1所示,开启机器人手部摄像机,控制机器人手臂移动到工作台上方。目标抓取任务包括场景图像感知、目标物件位置识别、物件抓取定位、机械臂抓取及放置四个模块。场景图像感知部分通过机器人手部相机获得工作场景的实时彩色图像后,通过ROS传输给计算机进行图像预处理。目标物件位置识别模块通过输入预处理后的图像,基于本文提出的抓取检测算法,识别出待抓取的目标物件以及抓取物件后的放置托盘位置。物件抓取定位模块获取物件在像素坐标中的坐标信息后,通过手眼标定的方法,将像素坐标转换为物体在机器人基坐标系下的坐标。机械臂抓取及放置模块基于上文得到的待抓取物件坐标信息,通过反向动力学将坐标信息转化为机器人7个关节的运动位置信息,进而控制机器人的手臂及其末端执行器完成抓取任务。
图1 抓取任务过程结构图
1.2 Baxter机器人
本文采用的机器人是美国 Rethink Robot 公司于2012年首次推出一款双臂智能协作机器人Baxter机器人完成灵活抓取任务[6]。该机器人是世界上首款制造级的人形机器人,也是目前全球应用最广泛的双臂机器人,全球已经有27个国家的实验室、大学和研发中心采用Baxter机器人作为研究平台。在我国,由于对相关领域的研究较晚以及各项条件的限制,目前只有少数高等院校和科研院所具备使用智能协作机器人进行相关研究[7]。Baxter机器人拥有多种类型的末端执行器如图2所示,在本文中使用平行夹爪作为抓取的末端执行器。手爪由Baxter机器人内置的伺服机控制手爪的张开与闭合,并通过Baxter API完成对手爪的编程操作。
(a) 平行夹爪 (b) 气动力吸盘
(c) 壁虎式夹爪图2 Baxter机器人末端执行器
Baxter机器人的左右机械臂由7个独立的旋转运动关节串联而成,如图3所示,其各关节转角、转速和力矩参数如表1所示。
图3 Baxter机器人关节图
表1 关节转动范围
2 目标物件位置识别
本文为了提升目标物件位置和放置托盘位置识别的准确性,采用的机器人抓取检测算法是改进的Canny算法和Hough变换算法相结合的方法。并使用二次定位的方式进一步提升识别结果的准确性[8]。
2.1 边缘检测
文献[9]提出的Canny边缘检测算法是从不同视觉对象中提取有用的结构并大大减少待处理的数据量的一门方法。Canny边缘检测算法可以分为以下5个阶段[10-12]:
第1阶段:使用高斯滤波器与图像进行卷积,用以平滑图像消除噪声,高斯滤波器核的生成方程式如下:
(1)
1≤i,j≤(2k+1)
(2)
第2阶段:使用边缘检测的算子计算图像中所有像素点水平Gx和垂直Gy方向的一阶导数值,由此确定像素点的梯度G和方向θ。G和θ计算公式为:
(3)
θ=arctan(Gy/Gx)
(4)
第3阶段:应用非极大值抑制,消除边缘检测造成的杂散响应,相关伪代码如下:
11:function ELIMINATE(Gp,Gp1,Gp2)2:result←03:edge←04:if Gp>Gp1 and Gp>Gp2 then5:edge←Gp6:else7:result←18:end if9:return result,edge10:end function
其中Gp1和Gp2分别表示像素点P1和P2的梯度线性插值。
第4阶段:应用双阈值检测确定真实和潜在的边缘。
第5阶段:通过抑制孤立的弱边缘完成最终的边缘检测。
由上文算法流程可知,在使用Canny边缘检测算法过程中,对平滑滤波方差、高低阈值这3个参数的设定是图像处理的关键。尤其是在对双阈值的处理过程中,阈值参数过高会造成边缘断裂和不连续的显现;阈值参数设置过低则会导致出现较多的虚假边缘。因此,本文针对传统Canny边缘检测算法原理和缺陷进行研究分析,结合抓取图像的特点,对Canny算子进行了改进,针对高低阈值设定这一方面,使用Otsu算法替代传统的人工设置,通过实现双阈值的自适应获取改进生成的边缘图像的清晰度。
最大类间方差法(Otus)是一种可以根据图像的灰度直方图信息自适应确定阈值的方法,用于在类间方差最大的情形。该算法的基本思想是存在阈值Ω把采集到的图像像素划分为C1(小于Ω)和C2(大于Ω)两类,设图像灰度级为k,两类像素的均值分别为m1和m2,全局的图像像素均值为MG。同时像素被分为C1和C2两类的概率分别为p1、p2,因此存在下列公式:
P1×M1+P2×M2=MG
(5)
P1+P2=1
(6)
其中,
(7)
(8)
(9)
其次灰度级k的累加均值M和图像全局均值MG分别为:
(10)
(11)
将公式(10)、公式(11)带入类间方差表达式最终得出:
(12)
根据公式(12)通过遍历搜索、计算上述公式最大化的灰度级k,即能实现自适应获取最优的高低阈值,进而提升生产的边缘图像的清晰度,改进前后检测效果如图4所示。
(a) 改进前 (b) 改进后图4 边缘检测对比图
2.2 目标物件检测
霍夫变换是一种用于图像分析,计算机视觉和数字图像处理的特征提取技术。该技术的目的是通过投票程序找到特定类别的形状中对象的不完美实例。该投票过程是在参数空间中执行的,在该参数空间中,由所谓的累加器空间中的局部最大值获得对象候选,累加器空间由用于计算霍夫变换的算法明确构造。本文在传统的Hough检测技术的基础上,加以改进,实现对目标工件的检测与定位[13-16]。
直线在参数空间中的方程为:
(13)
圆在参数空间中的方程为:
r2=(a-x)2+(b-y)2
(14)
并且由于实际工厂的生产过程检测现场存在较为复杂的光线干扰,例如灰尘、强光、昏暗等,导致采集到的图片较为昏暗,因此本文使用一种新型的自适应亮度调节的办法,对采集的图像进行亮度的调整,通过设定像素阈值x,实现当图像过于昏暗或亮度过高时自动对图像进行调整,以增强目标工件在采集图像中的辨识度。
像素点亮度计算公式为:
(15)
其中,F(x,y)表示平均像素值;R(x,y)、G(x,y)、B(x,y)分别表示各个通道的像素值。
为解决实验过程中识别圆形目标时易出现的误判现象,本文依据圆形物体所独有的圆心到圆边任意点距离相等的几何特性,增加在圆形边缘上选取的散点样本的数量并将散点样本的数量设置为参数空间中的阈值,用以解决对非圆形目标的误判。改进前后图形对比如图5所示。
(a) 改进前 (b) 改进后图5 目标检测对比图
3 物件抓取定位
Baxter机器人的双机械臂末端设置有红外感测装置和摄像头,因此本文设计基于手眼系统的灵活抓取算法,并通过内嵌的摄像头采集工作台上实时画面,获取目标物体中心点像素坐标,并通过一系列坐标计算变换,引导并控制机器人的手臂运动到指定位置,进而对工作台上的工件进行灵活抓取。
3.1 坐标系关系
Baxter机器人基坐标系、手臂末端坐标系及末端执行器坐标系之间位置关系如图6所示。
图6 坐标系位置关系图
通过分析Baxter机器人手部红外、摄像头采集到的Baxter双臂的末端执行器到置物托盘和工作台的高度与角度,建立待检测目标相对相机坐标系的转换矩阵、相机坐标系相对机械臂末端坐标系的转换矩阵以及机械臂末端坐标系相对机器人基坐标的转换矩阵。
3.2 手眼相机标定
为了使用Baxter机器人的手部摄像机找到目标的位置,必须知道从相机到物体的距离以及该距离处的像素宽度,因此本文采用RAC标定法[17],并执行以下实验以查找相机的校准因子。如图7所示单独的图像只能得出图像点的角度。
图7 坐标系投影示意图
因此本文在实验过程中准备了一个如图8所示的靶,该靶由24个分布于6×4网格,其中间间隔为4 cm的2 cm正方形组成。将其放置在距离相机不同距离的位置,并对图像进行分析以找到每个正方形的中心(以像素为单位)。将每个图像都转换为灰度图像。用于将灰度图像转换为黑白图像以及触摸图像的所有黑色区域的强度阈值。面积阈值用于去除图像中心的黑色小区域,从而保留目标正方形。在找到每个目标正方形的中心并用圆盘标记中心的情况下,将正方形转换为灰色,产生结果如图8所示,通过对结果的分析得出,相机在1m处的校准系数为每像素2.5 mm。
图8 相机标定图
3.3 手眼相机标定
在分拣系统的设计过程中,本文设定机械臂末端执行器位姿于工作台桌面垂直向上方位并保持分拣过程中机械臂手臂高度固定的方法,将原本采集图像像素坐标到Baxter机器人的三维工作空间坐标系的转换简化为二维平面的工作空间坐标系转换。通过Baxter机器人手部的红外传感器可测出末端到工作台桌面的距离,结合摄像机标定系数,利用公式(16)可以实现图像坐标系与Baxter机器人末端执行器坐标系之间的转换[18]。
α=(β-γ)×Cc×d+Pa+O
(16)
其中,α表示机器人基坐标系下的坐标;β表示相机坐标系下的像素坐标;γ表示相机图像中心点像素的坐标;Pa表示Baxter机械臂的位姿;Os表示Baxter机械臂末端执行器与手部摄像头在x,y坐标系下的偏移量;Cc表示相机校准系数;d表示摄像头到工作台的距离。
4 实验
机器人灵活抓取的工作流程,分为以下几个步骤。
步骤1:启动Baxter机器人,控制Baxter机器人的机械臂移动到工作区域正上方如图9所示,并保持手臂垂直向下,同时开启机械臂末端执行器的摄像头。
图9 Baxter机器人工作状态图
步骤2:使用末端执行器上的摄像机采集工作台上的实时场景图像,并通过机器人操作系统将采集到的图像信息实时传递回计算机,其中场景采集图像和以及ROS系统中Baxter机器人采集图像和计算机进行实时传递过程中,用于发布和订阅图像信息的robot、Baxter_cams、cameras 3个节点之间的关系如图10b所示。
(a) 实时图像(b) ROS节点图图10 采集图像及ROS节点图
步骤3:通过Hough算法识别出工作台上的目标物件,并计算出物件的质心坐标,同时对质心坐标处于托盘区域的目标物件进行剔除防止重复夹取的状况出现。
步骤4:通过Canny算法对预处理后的图像进行边缘检测,识别出相应的物件放置区域中心,并对检测出的物件放置托盘进行划分,如图11所示。
图11 中心识别及托盘区域划分图
步骤5:Baxter机器人执行抓取任务,并自动调整夹持器角度,避免抓取过程对目标物件周围临近的物件造成碰撞,影响被碰撞物件的抓取。
实验开始,将多种物品随机摆放在工作台的随机位置上,按照上述抓取任务流程进行10次反复试验,执行抓取的过程中,多目标任务的抓取原则为摄像头采集图像最右上端的物件,并重复抓取动作直至所有被检测物件都放置到托盘区域。如果出现抓取失败的情况,程序自动结束并提示抓取失败。10次抓取实验的成功率均为100%,但是10次实验中出现了部分目标物件未识别的情况目标物件的总体识别率在90%~100%之间,该实验结果证明了本文提出的基于机器视觉的Baxter机器人灵活抓取算法具有较好的鲁棒性和准确性。实验过程如图12所示。
图12 实验过程图
5 结束语
本文以双臂智能协作式机器人Baxter为研究对象,基于机器视觉技术,在ROS平台下,提出并实现了一种融合Canny边缘检测技术和Hough变换算法的机器人抓取检测方法。并在Baxter机器人上基于该算法进行了灵活抓取的实验验证,展示了基于Baxter机器人的完整灵活抓取流程。实验结果表明该方法具有较强的鲁棒性和准确性。该实验对国内智能协作式机器人的研究以及工业生产过程中的灵活抓取应用研究具有案例参考价值,并能够作为实现自主抓取应用的主要解决方案进行进一步研究。