Contact-GraspNet: Efficient 6-DoF Grasp Generationin Cluttered Scenes

总结

提出一种端到端的网络,解决复杂场景中对未知物体的抓取。将六自由度抓取投影到观察到的点云中的接触点,表示只有4-DoF。

摘要

我们提出了一个端到端网络,可以直接从场景的深度记 录中有效地生成六自由度平行颚抓取的分布。

我们的新颖抓取 表示将记录的点云的3D点视为潜在的抓取接触点。通过在观测 到的点云中提取完整的六自由度抓取姿态和宽度,我们可以将 抓取表示的维数降至四自由度,这大大简化了学习过程。

我们 的类不可知论方法是在1700万个模拟抓取上训练的,并且可以 很好地推广到现实世界的传感器数据。在对结构化杂乱中看不 见的物体的机器人抓取研究中,我们实现了超过90%的成功率。

1. 介绍

抓取物体的能力是大多数机器人操作任务所需的基 本能力之一。抓取涉及到物体的三维几何和物理特性的 推理,如质量和摩擦,以及复杂接触物理的推理。

研究 方向主要有两个:已知物体三维模型或类别的基于模型抓 取和不知道物体先验知识的无模型抓取。

基于模型的抓 取通过在目标框架中预先定义一组抓取点,并根据六自 由度目标位姿[1,2,3,4]或检测到的目标关键点[5,6]对这些 抓取点进行变换,从而规避了接触和抓取生成的物理推 理。基于模型的方法的缺点是它们只适用于已知对象或 类别的有限子集,并且在检测六自由度对象姿态或对象 关键点时的任何错误都会降低抓取性能。

无模型方法不会对物体的类别或形状做出任何强有 力的假设,它们会学习所有物体形状和大小的共享表示。 然而,除了抓取姿势的大SE(3)空间之外,为所有对象提 供一个共享表示使得学习问题相当具有挑战性。

因此,数据驱动抓取的大量工作将可能的抓取空间限制为平面抓取,其中抓取由每个像素周围的定向矩形表示,这些矩形定义了抓取框架 [7, 8, 9]。

这样 的表示需要相机垂直地观看场景,从而极大地限制了3D 推理和应用。大量可能的抓取和机器人的完整运动能力 也被忽略了。

为了解决平面抓取的局限性,最近人们对 解决未知物体的六自由度抓取问题感兴趣[10,11,12,13, 14]。

在本文中,我们通过对场景的部分点云观测来解决 六自由度抓取混乱空间中未知物体的问题。从结构杂乱的场景中抓取物体会带来额外的挑战。 目标物体必须被成功抓取,同时必须避免与其他物体发 生任何碰撞,以防止损坏或转化为其他不希望的状态。此外,由 于机器人的运动学约束,为物体生成一组不同的抓取是 至关重要的。根据物体和机器人之间的相对姿态,不同 的抓取子集在运动学上是可行的。

我们的方法与Murali等人的工作密切相关,他们的 目标是从场景的部分点云中为指定的目标物体生成无碰 撞的不同抓取,并使用预训练的未知物体实例分割模型 对物体进行分割[15,16]。Murali 等人[12]使用了一个多阶段过程,从分割的物体点云中合成目标物体的抓取点,周围没有任何上下文,然后使用另一个学习到的模型过滤掉碰撞的抓取点。

这就导 致了三个问题:1)对实例分割错误的敏感性。2)抓地力仅从 目标物体点云生成,不利用场景中的几何线索,如桌子 点和周围物体点。3)在大的、无约束的六自由度姿态空间 中预测抓地力。

为了解决这些问题,我们的方法直接处 理一个完整的场景点云或目标物体周围的局部区域。因 此,我们生成的抓地力的质量不依赖于精确的掩模,并 且在生成过程中可以直接考虑碰撞。随后可以使用实例 分割来过滤属于目标对象的抓取。因此,我们的主要贡 献如下:

  1. 一种新的端到端方法,用于在混乱的现实世界场景中抓 取未知物体的六自由度,我们实现了90%的抓取成功 率。这比同等设置下的[12]高出10%。
  2. 一个新的抓取姿态表示,将六自由度抓取投影到观察到 的点云中的接触点。我们的表示只有4-DoF,这极大 地促进了学习问题。
  3. 在物理模拟器中进行综合消融研究,以评估不同损失函数和训 练数据的影响

2.相关工作

作为机器人的一个基本问题,抓取已经被研究了几十 年[17,18,19,20]。我们在数据驱动方法的背景下回顾了相 关文献。

End-to-end policy learning:在抓取和操作物体的研究中,有一种方法采用端到端策略,即从原始输入像素值[21, 22]中生成动作的学习。这导致了一个整体模型,同时考虑感知、规划、抓取和机器人控制。这些工作中的大多数是通过强化学习从机器人与环境的交互中学习的。这些方法在垃圾捡拾、(准)平面抓取和不需要在机器人配置空间进行复杂运动规划的小型、可感知的工作空间中表现出良好的性能。通过结合模仿学习和强化学习,一些工作[23]展示了迭代的六自由度抓取方法。这些方法的一个普遍缺点是对新环境的有限泛化能力,因为感知和控制是同时学习的。此外,由于奖励函数鼓励抓取任何对象,这些方法不容易调整以朝向特定对象的抓取。相比之下,我们的方法学习在模拟训练数据的基础上为可指定目标对象生成新颖的六自由度抓取姿势。此外,它可以与其他感知和运动规划算法集成。

这些方法的一个共 同缺点是对新环境的泛化有限,因为感知和控制是同时间 接学习的。此外,由于奖励功能鼓励抓取任何物体,这些 方法不容易转向抓取特定物体。

相比之下,我们的方法只 需要使用模拟训练数据,就可以学习在新的物体和场景上 对特定的目标物体产生不同的六自由度抓取。此外,它可 以与其他感知和运动规划算法集成。

3D reconstruction:完整的3D重建可以实现传统的抓取规划。完整的三维重建可实现传统的抓取规划。然而,学习到的单视角重构往往是模糊、粗糙的,并且需要类条件[24, 25, 26]。多视角三维扫描是有益的[27],但并非总能获得,而且需要额外的时间,通常还需要假定场景是静态的。在我们的方法中,不需要完全明确的三维重建。

Discriminative methods:抓取的判别方法训练一个分类器来评估现有抓 取的质量[28,29,7]。它们使用不同的采样策略来生成潜在 的候选对象。对于平面抓取,交叉熵被广泛使用,因为 它可以通过迭代评估不同位置的抓取质量来收敛到最终 抓取位置[7]。然而,交叉熵方法在高维六自由度抓取空 间中效果不佳。为了克服采样复杂性问题,通常使用几 何启发式对抓取位置进行采样[10,29]。

Generative methods:于学习的生成式抓取方法旨在克服几何启发 式的局限性,通常根据物理模拟器中的经验生成有意义 的6-DoF抓取[11,12]。主要的挑战是6-DoF抓取的大的、 多模态搜索空间。这些模型不是使用启发式方法对一些 潜在的候选对象进行抽样并对它们进行排序,而是直接 预测SO(3)空间中的每点可抓取性得分和接近方向[30,14, 31]。预测接近方向的一个问题是,它们不能容易地捕获 高曲率区域,如马克杯边缘或手柄,也不能代表包含空 心结构的抓取。此外,成功的接近方向是相当模糊的, 因为单个接触可能有多个接近方向。相反,我们建议预 测6-DoF抓取密集投影到他们的更少模糊的接触点。虽然 没有完全表面接触的抓取是合理的,例如通过马克杯的 手柄,但关于物体状态的知识以及因此再次稳定放置物 体的能力就会丢失。因此,在这项工作中,我们的目标 是对具有完全表面接触的未知物体产生稳定的抓取。我 们的新损失公式通过考虑抓握分布的不连续、不平衡和 多模态进一步提高了收敛性。与其他方法[31]不同,我们 提出的方法独立于类别标签,并且没有假设抓手总是垂 直于一个表面。相反,我们纯粹从各种抓取标注的训练 形状[32]中学习抓取语义。

3. 方法

我们考虑了在由未知目标组成的结构化杂波上从任意 角度生成6-DoF抓地力的问题。我们的方法采用原始深度 图像,可选地使用对象掩模,并生成6-DoF抓取建议以及 相应的抓取宽度。我们的目标是从仅部分可观察的场景 中预测鲁棒、多样和非碰撞的抓取。

从学习的角度来看,生成成功的6-DoF抓取分布是相 当具有挑战性的,因为分布是多模态的,不连续的,不 平衡的,并且由于(自)闭塞而模糊。此外,像SE(3)这样 的高维输出空间中的直接回归具有被证明在抓取[11]和相关领域(如物体姿态估计[33])中是困 难的。

3.1 Grasp Representation

由于这些原因,找到一个有效的抓取表示对于使用基 于学习的方法解决这个任务至关重要。这种表示应该能很 好地泛化到看不见的物体上,并能很好地处理高维输出空 间。

我们观察到,对于最可预测的两指抓 握,在抓握之前至少有一个接触是可见的。相比之下,没 有任何可见接触的抓取通常是模糊的,或者在抓取后不保 留初始物体姿态。因此,我们将成功的6-DoF地面真值抓 取g∈g的分布映射到它们对应的接触点c∈R 3。由于可见的 接触点必然位于我们可以用深度传感器观察到的表面上, 因此我们可以通过记录的点云中的附近点来表示它们的 3D位置。

鉴于我们可以预测观测点是否为合适的抓取接触点, 因此我们可以将6-DoF抓取问题简化为估计平行偏航抓取器的3自由度抓取旋转Rg和抓取宽度w。

PointNet++[34]等点集网络可以有效地处理点云,并 在局部三维邻域中分层聚合点及其特征表示。它们的预测 可以直接与输入点云中的3D点相关联,我们提出的抓取 表示利用了这种能力。

3.2 数据的生成

为了了解稳定的6-DoF抓握的完整分布,需要进行多 样化和密集的抓握姿势注释。我们使用了ACRONYM数据 集[32],它由来自Shapenet数据集[35]的8872个网格和1770 万个网格组成模拟不同摩擦下的抓握。我们的离线和在线训练数据生成 概述如图2所示。

3.3 网络

3.4 损失

3.5 细节实现

我们使用Adam优化器,初始学习率为0.001,逐步衰 减到0.0001。我们的集合抽象层有3个平行分支,查询球 半径为[0.02,0.04,0.08],[0.04,0.08.0.16]和[0.08,0.16,0.32]。 对于推理,点云以其在相机坐标中的平均值为中心。对于 训练,我们通过在随机稳定的姿势下放置8-12个抓取注释 的ShapeNet模型[32]来生成10000个桌面场景。我们使用拒 绝采样来避免碰撞。我们使用批处理大小为3的训练进行 144.000次迭代,在单个Nvidia V100 GPU上需要~ 40小时。 收敛速度明显快于以前的方法[12,14,11],这些方法在单 个GPU上需要长达一周的时间进行训练。这也反映了我们 提出的抓取表示的有效性。

4. 实验评价

我们在一个弗兰卡机器人的抓取研究中评估了我们的 方法,我们在混乱的场景中挑选未知的物体。我们还通 过在FleX物理模拟器[37]中执行大量预测抓取来比较我们 的方法和数据的不同变化。

4.1 推断

我们的推理管道如图4所示和描述。Contact-GraspNet 本身也可以应用于原始深度图像,但大多数机器人任务 需要某种类型的实例检测/分割来指定目标。 可以选择性地在点云段的3D质心周围提取感兴趣的 局部区域,以最大化潜在接触点的数量。在我们的实验 中,我们提取的立方体边缘长度设置为最大跨越维度的 两倍,但至少为0.3m,最多为0.6m。 运行时间:对于整个场景,Contact-GraspNet的运行时 间为0.28秒,对于目标对象周围的局部区域,运行时间 为~ 0.19秒。与其他6自由度抓取生成方法相比,这是相 当快的,并使需要反应闭环抓取的应用。 抓握选择:在测试时,我们通过设置0.23的接触置信 度阈值来选择抓握,然后在(过滤的)接触点上使用最远点 采样来确保广泛的抓握覆盖。如果一个物体的预测抓取 次数过低,我们将置信度阈值降低到0.19。最后,我们执 行最自信的抓取,即运动学可及且机器人不与场景[38]发 生碰撞的抓取。

4.2 评估指标

在我们的机器人实验中,我们报告了成功抓取的次数 和试验的次数。后者在从垃圾箱中挑选小物件时经常被 忽略。然而,在杂乱的场景中(例如在家庭中),只有一两 次尝试的抓取是至关重要的,在这些场景中,应该避免 碰撞,并且在物体翻倒后稳定的抓取机会可能会消失。 我们在没有重新排列的情况下,将我们自己限制在每个物体 最多两次抓取试验,并报告单次试验后的成功率。 我们的模拟器实验也允许我们评估掌握的多样性和我 们的方法的变化。在这里,我们评估了[11]之后生成抓取 的成功率和覆盖率。如果(1)打开的抓取器没有与物体/场 景发生碰撞,(2)抓取和抖动运动后物体仍在抓取器中, 则认为抓取成功。这是一个保守的衡量标准,因为大多 数现实世界的抓取都可以轻微碰撞,并且不会经历抖动 运动。覆盖度是指基础坐标在任何生成的抓地点2cm以内 的地面真实抓地点(包括遮挡的抓地点)的百分比。

4.3 真实机器人抓取实验

设置:我们的物理设置由一个7-DoF的弗兰卡熊猫机器 人和一个平行颚抓取器组成。我们用51个看不见的物体 紧密地复制[12]中定义的9个杂乱的场景。任务是从杂乱 的场景中挑选出这些物体,并将它们放入一个箱子中。 我们手动选择目标物体,并以[12]中相同的随机顺序抓取 它们。在我们的实验中,我们使用安装在三脚架上的英 特尔Realsense L515激光雷达相机来获取RGB和深度数据。 机器人的运动是使用[38]生成的。 结果:表1显示了我们对机器人的抓取评估结果。我们 观察到,与[11]和[12]相比,我们的方法的抓取成功率显 着更高,[11]和[12]本身优于其他基于学习的方法和分析/ 启发式基线。此外,我们的方法在第一次尝试时显著提 高了抓取成功率,从而减少了重新抓取的次数。我们还 解决了使用可能不精确的分割蒙版从点云中裁剪对象的 缺点。图7显示了一个不精确的分割示例,其中裁剪将是 灾难性的,但我们的抓取过滤方法仍然可以提取成功的 抓取。

4.4 消融

优化目标:在图5中,我们首先研究了损失目标的影响。 抓握宽度箱子上的加权损失lwidth对于处理抓握数据集中的 不平衡宽度至关重要。如果不对箱子进行加权,预测结 果大多会崩溃成狭窄的抓取宽度。在我们的实验中,加权也比过采样表现得更好。平均距 离损失ladd−s提高了高置信度接触的成功率,这很重要, 因为我们执行的大多数把握都在覆盖率的第一个小数中。 接触置信度与抓取姿势的联系导致整体上改进的校准。

数据:在图6中,我们检查了不同训练和测试数据的效 果。放大到局部区域允许网络将潜在的接触点集中在对 象上,从而增加覆盖率。我们还展示了像ACRONYM[32] 这样的大型和多样化的抓取数据集的重要性。在5个类别 [11]的110个对象的小型抓取数据集上进行训练是不足以 进行类外泛化的,无论使用何种方法。

失败案例:我们观察到一些厚对象的失败案例,这些 对象几乎只允许在最大抓取宽度下抓取。在这里,抓取 预测的可信度较低,大概是因为不连续的决策边界。在 训练过程中注入噪声会降低这种影响。最后,小物体有 时会有低置信度的接触点,这可能是因为它们对总损失 的影响很小。

5. 结论

我们考虑了用平行颚爪抓取结构化杂波中未知物体 的基本问题。提出了一种高效、准确、简化的六自由度 抓取生成方法Contact-GraspNet。通过将难以处理的六自 由度抓取估计问题转化为抓取接触点分类和抓取旋转估 计,极大地限制了预测的姿态空间,简化了学习过程。 通过考虑六自由度抓握分布的多模态、不平衡性和稀疏 性的定制优化目标,我们的网络学会在一个记录场景中 产生覆盖整个可抓握面的多种抓握。通过在训练过程中 考虑抓手碰撞,以及在场景中直接预测抓手碰撞,有效 地避免了抓手碰撞。我们的方法也可以结合分割预测, 但不依赖于准确的掩模本身。它也是对使用抓取器和/或 机器人模型作为输入的抓取排序方法的补充。在感知环 境中,单次抓取成功是至关重要的。我们的方法在这方 面表现出了很强的进步,是朝着达到所需的抓握可靠性 迈出的一步。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/735982.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

06 数据结构之树

引言&#xff1a; 数的代码实现&#xff0c; 先序遍历、中序、后序、层次遍历 /* binary_tree.h */ #ifndef _BINARY_TREE_H #define _BINARY_TREE_H#include <stdio.h> #include <stdlib.h> #include <string.h>#define DEBUG(msg) \printf("--%s--, %…

车载诊断协议DoIP系列 —— 诊断报文和诊断报文应答传输层安全(TLS)

车载诊断协议DoIP系列 —— 诊断报文和诊断报文应答&传输层安全(TLS) 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师(Wechat:gongkenan2013)。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 本就是小人物,输了就是输了,不要在意别人怎…

NLP:文本相似度计算

前面我们已经实现了把长段的句子&#xff0c;利用HanLP拆分成足够精炼的分词&#xff0c;后面我们要实现“联想”功能&#xff0c;我这里初步只能想到通过文本相似度计算来实现。下面介绍一下文本相似度计算 &#xff08;当然HanLP也有文本相似度计算的方法&#xff0c;这里我…

【JAVA】CSS3伸缩盒案例、响应式布局、BFC

1.CSS3伸缩盒案例 效果&#xff1a;用伸缩盒模型 <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title>&…

Windows电脑安装Linux(Ubuntu 22.04)系统(图文并茂)

Windows电脑安装Ubuntu 22.04系统&#xff0c;其它版本的Ubuntu安装方法相同 Ubuntu 16.04、Ubuntu 18.04安装方法相同&#xff0c;制作U盘启动项的镜像文件下载你需要的版本即可&#xff01; Ubuntu的中文官网网址&#xff1a;https://cn.ubuntu.com/&#xff0c;聪明的你一定…

redisson解决redis服务器的主从一致性问题

redisson解决redis的主节点和从节点一致性的问题。从而解决锁被错误获取的情况。 实际开发中我们会搭建多台redis服务器&#xff0c;但这些服务器分主次&#xff0c;主服务器负责处理写的操作&#xff08;增删改&#xff09;&#xff0c;从服务器负责处理读的操作&#xff0c;…

TCP粘包和分包

TCP的粘包和分包是网络通信中常见的问题&#xff0c;特别是在使用TCP协议进行数据传输时。这两个问题都涉及到TCP在传输数据时的工作机制。 粘包&#xff08;TCP数据合并&#xff09; 粘包指的是发送方发送的多个小数据包在传输过程中被TCP协议合并成一个大的数据包接收&…

英飞凌电源管理PMIC的安全应用

摘要 本篇文档主要用来介绍英飞凌电源管理芯片TLF35584的使用&#xff0c;基于电动助力转向应用来介绍。包含一些安全机制的执行。 TLF35584介绍 TLF35584是英飞凌推出的针对车辆安全应用的电源管理芯片&#xff0c;符合ASIL D安全等级要求&#xff0c;具有高效多电源输出通道&…

AI认知与科普(通识)

一、宏观分析 1.全球人工智能产业概况&#xff1a; 近年来&#xff0c;全球人工智能产业呈现出快速增长的趋势。据相关数据显示&#xff0c;全球人工智能市场规模预计将在2025年达到约600亿美元&#xff0c;年复合增长率达到约25%。其中&#xff0c;美国、中国、欧洲、日本等地…

Jmeter+Ant+Git/SVN+Jenkins实现持续集成接口测试,一文精通(一)

前言 Jmeter&#xff0c;Postman一些基本大家相比都懂。那么真实在项目中去使用&#xff0c;又是如何使用的呢&#xff1f;本文将一文详解jmeter接口测试 一、接口测试分类 二、目前接口架构设计 三、市面上的接口测试工具 四、Jmeter简介&#xff0c;安装&#xff0c;环境…

opencv解析系列 - 基于DOM提取大面积植被(如森林)

Note&#xff1a;简单提取&#xff0c;不考虑后处理&#xff08;填充空洞、平滑边界等&#xff09; #include <iostream> #include "opencv2/imgproc.hpp" #include "opencv2/highgui.hpp" #include <opencv2/opencv.hpp> using namespace cv…

深入理解React中的useReducer:管理复杂状态逻辑的利器

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

​​​​​​​ARCGIS API for Python进行城市区域提取

ArcGIS API for Python主要用于Web端的扩展和开发&#xff0c;提供简单易用、功能强大的Python库&#xff0c;以及大数据分析能力&#xff0c;可轻松实现实时数据、栅格数据、空间数据等多源数据的接入和GIS分析、可视化&#xff0c;同时提供对平台的空间数据管理和组织管理功能…

docker-compose这下会用了吗?

概要 默认的模板文件是 docker-compose.yml&#xff0c;其中定义的每个服务可以通过 image 指令指定镜像或 build 指令&#xff08;需要 Dockerfile&#xff09;来自动构建。 注意如果使用 build 指令&#xff0c;在 Dockerfile 中设置的选项(例如&#xff1a;CMD, EXPOSE, V…

51单片机基础篇系列-51单片机基础开发流程和基本I/O口

&#x1f308;个人主页: 会编程的果子君 &#x1f4ab;个人格言:“成为自己未来的主人~” 51开发平台的组成 单片机应用系统&#xff08;也叫目标系统&#xff09; 硬件&#xff1a; 用户可以自己设计制作&#xff0c;也可以采用现成的开发板快捷搭建 软件&#xff1a; …

扁平数据转树形结构,让数据管理更清晰

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

1.初学docker

这是在centos7上的基本操作用法。 一、基本操作 # 安装yum源 yum install -y yum-utils # 配置yum源 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo # 安装docker yum install -y docker-ce-cli containerd.io docker-buildx-plu…

C语言——函数指针——函数指针数组 (详解)

函数指针数组 函数指针数组的作用 函数指针数组是一个数组&#xff0c;其中的每个元素都是一个函数指针。函数指针是指向函数的指针变量&#xff0c;可以用来调用相应的函数。函数指针数组的作用是可以根据需要动态地选择并调用不同的函数。 函数指针数组的使用场景有很多&…

微服务day06-Docker

Docker 大型项目组件较多&#xff0c;运行环境也较为复杂&#xff0c;部署时会碰到一些问题&#xff1a; 依赖关系复杂&#xff0c;容易出现兼容性问题 开发、测试、生产环境有差异 1.什么是Docker? 大型项目组件很多&#xff0c;运行环境复杂&#xff0c;部署时会遇到各种…

Beans模块之工厂模块BeanFactory

博主介绍&#xff1a;✌全网粉丝5W&#xff0c;全栈开发工程师&#xff0c;从事多年软件开发&#xff0c;在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战&#xff0c;博主也曾写过优秀论文&#xff0c;查重率极低&#xff0c;在这方面有丰富的经验…