雷锋网AI科技评论按:伯克利AI实验室最新发文公布了用于机器人抓取的Dexterity Network (Dex-Net) 2.0数据集,这些数据集可以用来训练根据实际机器人的点云做抓取规划的神经网络。
本文作者为加州大学伯克利分校博士后研究员Jeff Mahler。雷锋网全文翻译如下:
由于传感器噪声和遮挡的存在,物体的形状、位置和质量往往不能被精准确定,因此让机器人能够可靠地抓取各种不同的物体是很大的一项挑战。
Dexterity Network(Dex-Net)2.0是一个以鲁棒机器人抓取的物理模型为核心的项目,通过多达上千种3D CAD物体模型,生成了海量的平口钳抓取数据集。
这些数据集可以用来训练根据一个实际机器人的点云做抓取规划的神经网络,这个实体机器人可以拿取、运输各种物体。
为了提高重现性,助力将来的研究,在这里公开如下三个数据库:
1、Dexterity Network (Dex-Net) 2.0数据集:670万对带有鲁棒标签的合成点云和抓取数据。
2、Grasp Quality CNN (GQ-CNN)模型:在Dex-Net 2.0数据集中训练的1800万个参数。
3、GQ-CNN Python 程序包: 包含代码,可以复现我们用生成的数据训练GQ-CNN网络的结果。(点我打开)(注意下面的系统需求)
在这篇文章中,我们也概述了支持Dex-Net 2.0的方法,在实际机器人上的实验结果,以及数据集、模型和代码的细节。
关于Dexterity Network的研究论文和额外信息可以在这个项目的网站上找到。网址如下:https://berkeleyautomation.github.io/dex-net
Dex-Net是加州大学伯克利分校AUTOLAB实验室的研究项目,由Ken Goldberg教授指导。
抓取的背景
由于传感器噪声和遮挡,很难精确的推断物体的形状、位姿、材料、质量以及手指与物体之间接触点的位置等物理性质,因此让机器人能够抓取各种不同的物体很困难。
最近的研究结果表明,通过大量人类抓取标签(human grasp labels)或者真实系统上尝试抓取的数据训练的深度神经网络可以成功地对许多种不同的物体做抓取规划,甚至都不需要对被抓取的物体做清晰的建模,就像曾在计算机视觉领域里看到过的泛化结果一样。
然而,生成训练数据集可能需要耗费大量时间。
为了减少训练时间,可以利用云计算的方法,基于物理抓取模型对大量物体的网格模型快速进行抓取计算。
这些方法通过一个叫抓取鲁棒性(the grasp robustness)的参数来排序抓取动作,这个参数是通过力学模型预测出的抓取成功率。通过基于物体位置、表面摩擦等属性计算出的概率分布,判断抓取动作对任意的力和力矩的抵抗能力。
不过,这些方法对感知系统提出了很高的要求,需要能够完美地估算上述属性或是根据已知的高斯分布来估算属性。实际中的感知系统很缓慢,容易出错,可能不能很好地扩展到新的物体上。
尽管经过了30多年的研究,通过试探法(heuristics)进行抓取规划仍很常见,例如圆柱体探测(detecting cylinders)在家庭整理(home decluttering)和亚马逊挑拣大赛(the Amazon Picking Challenge)中的应用。
灵敏网络 (Dex-Net) 2.0
不同于试图通过图形来估算3D物体的形状和位姿,Dex-Net 2.0使用概率模型来从数据集生成综合点云、抓取规划以及抓取鲁棒标签(grasp robustness labels),这个数据集是基于物理的抓取、图像渲染和相机噪声模型生成的3D物体网格。
我们设计这个方法主要考虑到的是:鲁棒性地用平口钳抓取物体与物体的形状息息相关。
把手和圆柱体这样适合抓取的几何特征可以在部分点云中看到,它们和抓取之间的关联性也可以在模型生成的样本中观察到。
我们假设具有多层滤波器的深度CNN模型可以学到这些关联性,从而识别出几何体,与用于图像分类的CNN模型可以学到类Gabor滤波器类似。
在 “Dex-Net 2.0:借助生成的点云和抓取度量分析,用深度学习规划鲁棒抓取” 这篇论文中,我们正则化了这个方法并对其进行研究。
在论文中,我们详述了Dexterity Network (Dex-Net )2.0,这是一个拥有670万鲁棒抓取和点云的数据集,数据中带有我们的概率模型生成的噪音,这个概率模型是我们用平口钳在桌面上抓取刚性物体得到的。
我们开发了一种深度抓取质量卷积神经网络(GQ-CNN)模型,并在Dex-Net 2.0上对它进行训练,用候选抓取规划和点云估算抓取的鲁棒性(grasp robustness)。
利用GQ-CNN模型,可以从带有边缘检测的输入点云得到候选抓取方案,通过对这些候选抓取方案进行采样,以及执行GQ-CNN估计得到的最鲁棒的抓取,就可以在实际机器人上规划抓取:
在Dex-Net 2.0上进行训练的时候,GQ-CNN学到了一组看起来可以对不同尺寸图像检测梯度的低层次滤波器。
滤波器可以分为两类:一类是用于估算夹钳和物体之间碰撞的粗导向梯度滤波器(coarse oriented gradient filters),另一类是用于估算手指和物体之间接触点表面法向量的精细垂直滤波器(fine vertical filters):
在ABB YuMi上进行了如下实验
为了评估基于GQ-CNN进行抓取规划的实际机器人,我们对 ABB YuMi进行了超过1000次的抓取实验。主要是研究以下两个指标:
1、模型性能:用一组已知的物体生成数据,只用这些数据训练的GQ-CNN模型能否让实际的机器人成功抓取这些物体?
2、普遍性: GQ-CNN模型能否成功地抓取在训练中没有出现的新物体?
模型性能
首先,我们测量了这个抓取规划方法的能力——当用夹钳举起、运输和摇动物体时,是否能一直保持对物体控制。
我们使用了一组8个已知形状、质心和摩擦特性的3D打印物体,来突出我们的物理模型和实际机器人抓取之间的差异。
为了对失败模式进行探讨,我们为二手指抓手选择具有对抗性的几何形状(adversarial geometry)的物体来进行抓取,比如表面光滑或弯曲,开口的狭小物体。
我们发现Dex-Net 2.0抓取规划器(grasp planner)用于实际机器人上可以取得高达93%的成功率,比将精确的物体形状与点云相匹配的方法快了3倍。
结果表明:1,当物体属性已知时,我们的物理模型能有效的预测实际机器人的抓取结果;2,GQ-CNN模型能被用于规划更高精确度的抓取。
下图是一个例子:
普遍性
我们还测试了一组40个新的有可活动部件或者会变形的物体,例如开罐器和毛巾,从而评估了将抓取规划泛化到先前从未见过的物体的能力。
在进一步分析数据之后,我们发现了一个令人惊讶的结果:在69次预测能够成功的抓取中,GQ-CNN模型只出现了一次误报。
99%的精确度非常重要,因为它表明机器人可以根据它的信心标签(confidence labels)来预测失败,并执行诸如戳目标物体或向人求助等恢复动作。
局限
用Dex-Net 2.0抓取规划的结果表明,只在利用抓取和图像形成(image formation)的物理模型产生的数据上训练神经网络,对于很多种不同的物体都可以进行高可靠性的抓取。然而,当前的方法有几个局限。
1、传感器精度。实际的深度相机上,缺失数据之类的噪声源在Dex-Net 2.0模型中没有被考虑进来。此外,深度照相机不能识别桌上的透明物体或平面物体。
2、模型局限:Dex-Net 2.0中使用的物理抓取模型考虑到了对刚体的指尖抓取,我们没有囊括用夹持器夹起一张平的纸或用一个指头勾起物体的抓取策略。
3、单一物体。该方法只能抓取一个单独的物体,目前我们正在扩展Dex-Net 2.0模型功能,研究如何从一堆物体中抓取对象。
4、独立任务。用这种方法规划抓取可以稳定的拿取和运输物体,但没有考虑到在装配时对物体的精确定位、堆叠或是连接到另一个物体的用例,这时可能需要更精确的抓取。我们正在通过基于任务的抓取质量值(task-based grasp quality metrics)、动态仿真和演示学习研究可能的扩展功能。
数据集和代码发布
2017年夏天,我们发布了我们的代码、数据集和经过GQ-CNN权重训练的一个子集,我们希望这将有助于进一步的研究和对比。
现在我们发布Dex-Net 2.0的训练数据集和代码,其中包括了包含670万个合成数据集的dex-net 2.0数据集,从论文中预先训练过的gq-cnn模型,以及gqcnn Python包,用于复制我们的实验,将健壮的掌握在gq-cnn的合成数据上。
我们希望这将有助于开发新的GQ-CNN架构和训练方法,这些方法将在生成的数据集和我们的机器人已经收集到的数据集上都能运行得更好。
系统需求
这里有一点需要注意,使用这个特定的数据集进行训练的机器人具有强大的性能,但并不代表其他机器人也会具有这样的性能,因为这个数据集是对以下的组件专用的:
1) ABB YuMi夹持器,数据集中使用了它的碰撞几何外型。
2) Primesense Carmine 1.08传感器,数据集的渲染中使用了它的相机参数。
3) 相机相对于桌子的空间位置: 在桌子上方50-70厘米范围内直接朝下摄像。
尽管如此,支撑这个数据集的算法可以为相关的其他二手指夹持器、相机和相机位置产生新的数据集。
我们假设,如果训练数据集是根据硬件配置中的夹具几何结构(gripper geometry)、相机内部函数(intrinsics)和相机位置而专门生成的,基于GQ-CNN的抓取规划将会表现得最好。
ABB YuMi Benchmark
我们最佳的模型在合成数据上只能达到93%的分类精度,为了研究改进GQ-CNN架构,我们计划在Dex-Net 2.0数据集上做一个表现排行榜(leaderboard of performance)。
由于数据集是针对硬件配置专用的,我们很乐意在我们的实际机器人上对用合成数据训练的、表现明显高出其它方法的模型做benchmark。
欢迎任何学科或背景的研究人员加入我们。
Python包
为了帮助训练GQ-CNN模型,我们开发了 gqcnn Python包。
通过gqcnn,你可以马上在Dex-Net 2.0生成的数据集上开始训练GQ-CNN模型。
在我们的RSS论文中有教你复现结果的教程,我们还邀请研究人员在合成数据集和通过ABB YuMi机器人收集的抓取数据集(datasets of grasps)上进行研究,改善分类性能。
我们还使用ROS服务来进行GQ-CNN的抓取规划。ROS包能使用户看到在GQ-CNN上对自定的点云的抓取规划的结果。
我们鼓励有兴趣的同行在桌面上方约50-70厘米的范围内安装一个Primesense Carmine 1.08或Microsoft Kinect for Xbox 360,通过基于GQ-CNN的抓取规划器进行抓取。
虽然我们的数据集不能推广到上面提到的其他硬件配置上,但希望通过进一步的研究,能够做到利用GQ-CNN模型让其他机器人抬举和运输物品。
如果你对这一项目的研究合作感兴趣,请给Jeff Mahler发邮件(jmahler@berkeley.edu)。
未来的发布计划
我们还计划在2017年如下日期发布Dex-Net系统的附加数据和功能:
Dex-Net Object Mesh Dataset v1.1:在RSS论文中使用的Dex-Net 1.0系统中1500个3D物体模型的子集,这些子集带有ABB YuMi平口钳抓取的标签。2017年7月12号发布。
Dex-Net as a Service: 通过HTTP网络API对自定义3D模型创建新的数据集并计算抓取鲁棒性值(grasp robustness metrics)。2017年秋发布。
Via:http://bair.berkeley.edu/blog/2017/06/27/dexnet-2.0/,雷锋网编译。