【论文阅读】GNFactor: Multi-Task Real Robot Learning with Generalizable Neural Feature Fields

Abstract

在机器人技术中,开发 agents 是一项长期存在的问题,能够从非结构化现实世界环境中的视觉观察中执行不同的操作任务。为了实现这一目标,机器人需要对场景的 3d 结构和语义进行全面理解。在这项工作中,我们提出了 gnfactor,这是一种用于具有可泛化神经特征场的多任务机器人操作的视觉行为克隆 agent。gnfactor 通过利用共享的深度 3d 体素表示,联合优化可泛化的神经场 (gnf) 作为重建模块和感知器 transformer 作为决策模块。为了将语义合并到 3d 中,重建模块利用视觉语言基础模型(例如,稳定扩散)将丰富的语义信息提取到深度 3d 体素中。我们在 3 个真实机器人任务上评估 gnfactor,并在 10 个 rlbench 任务上执行详细的消融,演示数量有限。我们观察到 gnfactor 在可见和不可见任务中相对于当前 state-of-the-art 方法的显着改进,证明了 gnfactor 强大的泛化能力。

Keywords: Robotic Manipulation, Neural Radiance Field, Behavior Cloning

 1 Introduction

将学习引入机器人操作的一个主要目标是使机器人能够有效地处理看不见的对象,并成功地在新环境中处理各种任务。在本文中,我们专注于使用模仿学习和一些演示进行多任务操作。使用模仿学习有助于避免复杂的奖励设计和训练可以直接在真实机器人上进行,而无需在模拟中创建其数字孪生 [1, 2, 3, 4]。这使我们能够基于用户的指令在复杂环境中对不同任务的 policy 学习(见图 1)。然而,使用有限数量的演示在泛化方面提出了巨大的挑战。这些挑战中的大多数都来自于需要理解场景的 3d 结构、理解对象的语义和功能,并有效地遵循基于视觉线索的任务指令。因此,机器人观测的全面和信息丰富的视觉表示是泛化的关键基础。

图1:左:真实机器人设置中使用的三个摄像机视图来重建稳定扩散[5]生成的特征场。我们分割前景特征以获得更好的说明。右图:来自两个不同厨房的三种语言条件真实机器人任务。通过使用 NeRF 和视图合成来提供监督的表示。虽然它在需要几何推理(例如悬挂杯子)的任务上表现出有效性,但它仅在单任务设置中处理具有大量掩蔽的简单场景结构。更重要的是,如果没有对场景的语义理解,机器人遵循用户的语言指令将非常具有挑战性。

机器人学习视觉表示的发展主要集中在二维平面内的学习。利用自监督目标从二维图像观测[6,7,8]中预先训练表示,或者与policy梯度联合优化[9,10,11]。虽然这些方法提高了样本效率并导致更稳健的 policies,但它们主要应用于相对简单的操作任务。为了解决更复杂的任务,需要几何理解(如物体形状和姿态)和遮挡,机器人学习最近采用了3d视觉表示学习[11,12]。例如,driess等人[12]通过使用nerf和视图合成作为监督来训练3d场景表示。虽然它在需要几何推理(例如悬挂杯子)的任务上表现出有效性,但它仅在单任务设置中处理具有大量掩蔽的简单场景结构。更重要的是,如果没有对场景的语义理解,机器人遵循用户的语言指令将非常具有挑战性。

在本文中,我们介绍了使用一种新颖的表示来学习语言条件 policy,该表示利用 3d 和语义信息进行多任务操作。我们训练可泛化的神经特征场 (gnf),它将 2d 基础模型的预训练语义特征提炼到神经辐射场 (nerf)。我们对这种表示进行 policy 学习,从而得到我们的模型 gnfactor。需要注意的是,gnfactor学习编码器以前馈方式提取场景特征,而不是在nerf中执行逐场景优化。给定一个 rgb-d 图像观察,我们的模型将其编码为 3d 语义体积特征,然后由Perceiver transformer [13] 架构进行处理以进行动作预测。为了进行多任务学习,Perceiver transformer 采用语言指令来获得任务嵌入,并对语言和视觉语义之间的关系进行推理以进行操作。

我们的框架有两个训练分支(见图 3):

图 3:GNFactor 概述。GNFactor以RGB-D图像作为输入,并使用体素编码器对其进行编码,将其转换为深度3D体积中的特征。然后两个模块共享这个体积:体积渲染 (Renderer) 和机器人动作预测 (Perceiver)。这两个模块是联合训练的,它优化了共享特征,不仅可以重建视觉语言嵌入(扩散特征)和其他视图(RGB),还可以估计准确的 Q 值(Qtrans、Qrot、Qcollide、Qopen)。

(i)GNF 训练。给定收集到的演示,我们使用体绘制的视图合成来训练可泛化的神经特征场。除了渲染 RGB 像素外,我们还在 2D 空间中渲染基础模型的特征。GNF 同时从像素重建和特征重建中学习。为了为特征重建提供监督,我们应用视觉基础模型(例如,预训练的稳定扩散模型 [5])从输入视图中提取 2D 特征作为ground truth。通过这种方式,我们可以将语义特征提炼到 GNF 中的 3D 空间中。

(ii)GNFactor 联合训练。基于 GNF 学习目标联合优化的 3D 体积特征,我们进行行为克隆以端到端的方式训练整个模型。

为了进行评估,我们在两个不同的厨房对三个不同的任务进行了真实的机器人实验(见图1)。我们成功地训练了一个policy,它在不同场景中有效地解决了这些任务,比基线方法peract[3]有了显著改进。我们还使用10个rlbench模拟任务[14]和6个设计的泛化任务进行了综合评估。我们观察到,gnfactor的表现优于peract,平均改善1.55倍和1.57倍,与真实机器人实验中观察到的显著差异一致。

2 Related Work

Multi-Task Robotic Manipulation.

最近在多任务机器人操纵方面的工作在执行复杂任务和推广到新场景的能力方面取得了重大进展[15,2,1,16,17,3,18,19]。值得注意的方法通常涉及使用广泛的交互数据来训练多任务模型[2,1,16,17]。例如,rt-1[1]强调了任务无关训练的好处,在各种数据集上展示了现实世界机器人任务的卓越性能。为了减少对大量演示的需要,利用关键帧(对运动的开始进行编码)的方法已被证明是有效的[20,21,22,23,24]。peract[3]采用感知器Transformer[13]对语言目标和体素观察进行编码,并在真实的机器人实验中显示出其有效性。在这项工作中,我们使用了与peract相同的动作预测框架,同时我们专注于通过在有限数据下学习可推广的体积表示来提高该框架的泛化能力。

3D Representations for Reinforcement/Imitation Learning (RL/IL).

为了通过利用视觉信息来改进操纵policies,许多研究都集中在增强2d视觉表示[8,7,6,25],而对于解决更复杂的任务,使用3d表示变得至关重要。ze等人[11]在运动控制中采用了基于深体素的3d自动编码器,与2d表示学习方法相比,提高了采样效率。driess等人[12]建议首先通过nerf学习状态表示,然后将冻结状态用于下游rl任务。虽然这项工作显示了在强化学习中使用nerf的初步成功,但由于各种限制,它在现实世界场景中的适用性受到限制:例如,需要对象掩码、没有机器人手臂和缺乏场景结构。最接近我们的工作是SNeRL[26],它也利用了nerf中的视觉基础模型。然而,与nerf rl[12]类似,snerl屏蔽了场景结构以确保功能,并且对对象屏蔽的要求仍然存在,这对其在真实机器人场景中的应用提出了挑战。相反,我们提出的gnfactor可以处理具有挑战性的多任务现实场景,展示了真实机器人应用的潜力。 

Neural Radiance Fields (NeRFs).

近年来,神经场在新颖的视图合成和场景表示学习方面取得了巨大成功[27,28,29,30,31,32],最近的研究也开始将神经场纳入机器人技术[33,34,35,12,26]。NeRF[29]通过学习场景的隐式函数来实现逼真的视图合成,这一点非常突出,但它需要对每个场景进行优化,因此很难推广。以下许多方法[36,37,38,39,40,41,42]提出了更具普适性的NeRFs。PixelNeRF[43]和CodeNeRF[37]将2D图像编码为NeRF的输入,而TransINR[36]利用视觉transformer直接推断NeRF参数。最近的一系列工作[44,45,46,47,48,49]利用预先训练的视觉基础模型,如DINO[50]和CLIP[51]作为RGB图像之外的监督,从而使NeRF能够学习可推广的特征。在这项工作中,我们结合了可推广的NeRF来重建RGB中的不同视图和预训练的稳定扩散模型中的嵌入[5]。

3 Method

在本节中,我们将详细介绍所提出的gnfactor,这是一种多任务agent,具有用于现实世界机器人操纵的3d体积表示。gnfactor由一个体积渲染模块和一个3d policy模块组成,共享相同的深度体积表示。体绘制模块学习可泛化神经特征场(gnf),以从相机重建rgb图像,并从视觉语言基础模型(如稳定扩散)中嵌入[5]。视觉语言嵌入的任务无关性使体积表示能够通过神经渲染学习可推广的特征,从而帮助3d policy模块更好地处理多任务机器人操作。使用clip[51]对任务描述进行编码,以获得任务嵌入t。gnfactor的概述如图3所示。

3.1 Problem Definition

为了有效地解决复杂的现实世界机器人问题,我们将观察空间构造为3d体素空间,而不是常用的2d图像[1,2,7,8]。3d体素观测源于单个前置摄像头捕获的rgb-d图像,该图像具有已知的外部和内部参数,确保了我们的方法在现实世界中的实用性。除了用于policy训练的前置摄像头视图外,我们还收集了用于训练gnf的额外k个视图我们只收集这些附加视图的rgb图像,而不是rgb-d图像。在实际场景中,我们使用k=2,而在模拟环境中,我们设置k=19。带有夹持器的机器人手臂的动作由平移、旋转、夹持器打开度和碰撞避免系数表示。对于旋转旋转,每个旋转轴被离散化为个区间。碰撞避免参数acolision指示运动规划器避免碰撞的必要性,这是至关重要的,因为我们的任务包括基于接触和非基于接触的运动

由于连续动作预测的效率低下以及随之而来的大量数据要求,我们将行为克隆问题重新表述为关键帧预测问题[3,52]。我们首先使用以下度量从专家演示中提取关键帧:当关节速度接近零时,轨迹中的帧是关键帧,夹具的打开状态保持不变。然后训练模型以基于当前观测预测后续关键帧。该公式有效地将连续控制问题转化为离散化的关键帧预测问题,将内部过程委托给仿真中的RRT连接运动规划器[53]和现实世界xArm7机器人中的线性运动规划器。

3.2 Learning Volumetric Representations with Generalizable Neural Feature Fields

在我们的初始步骤中,我们将RGB-D图像转换为100^3体素。然后,3D体素编码器对该3D体素进行编码,并输出我们的体积表示volumetric representation 。为了利用结构知识和语言语义增强体积表示v,我们学习了一个可泛化神经特征场(GNF),它将深度体积v作为场景表示,并通过重建额外的视图和2D视觉语言基础模型预测的特征来学习模型[5]。整个神经渲染过程描述如下。

我们使用体积表示v将表示为3D点x的采样3D特征。由于体积v的离散化性质,vx通过三线性插值形成。我们的GNF主要由三个函数组成:

(i)一个密度函数,将3D点x和3D特征映射到密度σ,

(ii)一个RGB函数,将3D点x、观察方向d和3D特征vx映射到视觉语言嵌入。在图3中,显示了这三个功能的相应组件。给定一个像素的相机光线,由相机原点、视图方向d和深度t定义,边界为,光线的估计颜色和嵌入可以通过以下公式计算:

其中。在实现中,积分用数值求积法近似。然后,我们的GNF经过优化,通过最小化以下损失,从多个视图和不同场景中重建RGB图像和视觉语言嵌入:

其中C(r)是背景真实颜色,F(r)为稳定扩散生成的背景真实视觉语言嵌入是由相机姿态生成的光线集,是嵌入重建损失的权重。为了提高效率,我们在给定一个目标视图的情况下对射线进行采样,而不是重建整个图像。为了帮助GNF训练,我们使用从粗到细的层次结构作为原始的NeRF[29],并在“精细”网络中应用深度引导采样[54]。        

3.3 Action Prediction with Volumetric Representations

体积表示v不仅被优化以实现gnf模块的重建,而且被优化以预测在3d policy内完成操纵任务所需的动作。因此,我们共同训练表示v以满足gnf和3d policy模块的目标。在本节中,我们将详细介绍3d policy的训练目标和架构。 

我们使用Perceiver transformer[3]来处理高维多模态输入,即3d体积、机器人的本体感觉和语言特征。我们首先使用具有核大小和步长为5的3d卷积层将共享体积表示v压缩为大小为203×128的体积,然后使用relu函数,并将3d体积展平为大小为8000×128的小立方体序列。机器人的本体感觉被投影到一个128维的空间中,并与每个立方体的体积序列连接,形成一个8000×256的序列。然后,我们将clip中的语言token特征投影到相同的维度(77×256)中,并将这些特征与3d体积、机器人本体感觉状态和clip token嵌入的组合连接起来。结果是一个维度为8077×256的序列。

该序列与可学习的位置编码相结合,并通过感知器Transformer,后者输出相同大小的序列。为了便于体素化,我们删除了最后77个特征[3],并将序列重塑回大小为的体素。然后使用三线性插值将该体素放大到,称为在三个动作预测头(图3中的qopen、qtrans、qrot、qconflict)之间共享,以确定与观察空间相同比例的最终机器人动作。为了保留从gnf训练中学习到的特征,我们在体积表示v和vpt之间创建了一个跳过连接。组合体积特征(v,vpt)用于预测用于平移的3d q函数qtrans,以及用于其他机器人操作的q函数,如夹具打开(qopen)、旋转(qrot)和碰撞避免(qcollect)。这里的q函数表示一个时间步的动作值,不同于rl中用于多个时间步长的传统q函数。例如,在每个时间步中,对于最可能的下一个体素,3dqtrans值将等于1,对于其他体素,该值将等于0。然后,该模型像分类器一样优化交叉熵损失,

其中,对于是ground truth one-hot编码。GNFactor的总体学习目标如下:

其中是重建损失的权重,用于平衡不同目标的规模。为了训练gnfactor,我们采用了一种联合训练方法,在这种方法中,gnf和3d policy模块被联合优化,而无需任何预训练。根据我们的实证观察,这种方法可以在学习共享特征时更好地融合来自两个模块的信息。

4 Experiments

在本节中,我们进行实验以回答以下问题:(i)gnfactor在模拟环境中能否超越基线模型?(ii)gnfactor能否推广到模拟中的新场景?(iii)gnfactor是否学习了一个更高级的policy,可以在两个不同的厨房中处理具有嘈杂和有限现实数据的真实机器人任务?(iv)gnfactor中确保整个系统功能的关键因素是什么?我们的结论如图4所示。

图4:主要实验结果。我们展示了RLBench任务和真实机器人任务在多任务和泛化设置下的平均成功率。误差条表示一个标准偏差。括号中的数字表示任务的数量。

4.1 Experiment Setup

为了可重复性和基准测试,我们在rlbench模拟任务中进行了初步实验。此外,为了展示gnfactor在现实世界中的潜力,我们在两个厨房设计了一组真实的机器人实验。我们在模拟和现实世界中将我们的gnfactor与强语言条件多任务agent peract[3]进行了比较,强调了gnfactor的通用功能。gnfactor和peract都使用来自前置摄像头的单个rgb-d图像作为输入来构建体素网格。在多任务模拟实验中,我们还通过添加更多摄像头视图作为输入来创建更强大的peract版本,以完全覆盖场景(如图10所示)。图2显示了我们的模拟任务和真实的机器人设置。我们简要描述了任务,细节见附录b和附录c。 


图2:模拟环境和真实的机器人设置。我们在图(a)中显示了我们的10个RLBench任务的RGB观察结果,在图(b)中显示GNF的采样视图,在图中显示了真实的机器人设置。

Simulation

我们从rlbench任务套件中选择了10个具有挑战性的语言条件操作任务[14]。每个任务至少有两个变体,总共166个变体。这些变化包括几种类型,例如形状和颜色的变化。因此,为了在非常有限的演示中实现高成功率,agent需要学习关于操纵的通用知识,而不仅仅是对给定演示的过度拟合。我们使用单个前置摄像头拍摄的128×128×3的rgb-d图像作为观察对象。为了训练gnf,我们还添加了额外的19个摄像头视图,以提供rgb图像作为监控。

Real robot.

我们在真实的机器人实验中使用带有平行夹具的xarm7机器人。我们设置了两个玩具厨房环境,使agent在整个场景中推广操作技能,并设计了三个操作任务,包括打开微波炉门、转动水龙头和重新定位茶壶,如图1所示。我们在机器人周围安装了三个realsense摄像头。在三个摄像头中,前一个摄像头捕捉policy训练的rgb-d观测值,左/右一个摄像头为gnf训练提供rgb监控。

Expert Demonstrations

我们使用运动规划器为每个RLBench任务收集了20个演示。任务变量被均匀采样。我们使用VR控制器为每个真实的机器人任务收集了5个演示。收集详情见附录D。

Generalization tasks

为了进一步展示GNFactor的泛化能力,我们在原始训练任务的基础上额外设计了6个模拟任务和3个真实机器人任务,并添加了任务干扰物。

Training details.

一个agent用两个nvidia rtx3090 gpu训练2天(100k迭代),批量大小为2。gnfactor的共享体素编码器被实现为仅具有0.3m参数的轻量级3d unet。感知器transformer保持与peract[3]相同的参数数量(25.2m个参数),使我们与peract的比较公平。

4.2 Simulation Results

我们在表1中报告了RLBench上多任务测试的成功率,在表2中报告了对新环境的泛化成功率。我们得出以下结论:

GNFactor在多任务学习中的主导地位超过PerAct。

如表1和图4所示,与PerAct相比,GNFactor在各种任务中取得了更高的成功率,特别是在具有挑战性的长期任务中表现出色。例如,在清扫到簸箕的任务中,机器人需要首先拿起扫帚,用扫帚将灰尘扫入簸箕。我们发现GNFactor的成功率为28.0%,而PerAct根本无法成功。在更简单的任务中,比如打开抽屉,机器人只拉出抽屉,GNFactor和PerAct的表现都相当不错,成功率分别为76.0%和54.7%。此外,我们观察到,通过额外的摄像头视图增强PerAct并不会带来显著的改善。这强调了有效利用可用相机视图的重要性。

Generalization ability of GNFactor to new tasks.

在表2中,我们观察到,对干扰物等环境的改变对所有agents都有负面影响,而gnfactor在6项任务中有5项的泛化能力优于peract。我们还发现,对于一些具有挑战性的变化,例如任务slide(s)中的较小块,gnfactor和peract都难以处理。这进一步强调了强大的泛化技能的重要性。

Ablations.

我们总结了GNFactor中有助于表4中体积表示成功的关键组成部分。从消融研究中,我们获得了几个见解:

(i) 我们的GNF重建模块在多任务机器人学习中起着至关重要的作用。此外,除了特征损失之外,RGB损失对于学习一致的3D特征至关重要,特别是因为从基础模型中导出的特征本身并不具有3D一致性

(ii)体积表示受益于扩散特征和深度引导采样,其中深度先验被用来提高神经渲染中的采样质量。一个直观的解释是,GNF与DGS结合后,更擅长学习深度和3D结构信息。这种增强的理解使3D表示能够更好地专注于对象的表面,而不是整个体积。此外,用DINO[50]或CLIP[51]替换Stable Diffusion不会轻易带来类似的改进,这表明了我们的视觉语言功能的重要性。

(iii)虽然使用跳跃连接并不是一个新故事,我们只是遵循了PerAct的结构,但删除跳跃连接的结果表明,我们的体素表示(从基础模型中提取特征)在预测最终动作方面起着至关重要的作用。(iv)在神经渲染损失和动作预测损失之间取得谨慎的平衡对于最佳性能至关重要,我们的GNF模块利用来自多个视图的信息被证明对单视图决策模块是有益的。

4.3 真实机器人实验

我们在表3中总结了我们真实机器人实验的结果。从实验中可以看出,gnfactor在几乎所有任务上都优于peract基线。值得注意的是,在茶壶任务中,要求agent准确确定抓握位置并从正确的角度处理茶壶,peract未能完成任务,在两个厨房中的成功率为零。我们观察到,仅从5次演示中学习一个微妙的policy确实具有挑战性。然而,通过整合视觉语言模型嵌入的表示,gnfactor获得了对对象的理解。因此,gnfactor不会简单地过度拟合给定的演示。

与第一个厨房相比,第二个厨房(图1)的尺寸较小,因此面临更多挑战。这需要更高的精度来有效地操纵对象。GNFactor和基线PerAct之间的性能差距在第二个厨房变得更加明显。重要的是,与基线不同,我们的方法在从第一个厨房过渡到第二个厨房时不会出现同样的性能下降。

我们还通过[55]可视化了我们的3d policy模块,如图7所示。我们使用感知器transformer之后的3d卷积层的梯度和3d特征图来计算。我们观察到,我们的policy清楚地关注了目标对象,尽管训练信号只是单个体素的q值。

图7:grad cam将3d policy模块可视化[55]。尽管在训练过程中,监控信号只是单个体素的q值,但我们在可视化中观察到,我们的policy清楚地关注了目标对象。视频可在yanjieze.com/gnfactor上找到。

 5 Conclusion and Limitations

在这项工作中,我们提出了gnfactor,一种用于现实世界多任务机器人操纵的视觉行为克隆agent。gnfactor利用可泛化神经特征场(gnf)来学习3d体积表示,动作预测模块也使用该表示。除了rgb特征外,我们还使用基础模型稳定扩散中的视觉语言特征来监督gnf训练,并观察到gnf增强的体积表示有助于决策。gnfactor在10个rlbench任务和3个真实机器人任务中在模拟和现实世界中都取得了出色的成绩,展示了gnfactor的潜力。

GNFactor的一个主要局限性是GNF训练需要多个视图,这在现实世界中很难扩展。目前,我们为GNFactor使用三个固定摄像头,但探索使用手机随机收集摄像头视图会很有趣,因为估计摄像头的姿态将是一个挑战。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值