学习抓取柔性物体

发布人:Google 机器人团队研究实习生 Daniel Seita 和研究员 Andy Zeng

目前虽然机器人研究已进展到机器人可以抓取各种刚性物体,但是却鲜有研究致力于开发能够处理柔性物体的算法。操纵柔性物体的难点之一在于指定此类物体的配置。例如,对于刚性立方体,确定其中心固定点配置即足以描述其在三维空间中的排列,但对于一块织物的一个点可以在其他部分移动时保持固定。因此,感知算法难以获取织物的完整“状态”,尤其是在有遮挡的情况下。此外,即便能够充分获取柔性物体的状态表征,但其牵涉非常复杂的动力学。在对柔性物体施加某种动作之后,很难预测其未来状态,而多步规划算法往往需要预测未来状态。

在即将于 ICRA 2021 会议上发表的《学习使用受目标限制的 Transporter Networks 重新排列可变形电缆、织物和袋子》一文中,我们发布了一个名为 DeformableRavens 的开源模拟基准,旨在加速对柔性物体操纵的研究。DeformableRavens 内含 12 项任务,涉及操纵电缆、织物、袋子,还包括一组用于操纵柔性物体的模型架构,以达到图像指定的理想目标配置。得益于这些架构,机器人能够重新排列电缆以匹配目标形状,也能够将织物平整地放到目标区域,还能够将物品放入袋子中。据我们所知,这是第一个包含特定任务的模拟器,在这项任务中,机器人必须使用袋子来收纳其他物品,这对机器人学习更复杂的相对空间关系提出了关键挑战。

DeformableRavens 基准

DeformableRavens 在我们先前关于重新排列物体的 研究 基础之上进行了扩展,包括一套 12 项模拟任务,涉及一维、二维和三维可变形结构。每项任务均包含一个模拟的 UR5 机器手臂,带有一个用于抓取的模拟器,并与脚本演示程序捆绑在一起,用于自动收集数据以进行模仿学习。这些任务将分发中物品的起始状态随机化,以测试不同物体配置的通用性。

image

使用 PyBullet 在我们的模拟器中操纵一维(电缆)、二维(织物)和三维(袋子)可变形结构的脚本演示程序示例。这些示例展示了 DeformableRavens 12 项任务中的其中三项。左图: 任务是移动电缆,以与下方的绿色目标区域相匹配。中图: 任务是用织物包裹立方体。右图: 任务是将物品放入袋子中,然后将袋子提起并移动到方形目标区域

对于柔性物体而言,为操纵任务指定目标配置颇具有挑战。鉴于柔性物体复杂的动力学和高维配置空间特征,其目标不如一组刚性物体的姿势那般容易预测,而且像是“将物品放进袋中”这种还涉及复杂的相对空间关系的任务。因此,除了分发脚本演示所定义的任务之外,我们的基准还包含由目标图像指定的受目标限制的任务。对于受目标限制的任务,给定的物体初始配置必须与显示这些相同物体理想配置的单独图像相匹配。这种特殊情况的成功与否取决于机器人是否能够使当前的配置足够接近目标图像中传达的配置。

受目标限制的 Transporter Networks

为了补充模拟基准中受目标限制的任务,我们将目标条件整合到之前发布的 Transporter Network 架构中,该模型架构以动作为中心,通过从视觉输入重新排列深层特征以推断空间位移更地适用于刚性物体操纵。该架构以当前环境的图像以及具有最终理想配置的目标物体图像作为输入,计算这两幅图像的深层视觉特征,然后使用逐元素相乘的方式对这些特征进行组合调节拾取和放置相关性,从而同时操纵场景中的刚性物体和柔性物体。Transporter Network 架构的优势在于其保留了视觉图像的空间结构以供归纳偏差,将基于图像的目标条件重构为更简单的特征匹配问题,并提升卷积网络的学习效率。

涉及目标条件的任务示例如下。为了将绿色积木放入黄色袋子中,机器人需要学习空间特征,以便能够执行一连串动作,进而打开黄色袋子的顶部开口,然后将积木放入黄色袋子中。在将积木放入黄色袋子之后,则演示成功结束。如果在目标图像中,机器人将积木放入蓝色袋子中,则演示程序需要将积木放进蓝色袋子里。

image

DeformableRavens 中受目标限制的任务示例。左图: 理想目标配置中,UR5 机器人和袋子外加一件物品的摄像头正面视图。中图: 此设置自上而下的正交图像,尺寸为 160x320,并作为目标图像传递以指定任务成功标准。右图: 显示物品进入黄色袋子而非蓝色袋子的演示策略的视频

结果

结果表明,借助于受目标限制的 Transporter Networks,智能体能够操纵可变形结构灵活达到指定配置,而无需在测试时获得目标位置的视觉锚点。我们还通过在二维和三维柔性物体任务上进行测试,极大扩展了先前使用 Transporter Networks 操纵柔性物体的研究结果。结果进一步表明,与依赖使用地面真实姿势和顶点位置而非图像作为输入的其他方法相比,此次提出的方法具有更高的采样效率。

例如,所学习到的策略可以有效地模拟装袋任务,而且操作者还可以提供目标图像,以便机器人推断应将物品放进哪一个袋中。

image

使用 Transporter Networks 训练的策略在装袋任务中实际应用的示例,该任务目标是首先打开袋子,然后将一件(左图)或两件(右图)物品放进袋中,最后将袋子放入目标区域。为清晰起见,我们将左图动画进行了放大

image

使用受目标限制的 Transporter Networks 所学习的策略示例。左图: 摄像头正面视图。中图: 受目标限制的 Transporter Network 接收作为输入的目标图像,显示物品应该放在红色袋子里,而非蓝色干扰袋中。右图: 所学习的策略是将物品放入红色袋子,而非干扰袋(本例中为黄色)中

我们鼓励其他研究人员查看我们的 开源代码 尝试模拟环境,并在此基础上开展研究。有关详情,请查阅我们的论文。

研究展望

本研究为未来发展指明了几个方向,例如减少观察到的失败模式。如下图所示,当机器人向上拉动袋子,造成物品掉落,即为失败。另一种失败情况是当机器人将物品放置在袋子的不规则外表面时,导致物品脱落。我们希望今后经过算法改进后,动作频率可以更高,这样机器人便可实时作出反应,以减少此类失败情况。

image

所学习到的基于 Transporter 的策略在袋子操纵任务中的失败案例。左图: 机器人将立方体放入袋口,但拉袋子的动作未能将立方体包裹住。右图: 机器人未能将立方体放入袋口,并且无法执行恢复动作,以将立方体放置于更好的位置

另一个有待改进的领域是使用无专家演示的技术(如 基于示例的控制基于模型的强化学习)以训练基于 Transporter Network 的柔性物体操纵模型。最后,疫情持续发展限制了对物理机器人的使用,因此在今后研究中,我们将探索必要的因素,以使系统可以处理物理袋子,并扩展系统以处理不同类型的袋子。

致谢

本研究为 Daniel Seita 于 2020 年夏季在 Google 纽约办公室实习期间所开展。本研究由 Pete Florence、Jonathan Tompson、Erwin Coumans、Vikas Sindhwani 和 Ken Goldberg 合作完成,在此深表感谢。

原文:Learning to Manipulate Deformable Objects
中文:TensorFlow 公众号