21年11月来自UCSD的论文“ManiSkill: Generalizable Manipulation Skill Benchmark with Large-Scale Demonstrations”。
来自 3D 视觉输入的目标操作,对构建可泛化的感知和策略模型提出了许多挑战。然而,现有基准测试中的 3D 资源,大多缺乏与现实世界类内拓扑和几何复杂性相一致的 3D 形状多样性。提出 SAPIEN (“SAPIEN: A simulated part-based interactive environment”)操作技能基准测试 (ManiSkill),在全物理模拟器中对不同目标的操作技能进行基准测试。ManiSkill 中的 3D 资源,包括大量类内拓扑和几何变化。任务经过精心选择,涵盖不同类型的操作挑战。基于3D 视觉的最新进展,应该定制基准,以便挑战对从事 3D 深度学习的研究人员具有吸引力。为此,模拟一个移动的全景相机,它返回以自我为中心的点云或 RGB-D 图像。此外,ManiSkill 能够为对操作研究感兴趣的广大研究人员提供服务。除了支持从交互中学习策略外,还通过提供大量高质量演示(约 36,000 条成功轨迹,约 1.5M 点云/RGB-D 帧)来支持从演示中学习 (LfD) 方法。用 3D 深度学习和 LfD 算法提供基线。基准测试(模拟器、环境、SDK 和基线)的所有代码都是开源的,跨学科研究人员面临的挑战将基于此基准测试进行。
为了使重复性工作和日常琐事自动化,机器人需要具备类似人类的操控技能。人类操控技能的一个显著特点是,一旦学会操控一类物体,就能操控同一类别中甚至未见过的物体,尽管它们在拓扑和几何上存在很大差异。以转椅为例,无论是否有扶手或头枕、有多少个轮子、靠背的形状如何,都能立即使用它们。这种与某一类别中未见过的物体交互能力称为可泛化操控技能。
可泛化操控技能学习是视觉、学习和机器人技术之间的纽带,提出了许多有趣的研究问题。最近,这一领域开始引起各学科的广泛关注。例如,强化学习和模仿学习被应用于物体抓取和操控 [1、2、3、4、5、6、7、8、9]。另一方面,[10、11、12、13、14、15、16、17] 可以根据视觉输入提出对新物体的新抓取姿势。为了进一步促进协同努力,建立一个支持可重复研究的基准至关重要,并允许研究人员比较和彻底检查不同的算法。
然而,建立这样的基准极具挑战性。为了引导用户并集中精力进行算法设计,必须考虑四个关键因素:1)操纵策略结构,2)目标和任务的多样性,3)有针对性的感知算法,4)有针对性的策略算法。
1)操纵策略结构:操纵策略具有复杂的结构,需要不同级别的模拟支持,专注于全物理模拟。由于模拟低级物理很困难,许多机器人模拟器仅支持抽象动作空间(即已经假定的操纵技能)[18、19、20、21、22、23、24、25、19、24]。在这些基准中研究高级规划很方便;然而,研究具有高维和复杂低级物理的更具挑战性场景,变得不可能。一些最近的基准测试 [26、27、28、29、30、31] 开始利用最新的全物理模拟器 [32、33、34、35] 来支持物理操作。尽管现有环境数量众多,但大多数环境都缺乏对类别内目标级泛化能力进行基准测试的能力,并且缺乏对社区中不同方法的包容性。
2)目标和任务的多样性:为了测试目标级泛化能力,基准测试必须具有足够的目标拓扑、几何和外观的类内变化。包括 robosuite [28]、RLBench [31] 和 Meta-World [30] 在内的几个基准测试或环境具有广泛的任务;然而,它们有一个共同的问题:缺乏目标级变化。在过去的方法中,DoorGym [29] 拥有最好的目标级变化:它是一个开门基准,门由不同的旋钮形状、板尺寸和物理参数程序生成,但它仍然没有捕捉到一些简单的现实世界变化,比如不同形状的橱柜上多个尺寸的门。这在一定程度上是由于程序建模的局限性。尽管程序建模已用于 3D 深度学习 [36, 37],但它往往无法覆盖具有现实世界复杂性的目标,而这些目标通常更倾向于使用来自互联网用户的众包数据和现实世界的扫描。最后,像开门这样单一类型的任务无法涵盖各种运动类型。例如,推转椅需要与开门非常不同的技能,因为它涉及通过双臂协作控制欠驱动系统。因此,建立既具有巨大目标变化又具有广泛技能覆盖范围的基准至关重要。
-
有针对性的感知算法:基准测试需要确定传感器数据的类型和格式,比如专注于安装在机器人上的 3D 传感器数据。许多现有的基准测试,例如 DoorGym,都依靠固定摄像头来捕获 2D 图像;然而,这种设置极大地限制了机器人可以解决的任务。相反,机器人安装的摄像头在现实世界中很常见,可以提供更高的灵活性,例如 Kinova MOVO [38] 和一般的自动驾驶;这些摄像头通常设计用于捕获 3D 输入,尤其是点云。此外,在构建具有 3D 输入的神经网络方面已经取得了巨大进展 [39、40、41、42、43、44、45],这些 3D 网络已经表现出强大的性能(例如,它们在自动驾驶数据集上的性能优于 2D 图像网络 [46])。 [47, 48, 49, 50, 51, 52] 也采用了 3D 深度学习模型来感知和识别运动结构和目标姿势,以便进行多关节目标的操控。本基准测试为用户提供一个以自我为中心的全景相机来捕捉点云/RGB-D 输入。此外,评估基于 3D 神经网络的策略学习基线。
-
有针对性的策略算法:不同的策略学习算法需要不同的训练数据和设置,提供多个轨道以提倡公平比较。例如,模仿学习 [53, 54, 4] 和离线 RL [55, 56, 57] 可以纯粹从演示数据集 [58, 59] 中学习策略,但在线 RL 算法 [60, 61] 需要与环境交互。因此,明确且有意义的轨道划分可以鼓励具有不同背景的研究人员探索可推广的操作技能,并让他们专注于挑战的不同方面,例如网络设计、感知、交互、规划和控制。虽然其他基准通常仅限于单一研究领域和单一模式,但该基准支持来自计算机视觉、强化学习和机器人领域的研究人员的三个不同轨道。
如图所示 ManiSkill 中的环境子集。目前支持 4 种不同的操作任务:OpenCabinetDoor、OpenCabinetDrawer、PushChair 和 MoveBucket;每种任务都具有各种各样的 3D 铰接式目标,鼓励可泛化的物理操作技能学习。
如图所示 ManiSkill 的各种具有复杂拓扑和几何变化的铰接式目标,例如不同形状的橱柜上门和/或抽屉的数量和形状不同。其中投入大量精力处理来自 PartNet-Mobility 数据集的目标,并将其集成到任务中,例如调整尺寸和物理参数(例如摩擦力)以使环境是可解的,以及做到手动的凸分解。
如图所示是任务中渲染的点云。ManiSkill 支持在现实环境中广泛使用的 3D 视觉输入,允许应用各种计算机视觉模型。为了更好地查看,展示从安装在世界坐标系中的摄像头获得的点云。在实际任务中,摄像头安装在机器人头部,提供以自我为中心的视图。
构建 ManiSkill 基准测试的目标,可以最好地描述为通过演示促进从 3D 视觉输入中学习可泛化的操作技能。 “操作”涉及机器人智体和目标之间的低级物理交互和动态模拟; “技能”是指短视界物理丰富的操作任务,可以将其视为更复杂策略的基本构建块; “3D 视觉输入”是由安装在机器人上全景摄像机捕获的以自我为中心点云和/或 RGB-D 观测值; “演示”是成功解决任务的轨迹,促进从演示中学习(LfD)的方法。
目标级可泛化操作技能,定义为在对训练目标进行学习后可以泛化到未见过的测试目标操作技能,其中训练目标和测试目标属于同一类别。任务面临的一些显著挑战,来自部分观察(即点云/RGB-D 图像仅覆盖目标的一部分)、机械臂遮挡目标的部分,以及对具有多种拓扑和几何属性的目标复杂形状进行理解。
如图所示 ManiSkill 中的 RGB-D(RGB/深度)和点云观测。左侧两幅图像:来自安装在机器人上的三个摄像头之一的 RGB-D 图像。三个摄像头共同提供以自我为中心的全景视图。右侧图像:来自所有三个摄像头融合点云的可视化。由于捕获的点云来自以自我为中心的视图,因此看不到机器人身体的中心。椅子的部分被自身遮挡(因为摄像头安装在机器人上)。
如图是 ManiSkill 的整体说明。手动重建模和后处理来自 PartNet-Mobility 数据集的目标,将它们分成训练集和测试集,然后在 SAPIEN 模拟器中构建相应的训练和测试环境。接着在训练环境中生成成功的演示轨迹。用户需要根据演示轨迹和训练环境构建策略,然后使用提供的评估工具包评估测试环境中的平均成功率。
如图是PointNet+Transformer的架构框架:
ManiSkill 支持两种奖励:稀疏奖励和密集奖励。稀疏奖励是一种二进制信号,相当于特定于任务的成功条件。使用稀疏奖励进行学习非常困难。为了缓解这种困难,为每个任务精心设计形状良好的密集奖励函数。
交互式环境自然支持强化学习或经典机器人流水线等方法。然而,要通过强化学习或设计规则构建具有目标级通用性的算法,对于许多对操纵学习研究感兴趣的研究人员来说,它可能过于复杂且资源要求高(例如,视觉研究人员可能主要对感知模块感兴趣)。许多从演示中学习的算法(例如,行为克隆)更容易上手,并且需要的资源更少。
为了服务更多的研究人员,ManiSkill 提供一个公共演示数据集,总共约 36,000 条成功轨迹和约 1.5M 帧(每个任务中每个训练目标有 300 条轨迹)。演示以内部环境状态的格式提供,节省存储空间,用户可以使用提供的脚本渲染相应的点云/RGB-D 帧。
为了构建这个大规模演示数据集,需要一个可以自动生成大量演示的规模化流水线。与其他现有方法(例如通过远程操作进行人工注释、运动规划)相比,本文采用基于强化学习 (RL) 的流程,这需要的人力要少得多,并且可以大规模生成任意数量的演示。虽然通过 RL 收集演示很常见 [67、68、69、53、70、71、72、73],但由于不同目标的数量众多且操作任务困难,直接训练单个 RL 智体来收集 ManiSkill 中所有环境的演示,具有挑战性。
为了大规模收集演示,设计一个有效的流程如下:流程包含两个阶段
在第一阶段,需要为 RL 智体设计和验证密集奖励。对于每个任务,根据该任务的技能定义和人类先验设计一个共享的奖励模板。请注意,此奖励模板在任务中的所有环境(目标)之间共享,而不是为每个目标手动设计。为了快速验证奖励模板(因为任务很复杂,通过 RL 解决需要几个小时),使用交叉熵方法 (CEM) 的模型预测控制 (MPC)算法,该方法可以高效并行化,使用 20 个 CPU 在 15 分钟内(如果成功)从一个初始状态找到一条轨迹。虽然 MPC 是验证奖励模板的有效工具,但它不适合生成演示数据集,该数据集应该包含多样化和随机化的初始状态。这是因为 MPC 必须每次独立重新训练,以便从每个任务每个训练目标的 300 个初始状态中的每一个中找到一条轨迹,其渲染是不可规模化的。因此,在第二阶段,训练无模型 RL 智体来收集演示。在一个任务的许多环境(目标)上训练一个 RL 智体非常具有挑战性,但训练一个智体来解决单个特定环境是可行的,而且已经得到充分研究。因此,以分而治之的方式收集演示:对于每个环境,训练一个 软 Actor-Critics(SAC) [60] 智体并生成成功的演示。
虽然 PartNet-Mobility 数据集(来自 SAPIEN [62])提供了关节式目标模型库,但原始数据集只能为视觉任务(例如关节姿势估计)提供全面支持。因此,需要选择、修复和验证模型。
首先,PartNet-Mobility 数据集并非没有注释错误。例如,一些门轴的注释与门把手的注释在同一侧。虽然这不会影响模拟,但这样的模型是不自然的,不适合测试策略的通用性。因此,首先渲染所有资产,然后手动排除注释错误的资产。
此外,快速模拟需要对 3D 资产进行凸分解。然而,原始 SAPIEN 的自动算法 VHACD [74] 无法很好地处理所有情况。例如,VHACD 可能会引入意外的伪影,例如光滑表面上的凹痕,而智体可以利用这些伪影。为了修复错误,检查识别有问题的模型,并使用 Blender 的 [75] 形状编辑功能,手动地分解目标。
即使经过上述所有努力,某些模型仍然会出现意外行为。例如,某些橱柜抽屉可能会因碰撞形状重叠不准确而卡住。因此,还通过将每个目标放入模拟器中来验证它们,并学习策略。如果错误造成无法学习一个策略完成任务的,就修复一下。重复此过程,直到所有模型都可以通过 MPC 产生成功的策略。