1.本发明涉及机械手技术领域,尤其涉及一种基于视觉的二指机械手工件抓取方法及系统。
背景技术:2.随着深度传感器的引入,基于深度相机的rgb-d图像被广泛用于视频和图像处理方面,传统的模板匹配等方法引入深度信息后,极大提高了基于视觉的物体抓取的精度。特别是将深度学习网络应用于机械手物体抓取以后,抓取的精度进一步得到提高。
3.工业场景下的物体抓取背景较为简单,且被抓取物体单一。基于深度学习的物体定位和识别方法在应用时,需要训练模型,合理调整参数,且深度学习方法对平台的运算能力要求较高,且不能满足实时性要求。一般来说,工业场景下广泛应用的工控计算机和嵌入式设备,计算机能力并不能满足深度学习网络的部署要求。
技术实现要素:4.技术目的:针对现有技术中的缺陷,本发明公开了一种基于视觉的二指机械手工件抓取方法及系统,解决了工业场景下工控计算机和嵌入式设备的计算机能力不能满足深度学习网络的部署要求,从而无法实现工件抓取的问题。
5.技术方案:为实现上述技术目的,本发明采用以下技术方案。
6.一种基于视觉的二指机械手工件抓取方法,包括以下步骤:
7.采用图像配准方法确定被抓取工件的粗略位置,并提取目标区域,控制二指机械手移动到被抓取工件上方;
8.根据提取目标区域与预设的遮罩模板匹配,根据遮罩图像确定被抓取工件的精确位置和最优的抓取位姿;
9.采用贝塞尔曲线确定二指机械手运动轨迹,将工件从工件抓取区放置在目标位置;
10.重复上述步骤,直至检测不到待抓取工件。
11.优选地,所述图像配准方法包括深度相机拍摄工件抓取区后输出rgb-d图像后,结合给定工件的图像,提取orb特征,并提取目标区域,进而实现图像配准;所述图像配准方法具体过程为:
12.深度相机拍摄工件抓取区后输出rgb-d图像;
13.对rgb-d图像进行orb特征识别;在orb算法中引入图像金字塔技术,对rgb-d图像进行orb特征识别;
14.提取目标区域:确定待抓取工件的几何中心后提取目标区域;
15.根据工件在机械臂坐标系中的几何中心坐标,控制机械臂的末端执行器二指机械手移动至该工件上方。
16.优选地,所述根据提取目标区域与预设的遮罩模板匹配,根据遮罩图像确定被抓
取工件的精确位置和最优的抓取位姿;包括:根据预设阈值生成被抓取工件的二值化图像,构建遮罩图像集合;根据二值化图像和遮罩图像集合确定被抓取工件的精确位置和最优的抓取位姿。
17.优选地,所述根据预设阈值生成被抓取工件的二值化图像,包括:设定深度相机距离工件的表面距离阈值为h,根据h及提取目标区域生成待抓取工件的二值化图像m,二值化图像m的每个像素值计算公式为:
[0018][0019]
其中,h(x,y)为图像坐标系(x,y)处的深度信息。
[0020]
优选地,所述构建遮罩图像集合过程为:按照二指机械手剖面俯视图制作遮罩图像a0,将遮罩图像a0旋转π/n(i=1,
…
,n),产生遮罩图像集合ai(i=0,
…
n)。
[0021]
优选地,所述根据二值化图像和遮罩图像集合确定被抓取工件的精确位置和最优的抓取位姿,包括:
[0022]
根据遮罩图像集合ai(i=0,
…
n)以及待抓取工件区域二值化图像m,卷积运算公式为:
[0023]gi
=(ai·
m)
·g[0024]
其中,
·
代表卷积运算,g代表高斯卷积核,gi为第i个遮罩图像与抓取目标形成的目标函数;
[0025]
根据卷积运算公式构造目标函数
[0026][0027]
其中,[x
*
,y
*
]
t
即为最优抓取位置在图像坐标系下的坐标,i
*
为获取最优抓取坐标时对应的遮罩图像编号,g={g0,g1,
…
,gn}为集合形式的目标函数;
[0028]
计算出来的最大值参数[x
*
,y
*
,i
*
],由图像坐标系坐标[x
*
,y
*
]
t
和内参矩阵得到相机坐标系下的坐标进而计算得到机械臂坐标系下的最优抓取坐标,根据α=πi
*
/n得到机械臂末端二指机械手旋转的角度,即α=πi
*
/n为最优的抓取位姿。
[0029]
优选地,所述采用贝塞尔曲线确定二指机械手运动轨迹,将工件从工件抓取区放置在目标位置,包括:根据被抓取工件的精确位置和最优的抓取位姿,二指机械手抓取工件,根据贝塞尔曲线确定的二指机械手运动轨迹,将工件从工件抓取区放置在目标位置,即传送带上,采用能量最小的五次贝塞尔曲线,将抓取位置和目标位置之间的线段使用一次贝塞尔曲线描述,为g(u),u∈[0,1],计算该线段的中点z0,设定能量最小的目标函数为:
[0030][0031]
其中,f(u)为待优化贝塞尔曲线,f
(1)
(u)为待优化贝塞尔曲线的一次导数,α1,α2,α3为权重因子,满足α1+α2+α3=1;求解目标函数,得到最优能量的五阶贝塞尔曲线。
[0032]
优选地,所述根据二值化图像和遮罩图像集合确定被抓取工件的精确位置和最优的抓取位姿,包括:
[0033]
根据遮罩图像集合ai(i=0,
…
n)以及待抓取工件区域二值化图像m,按位与运算
公式为:
[0034]gi
=(ai*m)
·g[0035]
其中,*表示按位与运算,g代表高斯卷积核,gi为第i个遮罩图像与抓取目标形成的目标函数;
[0036]
根据按位与运算公式构造目标函数
[0037][0038]
其中,[x
*
,y
*
]
t
即为最优抓取位置在图像坐标系下的坐标,i
*
为获取最优抓取坐标时对应的遮罩图像编号,g={g0,g1,
…
,gn}为集合形式的目标函数;
[0039]
计算出来的最大值参数[x
*
,y
*
,i
*
],由图像坐标系坐标[x
*
,y
*
]
t
和内参矩阵得到相机坐标系下的坐标进而计算得到机械臂坐标系下的最优抓取坐标,根据α=πi
*
/n得到机械臂末端二指机械手旋转的角度,即α=πi
*
/n为最优的抓取位姿。
[0040]
优选地,所述采用贝塞尔曲线确定二指机械手运动轨迹,将工件从工件抓取区放置在目标位置,包括:根据被抓取工件的精确位置和最优的抓取位姿,二指机械手抓取工件,根据贝塞尔曲线确定的二指机械手运动轨迹,将工件从工件抓取区放置在目标位置,即传送带上,采用能量最小的五次贝塞尔曲线,将抓取位置和目标位置之间的线段使用一次贝塞尔曲线描述,为g(u),u∈[0,1],计算该线段的中点z0,在参数域u∈[0,1]上均匀采样ω次,设定能量最小的目标函数为:
[0041][0042]
其中,p1,p2,p3,p4为除去首末控点外的其余四个控点;f(u)为待优化贝塞尔曲线,f
(1)
(u)为待优化贝塞尔曲线的一次导数,α1,α2,α3为权重因子,满足α1+α2+α3=1,f(uj)为第j个采样点在待优化贝塞尔曲线上对应的值,g(uj)为第j个采样点在一次贝塞尔曲线上的对应值,δu为采样间隔,ω为采样次数;求解目标函数,得到最优能量的五阶贝塞尔曲线。
[0043]
一种基于视觉的二指机械手工件抓取系统,用于实现以上任一所述的一种基于视觉的二指机械手工件抓取方法,包括机械臂、二指机械手、控制箱、深度相机、传送带和工件抓取区;所述机械臂的末端设置二指机械手,二指机械手用于从工件抓取区抓取工件至传送带上,深度相机设置于工件抓取区上方,用于输出工件抓取区域的rgb-d图像,控制箱中内置图像配准和轨迹规划用计算机平台。
[0044]
有益效果:本发明使用图像配准的方法估计被抓取工件的粗略位置,有效的提高了定位的速度;进而在估计最优抓取位姿时,使用遮罩模板的方法再一次精确估计工件的定位;在二指机械手移动时采用能量最优的五次贝塞尔曲线作为移动路径,能够有效提高抓取的效率。
附图说明
[0045]
图1为本发明的方法流程图;
[0046]
图2为本发明的抓取位姿遮罩模板设计示意图;
[0047]
图3为本发明的遮罩图像示意图;
[0048]
图4为本发明的系统结构示意图。
具体实施方式
[0049]
以下结合附图和实施例对本发明的一种基于视觉的二指机械手工件抓取方法及系统做进一步的说明和解释。
[0050]
如附图1所示,一种基于视觉的二指机械手工件抓取方法,包括以下步骤:
[0051]
s1、采用图像配准方法确定被抓取工件的粗略位置,并提取目标区域,控制二指机械手移动到被抓取工件上方;图像配准方法包括深度相机拍摄工件抓取区后输出rgb-d图像后,结合给定工件的图像,提取orb特征,并提取目标区域,进而实现图像配准;
[0052]
在深度相机拍摄工件放置目标区域后输出rgb-d图像前,需要采用标定板对深度相机和二指机械手进行手眼标定,手眼标定的过程为:布置好抓取设备及场景后,使用标定板进行相机和二指机械手的手眼标定,获取内参矩阵和外参矩阵。其中,内参矩阵用于完成二维图像到相机坐标系的映射;外参矩阵用于完成相机坐标系到机械臂坐标系的映射。实际上,只要固定了机械臂底座,确定了工件放置目标和工件抓取区的位置,就确定了它们的坐标,下面只需要确定待抓取工件的位置即可。值得注意的是,手眼标定可在安装固定好机械臂等设备后进行一次即可,需要的时候可再标定。
[0053]
抓取设备及场景的布置过程为:工件抓取区散乱存放多个工件。深度相机垂直放置在工件抓取区上方,用于获取和输出工件抓取区域中的rgb-d图像。工件放置目标区域位于传送设备或运输设备上,如传送带上,位置固定。机械臂的末端为二指机械手,用于抓取工件,且二指机械手的转动轴始终与工件抓取区域垂直,可进一步降低位姿估计的变量个数。
[0054]
s1的具体步骤为:
[0055]
s11、深度相机拍摄工件抓取区后输出rgb-d图像;
[0056]
s12、对rgb-d图像进行orb特征识别:在orb算法中引入图像金字塔技术,对rgb-d图像进行orb特征识别。考虑到每次抓取的目标个数为1个,因而,每次只要识别出1个目标即可。工件抓取区的工件摆放方向是任意的,在识别的时候,需要特别注意旋转不变性,另外,考虑到实施视觉抓取和机械臂控制的控制器主要是cpu,因此考虑提取orb特征进行识别。orb(oriented fast and rotated brief)算法是一种快速特征点提取和描述的算法,主要检测ofast特征点,然后使用rbrief描述符进行描述,其中rbrief具有旋转不变性的特性。本发明中为了进一步加快识别速度,在orb算法中还引入了图像金字塔技术。本发明中使用了高斯金字塔技术,制作四层金字塔,在配准时先使用低分辨率的层进行粗配准,然后再使用高分辨率的层。金字塔分层搜索逐步缩小配准范围,大大提高配准速度。
[0057]
s13、提取目标区域:确定待抓取工件(以下简称工件)的几何中心后提取目标区域;orb特征提取算法能够满足使用cpu场景下的快速识别。当识别出一个工件作为待抓取工件时,计算该工件的在图像坐标系下的几何中心gj,并映射到机械臂坐标系中为gw,作为待抓取工件的粗略位置。同时提取待抓取工件的图像,即提取目标区域,用于接下来的最优抓取角度估计;
[0058]
其中,几何中心gj的计算过程为:待抓取工件的识别出来后,在工件周围建立矩形框,根据矩形框四个顶点确定工件在图像坐标系下的几何中心。
[0059]
s14、根据工件在机械臂坐标系中的几何中心坐标gw,控制机械臂的末端执行器二指机械手移动至该工件上方。
[0060]
本发明采用orb算法,根据已有的参考文献,orb特征提取和配准可以应用于大多数设备中,包括智能手机中,根据本发明的实验结果,在不使用gpu加速的情况下,在64位cpu和4g内存的机器上可控制在0.02s左右得到识别结果。
[0061]
s2、根据提取目标区域与预设的遮罩模板匹配,根据遮罩图像确定被抓取工件的精确位置和最优的抓取位姿;包括:根据预设阈值生成被抓取工件的二值化图像,构建遮罩图像集合;根据二值化图像和遮罩图像集合确定被抓取工件的精确位置和最优的抓取位姿;
[0062]
如附图2所示,在抓取时,深度相机除能够获得待抓取区域的图像外,还能够获得待抓取工件的深度信息。假设相机坐标系中的点为pc=[xc,yc,zc]
t
,都可根据外参矩阵映射到机械臂坐标系,即
[0063][0064]
因而只要找到最适合抓取的坐标点pc即可,pw为机械臂坐标系下的最优抓取坐标,为外参矩阵中的旋转矩阵,wt为外参矩阵中的平移矩阵。
[0065]
具体步骤为:
[0066]
s21、根据预设阈值生成被抓取工件的二值化图像:设定深度相机距离工件的表面距离阈值为h,根据h以及提取目标区域生成待抓取工件的二值化图像m,二值化图像m的每个像素值由式(2)确定:
[0067][0068]
其中,h(x,y)为图像坐标系(x,y)处的深度信息。
[0069]
s22、构建遮罩图像集合:按照二指机械手剖面俯视图制作遮罩图像a0,将遮罩图像a0旋转π/n(i=1,
…
,n),产生遮罩图像集合ai(i=0,
…
n),n为预设自然数,在一些实施例中,取值为18。附图4所示遮罩图像为二值化图像,黑色部分代表像素值为0,白色部分代表像素值为1。
[0070]
s23、根据二值化图像和遮罩图像集合确定被抓取工件的精确位置和最优的抓取位姿;
[0071]
如附图3所示,根据遮罩图像集合ai(i=0,
…
n)以及待抓取工件区域二值化图像m,按照式(3)进行卷积运算,
[0072]gi
=(ai·
m)
·gꢀꢀꢀ
(3)
[0073]
其中,
·
代表卷积运算,g代表高斯卷积核,gi为第i个遮罩图像与抓取目标形成的目标函数。
[0074]
根据式(4)构造目标函数
[0075][0076]
其中,[x
*
,y
*
]
t
即为最优抓取位置在图像坐标系下的坐标,i
*
为获取最优抓取坐标
时对应的遮罩图像编号,g={g0,g1,
…
,gn}为集合形式的目标函数;
[0077]
当有多个最大值时,选择与几何中心gj之间的欧式距离最小的值。
[0078]
根据式(4)计算出来的最大值参数[x
*
,y
*
,i
*
],由图像坐标系坐标[x
*
,y
*
]
t
和内参矩阵得到相机坐标系下的坐标进而根据式(1)得到机械臂坐标系下的最优抓取坐标pw,根据α=πi
*
/n得到机械臂末端二指机械手旋转的角度,即α=πi
*
/n为最优的抓取位姿。
[0079]
s3、采用贝塞尔曲线确定二指机械手运动轨迹;根据被抓取工件的精确位置和最优的抓取位姿,二指机械手抓取工件,根据贝塞尔曲线确定的二指机械手运动轨迹,将工件从工件抓取区放置在目标位置,即传送带上。
[0080]
针对抓取位置和目标位置之间的路径,本发明采用点到点的二指机械手轨迹规划,采用能量最小的五次贝塞尔曲线连接。在机械臂坐标系下,将抓取位置和目标位置之间的线段使用一次贝塞尔曲线描述,即一次贝塞尔曲线表示的线段设为g(u),u∈[0,1]。计算该线段的中点z0。设定能量最小的目标函数为:
[0081][0082]
其中,f(u)为待优化贝塞尔曲线,本发明中采用五次贝塞尔曲线,即f(u)为待优化五次的贝塞尔曲线,f
(1)
(u)为待优化贝塞尔曲线的一次导数,α1,α2,α3为权重因子,满足α1+α2+α3=1。求解该无约束优化问题,可得到最优能量的五阶贝塞尔曲线。
[0083]
本发明的二指机械手位姿估计中,主要涉及两个方面,待抓取工件的最优坐标,以及机械手旋转的最优角度。位姿估计通过式(3)确定,针对像素级别的计算复杂度为μ2·
ν2·
n,其中μ和ν分别是二值化图像的长和宽。本发明的方法在实验中,针对640
×
480的8位分辨率图像,抓取位姿估计约为0.22s。
[0084]
考虑到遮罩图像和提取后的图像均作了二值化处理,在计算时为进一步加快速度,可将式(3)优化更改为式(6):
[0085]gi
=(ai*m)
·gꢀꢀꢀ
(6)
[0086]
其中,*表示按位与运算。
[0087]
优化运算较为耗时,为了能够进一步提高优化的效率,可进一步改进能量最优的贝塞尔曲线优化方案,改积分目标函数为求和目标函数,具体做法为,在参数域u∈[0,1]上均匀采样ω次,式(5)则优化为:
[0088][0089]
其中,p1,p2,p3,p4为除去首末控点外的其余四个控点,用于控制贝塞尔曲线轮廓,不在贝塞尔曲线上,首末控点因与抓取最优位置和放置目标位置重合而不需要优化,其中,抓取最优位置为首控点,放置目标位置为末控点;f(u)为待优化贝塞尔曲线,f
(1)
(u)为待优化贝塞尔曲线的一次导数,f(uj)为第j个采样点在待优化贝塞尔曲线上对应的值,该值为四个控点的函数,g(uj)为第j个采样点在一次贝塞尔曲线上的对应值,δu为采样间隔。本发明的方法在实验中,取ω=50可以将计算时间降低至0.03s。
[0090]
s4、重复步骤s1至s3,直至检测不到待抓取工件。
[0091]
本发明考虑工业抓取场景,对工业场景中的多个单一工件进行抓取,背景较为简单,使用图像配准的方法估计被抓取工件的粗略位置,有效的提高了定位的速度;进而在估计最优抓取位姿时,使用遮罩模板的方法再一次精确估计工件的定位;在二指机械手移动时采用时间最优的规划方法,二指机械手移动时采用能量最优的五次贝塞尔曲线作为移动路径,能够有效提高抓取的效率。
[0092]
本发明使用的算法简单容易实现,能够有效的减低计算复杂度,能够应用于计算和处理能力不足的工业场景,能够在并行计算能力较弱的工控计算机和嵌入式设备上执行,如支持cpu运算。本发明的方法在标准的cpu设备上运行后,可将从识别至工件放置在传送带上的总体时间控制在0.3秒以内,完全能够支持实时完成抓取任务。
[0093]
一种基于视觉的二指机械手工件抓取系统,包括机械臂、二指机械手、控制箱、深度相机、传送带和工件抓取区;所述机械臂的末端设置二指机械手,二指机械手用于从工件抓取区抓取工件至传送带上,深度相机设置于工件抓取区上方,用于输出工件抓取区域的rgb-d图像。控制箱内可中内置图像配准和轨迹规划用计算机平台,该平台可根据情况配置为工控计算机或者嵌入式处理器。如附图4所示,工件抓取区散乱存放多个工件。深度相机垂直放置在工件抓取区上方,用于获取和输出工件抓取区域中的rgb-d图像。工件放置目标区域位于传送设备或运输设备上,如传送带上,位置固定。机械臂的末端为二指机械手,用于抓取工件,且二指机械手的转动轴始终与工件抓取区域垂直,可进一步降低位姿估计的变量个数。
[0094]
以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。