欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 产业 > AnyPlace:学习机器人操作的泛化目标放置

AnyPlace:学习机器人操作的泛化目标放置

2025/2/13 16:09:10 来源:https://blog.csdn.net/yorkhunter/article/details/145579216  浏览:    关键词:AnyPlace:学习机器人操作的泛化目标放置

25年2月来自多伦多大学、Vector Inst、上海交大等机构的论文“AnyPlace: Learning Generalized Object Placement for Robot Manipulation”。

由于目标几何形状和放置的配置多种多样,因此在机器人任务中放置目标本身就具有挑战性。为了解决这个问题,AnyPlace,一种完全基于合成数据训练的两阶段方法,能够预测现实世界任务中各种可行的放置姿势。其关键见解是,通过利用视觉-语言模型 (VLM) 来识别粗略的放置位置,只关注与局部放置相关的区域,这样能够训练低级放置-姿势-预测模型,以有效捕捉不同的放置位置。为了进行训练,生成一个完全合成的数据集,其中包含不同放置配置(插入、堆叠、悬挂)中随机生成的目标,并训练局部放置-预测模型。其在模拟中进行广泛的评估,证明在成功率、可能的放置模式覆盖率和精度方面都优于基线。在现实世界的实验中,展示如何将纯粹基于合成数据训练的模型直接迁移到现实世界,它可以在其他模型难以应对的场景中成功执行放置 - 例如具有不同的目标几何,多种放置模式以及实现精细放置的高精度。

如图所示机器人执行 AnyPlace 方法:

添加图片注释,不超过 140 字(可选)

放置目标是人类在日常生活中毫不费力完成的一项基本任务,从将物品摆放在桌子上到将电缆插入插座。另一方面,让机器人执行这样的任务往往极具挑战性。挑战来自于不同放置任务的各种约束以及泛化到未见过目标的难度。现有方法通常是针对特定任务的,对单个放置任务使用大量演示,例如将目标挂在架子上 [28],希望机器人可以推广到未见过的目标。或者,少样本方法,专注于仅使用少量演示来学习目标放置,旨在让模型在类似目标和设置的随机初始配置中复制相同的放置操作。

学习不同的目标放置,对现有模型提出了重大挑战,主要是因为泛化难度大。泛化可以分为两个方面:目标级和任务级。目标级泛化侧重于开发各种目标和放置配置的鲁棒表示,使模型能够有效地处理未见过的目标。任务级泛化涉及模型根据给定点云预测不同放置配置的能力。此外,预测多模态放置输出(涵盖一系列有效位置和模式)仍然具有挑战性,尤其是在存在多个可行解决方案的情况下。例如,机器人将小瓶插入小瓶板上的许多空槽之一。现有方法 [26、3、27、21、24、23、9、6、15、14] 通常在少样本学习框架内运行,其中它们学习涉及两个特定目标的特定放置,导致对不同任务和目标类型的泛化能力较差。相比之下,RPDiff [28] 使用相对较大的数据集针对三种放置场景(例如,架子上的杯子、书架上的书、罐头堆叠)训练单独的模型,展示一定程度的类内目标级泛化,但其对新任务的泛化尚未研究。
机器人操作中的目标拾取和放置。机器人拾取和放置问题通常以两种方式表述:目标重排列和直接末端执行器姿势预测。在目标重排列中,目标是训练一个模型来预测目标从其初始姿势到其最终放置姿势的相对变换。假设抓取姿势由现有模型生成,将预测的相对变换与抓取姿势相乘来计算末端执行器的最终放置姿势。在这种情况下,许多工作都侧重于预测两个目标的明确任务相关特征,然后通过优化或回归求解相对姿势。具体而言,神经描述子场 (NDF) 系列论文 [26, 3, 27] 学习点云的占用场作为表示。然后,使用附加到放置目标的一组预定义关键点与目标物体的占用特征场进行交互并对其进行查询。通过将每个点的查询特征与演示期间收集的特征进行匹配,可以确定最佳目标变换。 TaxPose [21] 利用基于 Transformer 的交叉注意来预测两个目标之间的对应点,并使用可微分奇异值分解 (SVD) 来求解相对变换。为了保证放置-姿势-预测模型对 SE(3) 变换,即 SE(3) 等变,具有鲁棒性,方法 [24、23、9] 明确预测目标点云的点类型 0 和类型 1 特征,然后解决一个优化问题,其基于演示将这些特征对齐到特定配置中。所有这些方法都在少样本设置下运行,并且可以在给定两个目标的情况下预测单个放置姿势。对于模型来说,捕捉和预测放置姿势的分布至关重要,因为由于运动学限制,机器人并非能够实现每个放置姿势。相比之下,RPDiff [28] 在大型数据集上训练具有扩散机制的 Transformer,逐渐对目标放置姿势进行去噪。然而,他们的实验表明,可能的放置位置的覆盖范围并不完整。扩散过程中固定-大小的裁剪机制可能也难以泛化到不同尺寸的目标。此外,最近的一项研究 [5] 在模拟中对多个稳定位置进行采样,并使用 VLM 根据语言查询选择适当的模式。虽然这些模式是离散的,但每种模式都允许目标沿其对称轴旋转,从而产生形成连续分布的有效放置姿势。

拾取-和-放置任务的另一种方法,是直接预测机器人的末端执行器姿势。M2T2 [33] 和 Pick2Place [12] 专注于杂乱场景中的平面目标放置。M2T2 [33] 采用多任务 transformer,带有单独的解码器来预测每个离散旋转 bin 的抓取姿势和放置位置 affordance 图。其他工作,如 Pick2Place [12],专注于预测关键的末端执行器姿势以完成特定任务。 RVT [10] 和 RVT-2 [11] 也利用了Transformer,利用场景的多视图 RGB 图像来预测机器人下一个末端执行器位置的热图。另一方面,由粗到细的 Q-attention [16] 利用场景的体素来识别当前分辨率下最有趣的空间点。该点将成为下一步细化步骤的体素质心,使模型能够收集更准确的 3D 信息。

机器人操作中的多模态预测。考虑一个以各种姿势挂在架子上不同挂钩上的杯子。放置姿势的多模态在操作中很常见。最近,行为克隆方法的进展,例如基于能量的 IBC 模型 [8] 和扩散策略 [2],试图捕捉这种多模态性。具体来说,对于扩散策略,它学习从随机噪声分布开始对​​动作轨迹进行去噪,从而使模型能够捕捉可能解决方案的分布。对这些分布进行建模的另一种方法是通过变分自动编码器 (VAE)。例如,行为 Transformer(BeT) [25] 和 VQ-Bet [17] 训练一个 VQ-VAE [30],将连续动作离散化并编码为潜表示,从而更容易处理多模态和高维行为数据。为了根据图像输入训练整个策略,他们采用基于 Transformer 的模型以及 VAE 解码器来预测动作序列。作者证明,他们的方法在常见基准上优于扩散策略 [2]。

为了让机器人能够在场景中执行不同的目标放置,将放置姿势预测问题分解为两个子任务:高级放置位置建议任务和低级细粒度放置姿势预测任务。对于高级任务,结合了视觉-语言模型,该模型经过训练可根据给定的文本提示输出图像中的 2D 关键点位置。然后可以提取候选放置位置周围的一小块局部区域并将其转发到低级姿势预测模型。这样通过使用更小的点云作为输入,大大简化低级姿势预测问题,并且有助于泛化,因为局部区域之外的任何特征都不会影响预测。这样能够专注于有限的一组一般放置类型并利用完全合成的数据集,但最终模型在广泛的现实世界放置任务中有效。

AnyPlace 放置姿势预测方法的概述如图所示:

添加图片注释,不超过 140 字(可选)

问题设置。制定目标放置任务来预测相对变换。具体来说,给定一个输入元组 {D, I},其中 D 表示放置任务的语言描述,I 是场景的 RGBD 图像,目标是预测一组刚性变换 {T_n},将目标物体 C 从其当前位置移动到基物体 B 上所有满足语言条件 D 的可行放置位置。假设抓握姿势 T_grasp 由一个抓握预测模型提供,最终末端执行器姿势 T_place 可以使用初始目标姿势和其最终放置姿势之间的预测相对变换来计算,即 T_place = T_nT_pick。

VLM 引导的放置位置预测

当目标具有多个潜在放置位置时,现有模型在以端到端方式进行训练时通常难以捕捉所有这些离散位置。为了解决这个问题,利用 VLM 的最新进展来直接识别放置位置,VLM 已展示出基于语言描述在图像中定位点和区域的能力。具体而言,给定放置任务 D 的语言描述和 RGBD 图像 I,旨在提取目标物体 P_c 的点云和基物体 P_b_crop 的局部感兴趣区域。利用 Molmo [4] 将所有潜在放置位置检测为图像空间中的关键点,例如指定可以将小瓶插入小瓶盘的所有位置。这种方法使低级姿势预测模型能够专注于学习两个物体的不同放置配置并预测放置姿势,而无需明确捕捉多个放置位置。

首先,提取目标物体 C 和基物体 B 的分割掩码。为此,首先查询 VLM 以获取图像中每个物体的点位置,然后将这些点传递给分割模型以获取分割掩码。这样能够在物体选择中进行复杂的语言调节(例如,“蓝色小瓶”、“秤前面的小瓶架”等)。接下来,再次在基物体 B 上查询 VLM 以找到放置的所有离散模式(如图所示)。对于图像中每个已识别的点,提取点云中的局部区域并将其用作姿势预测模型的输入。

添加图片注释,不超过 140 字(可选)

在处理具有多种可能放置姿势的不同物体时,明确识别放置模式(而不是依赖模型探索整个物体的放置)更可靠、更实用。此外,由于高级模块建立在通用 VLM 上,因此系统可以处理不同的放置并执行复杂的语言调节。具体来说,这样能够进行复杂的语言调节:(1) 选择放置哪个物体;(2) 选择将其放置在哪个物体上;(3) 选择在该物体上执行放置的位置。这样其保证即使在放置的物体很大或难以分割时也能有效发挥作用。这是因为无论物体的大小如何,模块始终都会输出潜在放置位置周围的一个小的局部区域。

细粒度放置姿势预测

给定来自高级模块的点云 P_c 和 P_b_crop,低级姿势预测模型仅专注于学习不同的局部放置安排,而无需捕获不同放置位置的分布。直觉是,借助庞大的合成数据集,该模型应该能够有效地捕获基于物体几何形状不同放置配置的关键表示,这使其能够泛化到未见过物体并对噪声数据保持稳健。仅将局部区域作为输入,姿势预测模型应该能够实现更好的精度,这在许多相关的放置任务中至关重要。

用离散的时间步长预测扩散过程中的相对变换。从两个物体点云开始,扩散过程迭代地对相对变换进行去噪,逐渐将放置的物体移向其最终姿势。首先,使用随机变换 T_init = (R,t) 变换物体点云 P_c 以获得 P_c(0) ,其中 R 在 SO(3) 空间上随机采样,t 在裁剪放置区域的边框内采样:P_c^(0)=T_init P_c,其中 T_init = (R, t)。

在每个去噪时间步 t,P_c(t) 和 P_b_crop 都会输入到编码器中。具体来说,两个点云首先使用最远点采样 (FPS) 方法下采样到 1024 个点,并归一化为单位立方体的大小。下采样的点云,通过线性层提取潜特征,随后将其与用于识别相应点云的 one-hot 向量连接起来。然后,这些组合特征由 Transformer 编码器 [31, 1] 处理,其中应用自注意层来有效地从点云中提取特征。然后,利用交叉注意层和池化层进一步聚合这些特征,从而生成一个统一的特征表示,以捕获两个物体之间的空间关系。在解码器中,首先获得扩散时间步 t 的正弦位置嵌入。最后,将联合点云特征表示与编码的时间步一起输入到 MLP 层中,预测由旋转 R 和平移 t 组成的相对变换 T_n(t),以细化物体的姿势。然后对目标物体点云进行相应的变换,然后继续进行下一个去噪步骤,因为 P_c(t-1) = T_n^(t) P_c^(t)。将物体从其初始位置转换为放置姿势的完整变换 T_n,是通过扩散步骤预测的所有增量变换乘积。

在训练期间,执行 5 个去噪步骤。不是像通常的做法 [13] 那样在前向过程中逐渐向输入添加高斯噪声,而是手动定义在每个时间步添加的噪声。在本文例子中,噪声是模型预测的相对变换。具体而言,中间的真值相对变换 T_n,GT(t) 是通过线性插值平移并使用球面线性插值 (SLERP) 来采样物体的初始姿势和最终放置姿势之间的旋转而生成的。在推理过程中,通过多次采样扩散模型来生成不同的放置姿势,每次都从随机变换的初始物体点云 P_c^(0) 开始。在测试时执行大量的去噪步骤,通过重复最后的去噪步骤更多次,总共是 50 个去噪步骤。

在训练期间的每个扩散步骤中,给定真值 T_n,GT(t) 和预测值 T_n^(t),用 L1 距离作为平移损失 L_translation。对于旋转,测量真值和预测旋转之间的测地距离。此外,在由真值姿势和预测姿势转换的点云之间应用 Chamfer 损失。

机器人拾取和放置执行

确定放置姿势后,实施拾取和放置流水线来操纵物体并将其准确定位在目标姿势上。具体来说,利用 AnyGrasp [7] 为目标物体 C 找到可行的抓取,并使用 cuRobo [29] 作为运动规划器来执行无碰撞放置。对 (T_place , T_pick) 对执行拒绝采样,为模型预测的特定放置姿势,识别有效的抓取,由机器人执行。

抓取检测,从一个RGBD 图像中提取的目标物体点云 P_c 开始。 AnyGrasp [7] 随后处理生成的点云,以确定按置信度排序的最佳抓取候选点。为了拾取物体,夹持器首先移动到预抓取姿势,沿夹持器 z 轴距离目标 10 厘米。然后,夹持器沿直线接近目标,同时保持其方向。同样,在放置过程中,机器人首先移动到预放置姿势,然后在不改变夹持器方向的情况下进行最终接近。根据物体的大小调整从预放置姿势到最终放置姿势的距离,以避免在过渡到预放置位置时发生碰撞。在定义路点和末端执行器方向约束后,用 cuRobo 生成完整的机器人拾取和放置运动规划。

构建合成数据集的目的,是捕获广泛的局部放置安排。现有模型使用一些非常具体的任务(例如将书插入书架)来简单地评估其模型在给定此类任务的放置数据用于训练时的效果 [33, 12, 32]。

另一方面,目标不仅是使用数据集来评估所提出的模型,而且要构建表示各种类型的放置(堆叠、悬挂、插入)的模型,如图所示。姿势预测模型的局部性质使这项任务变得容易得多,并能够构建一个可以泛化到各种现实世界放置任务的数据集。

添加图片注释,不超过 140 字(可选)

数据生成流水线由两个主要组件组成:目标生成和放置姿势生成。具体来说,用 Blender 程序化地生成 3D 目标,例如钉子、孔、杯子、架子、烧杯、小瓶和小瓶架。目标参数(包括高度、宽度、长度和边数)是随机的,以增加可变性。对于架子和小瓶板,还将杆和孔的数量随机化。此外,沿 x、y 和 z 轴应用随机缩放以进一步增强多样性。

为了确定目标的稳定位置,用 NVIDIA IsaacSim 确定三种配置的目标放置姿势:堆叠、插入和悬挂。在每次试验开始时,随机抽取两个目标并将其加载到模拟中。由于所有目标都是程序生成的,并且在生成过程中已知可能的放置位置(例如,小瓶板上每个孔的中心),因此可以轻松确定放置目标的理想放置位置。这种方法可以找到目标放置位置,以最大化目标在最终放置配置中的间隙。对于目标放置旋转,然后沿其对称轴随机采样以探索各种放置姿势。设置四个摄像头来捕捉密集的目标点云并渲染 RGBD 图像。该数据集涵盖现实生活中遇到的广泛放置场景。总共创建 13 个类别的 1489 个目标,并生成 5370 个放置姿势。

训练细节

在完整数据集的子集上独立训练每个模型,根据放置配置的类型进行拆分,并在组合数据集上进行训练(称为“多任务”变型)。虽然类似的方法通常针对单个任务进行训练(例如 [28]),但目标是构建一个能够执行多种放置任务的单个模型。所有单任务模型都经过三天的训练,而多任务模型则在单个 NVIDIA A100 GPU 上经过五天的训练。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com