24年10月来自UCSD、CMU、HillBot、Dresden工大、清华大学和伦敦皇家学院的论文“ManiSkill3: GPU Parallelized Robotics Simulation and Rendering for Generalizable Embodied AI”。
模拟为机器人学习带来了前所未有的计算可扩展方法。然而,许多现有的模拟框架,通常支持狭窄的场景 / 任务范围,并且缺乏扩展通用机器人技术和 sim-2-real 的关键功能。开源 ManiSkill 3,是速度最快的状态-视觉 GPU 并行机器人模拟器,具有针对通用操纵的接触-丰富物理性。ManiSkill 3 支持许多方面的 GPU 并行化,包括模拟 + 渲染、异构模拟、点云 / 体素视觉输入等。与其他平台相比,在 ManiSkill3 上进行渲染模拟的运行速度可以提高 10-1000 倍,而 GPU 内存使用量减少 2-3 倍,由于系统中的 python/pytorch 开销最小、在 GPU 上进行模拟以及使用 SAPIEN 并行渲染系统,在基准环境中可实现高达 30,000+ FPS。过去需要数小时才能训练的任务现在只需几分钟。最全面的 GPU 并行环境/任务,涵盖 12 个不同的领域,包括但不限于移动操纵,用于艺术家或现实世界数字孪生设计的真实场景中绘画、人形和灵巧操纵等任务。此外,还提供数百万个演示帧,来自运动规划、RL 和远程操作。ManiSkill3 还提供了一套全面的基线,涵盖流行的 RL 和从演示中学习算法。
机器人技术的一大挑战是鲁棒且通用的操控。然而,与视觉和语言研究不同,目前还没有可用于训练机器人操控的良好数据集。一种方法是创建可规模化的现实世界远程操作工具(Fu,2024;Cheng,2024),然后进行模仿学习。另一种方法是建立现实世界的强化学习来微调经过训练的离线策略(Feng,2023)。然而,现实世界的模仿学习方法需要大量数据,而这些数据无法以低成本高效收集,只能实现相对较低的成功率,否则对于现实世界的部署是不切实际的(Zhao,2024)。现实世界的强化学习方法很有前景,但需要在现实世界中进行大量设置才能产生现实世界的奖励/成功和环境重置。
GPU 并行模拟,例如 Isaac(Makoviychuk,2021)和 Mujoco 的 MJX(Todorov,2012),通过利用强化学习 (RL) 进行大规模 GPU 并行模拟训练,在解决机器人运动等一些机器人问题方面取得了巨大进步(Rudin,2021)。GPU 并行模拟使数据生成成本极低。然而,当涉及到操纵时,成功通常仅限于较窄范围的操纵任务,并且通常需要强大的状态估计(Handa,2023)来取代 RGB 或点云等视觉输入。现有的 GPU 模拟器存在阻碍先前工作的泛化和可扩展性的局限性。这些模拟器缺乏对异构模拟的支持,其中每个并行环境包含不同的场景。此外,它们通常不支持快速并行渲染功能。因此,像强化学习 (RL) 这样对视觉输入进行操作的算法训练速度太慢,不切实际。
Isaac Lab,即 Isaac Orbit,(Mittal ,2023)和 Mujoco(Todorov,2012)是一些开源通用刚体 GPU 并行机器人模拟器。Isaac Lab 和 Brax(Freeman,2021),后者支持 Mujoco MJX 后端,与 ManiSkill 最相似,因为它们为强化学习/模仿学习提供了开箱即用的环境,以及用于构建环境的 API。有一些机器人框架,例如 Robocasa(Nasiriany,2024)、Habitat(Szot,2021)、AI2THOR(Kolve,2017)、OmniGibson(Li,2022)、RLBench(James,2020),它们仅具有 CPU 模拟后端,因此运行速度比 Isaac Lab 和 ManiSkill 慢几个数量级,这限制了研究人员通常只能探索模仿学习/运动规划方法,而不是强化学习/在线演示学习方法。Isaac Lab 依赖闭源 Isaac Sim 框架进行 GPU 并行模拟和渲染,而 ManiSkill 依赖开源 SAPIEN(Xiang,2020)实现相同功能。Brax/Mujoco 使用 MJX 后端,目前没有并行渲染。 Isaac Lab 和 ManiSkill 都使用 PhysX 进行 GPU 模拟。
现有数据集通常分为两类:真实世界数据集和模拟数据集。Open-X (Collaboration,2023) 是最大的真实世界机器人数据集之一,但存在数据标签不一致和数据质量总体较差的问题。DROID (Khazatsky,2024) 通过使用一致的数据收集平台解决 Open-X 的一些问题。然而,Open-X 和 DROID 都需要大量人力来收集数据,而且本质上很难扩展到典型视觉/语言数据集的大小,如ImageNet。在模拟数据集中,AI2-THOR (Kolve,2017) 和 OmniGibson (Li,2022) 等框架具有复杂的房间规模场景,但不容易提供演示或生成用于机器人学习的大规模演示的方法。 Robocasa 拥有无数的任务和逼真的房间规模场景,但进一步利用 MimicGen(Mandlekar,2023)通过生成新的演示来扩展人类遥控演示。
ManiSkill3和其他模拟方法的比较如表所示:
下面分析各种技术细节。
ManiSkill3 的工程设计使其能够通过灵活的任务构建 API 轻松支持多种不同类型的任务类别,从而为 GPU 并行机器人模拟提供统一的接口。在现有的流行机器人模拟器中,ManiSkill3 支持最多类别的不同任务。具体来说,将 12 个不同的类别分类如下:桌面操作、移动操作、房间规模的操作场景、四足/人形运动、人形/双手操作、多智体机器人、绘画/清洁、灵巧操作、视觉-触觉操作、经典控制、数字孪生和软体操纵环境。所有这些任务都是 GPU 并行的,也可以快速并行渲染,任务示例如图所示。每个任务类别都进行了各种优化,以便更准确、更快地运行,从而实现最先进的模拟速度。其他模拟器通常支持 ManiSkill3 轻松支持的任务类型的较小子集。
ManiSkill3 提供对 GPU 并行模拟和渲染的强大支持,是第一个在复杂的机器人操作任务中通过视觉输入实现快速 RL 的基准测试,Isaac Lab 最近也添加了类似的功能。拾起立方体或控制四足机器人从像素输入达到目标等任务现在可以在几分钟而不是几小时内解决。
在基准测试任务中有 128 个并行环境时,ManiSkill3 仅使用 4.4GB 的 GPU 内存,而 Isaac Lab 则使用 14.1GB。ManiSkill3 平台的内存效率为 RL 重放缓冲区或更大的神经网络模型等提供了更多空间。因此,训练和推理可以在单个 GPU 上保持高度优化,而无需在 CPU 上存储任何数据。在视觉 RL 的实验中,GPU 内存效率变得更加重要,因为更多并行环境带来的 FPS 增益变得微不足道。 GPU 内存效率对于像 TD-MPC2(Hansen,2024)和 Soft-AC(Haarnoja,2018)这样的离策略算法尤其重要,这些算法通常将重放缓冲区大小保持在 105 ∼ 106 帧的数量级。
由于渲染技术的不同,这种比较并不是严格意义上的同类比较。Isaac Lab 采用光线追踪进行并行渲染,而 ManiSkill3 结果是使用 SAPIEN 的光栅化渲染器生成的(如图所示的视觉比较,上部 ManiSkill3 和下部 Isaac Lab 输出 640x480 RGB 和深度图像),尽管 ManiSkill3 也支持不带并行化的光线追踪模式。光线追踪通常通过调整每像素样本数等参数来提供更大的灵活性,以平衡渲染速度和质量。值得注意的是,此处呈现的 Isaac Lab 数据使用了最快的渲染设置,尽管可以轻松调整以获得更好的渲染质量,这可能对 sim2real 有帮助。尽管使用了不同的渲染技术,但这个实验为比较提供了有意义的基础。
GPU 并行模拟和渲染进一步实现了全新的域随机化机制。例如,可以快速渲染 1000 多个不同的摄像头,每个摄像头具有不同的外/内参、安装/固定,以及在每个并行环境中随机化目标纹理。如图显示并行渲染器使用不同设置渲染 1024 个环境中的 4 个子集。模拟数据生成中的这种视觉多样性,可以更快地训练更具视觉鲁棒性的策略,这对于 sim2real 应用程序至关重要。此外,ManiSkill3 支持并行渲染体素和点云格式,支持 3D 机器人学习方法。
最后,ManiSkill3 实现了极快的视觉数字孪生。例如,ManiSkill3 实现了 SIMPLER(Li,2024)中的 4 个环境,这些环境是评估数字孪生,评估在现实世界数据上训练的通用机器人策略,例如 Octo(Octo Model Team,2024)和 Robotics Transformers,即 RT(Brohan,2022)。目前,ManiSkill3 数字孪生可以在没有人工监督的情况下以现实世界 60 倍到 100 倍的速度评估 Octo 等模型,并且运行速度比 SIMPLER 中的原始数字孪生实现快大约 10 倍。速度的提高归功于快速高效的大相机分辨率(640x480)并行渲染和灵活的 GPU 并行控制器,以匹配大多数现实世界的机器人手臂/操纵器。
ManiSkill3 是迄今为止唯一支持异构 GPU 模拟的模拟框架。此功能能够在不同的并行环境中模拟不同的目标几何形状、不同的目标数量和具有不同 DOF 的不同关节。例如,在“打开橱柜抽屉”任务中,对于每个并行环境,构建一个不同的橱柜(所有橱柜都具有不同的 DOF),并随机采样一个需要打开才能成功的抽屉链接。在“拾取杂物 YCB 任务”中,在每个并行环境中采样不同数量的 YCB 目标,并从拾取的杂物中随机采样一个目标。 ManiSkill3 轻松支持这种类型的模拟,并进一步支持同时并行渲染这些不同的场景,例如第 3 个视图渲染,如图所示。异构 GPU 模拟更泛化地学习操纵,因为 RL 中的算法现在可以同时对 YCB 目标数据集 (Calli et al., 2015) 或橱柜的 PartNet 移动数据集 (Mo et al., 2019) 中的每个单目标进行训练。
为了实现超越模拟的鲁棒现实世界机器人技术的目标,验证 sim2real 和 real2sim 在某些任务中均可通过 ManiSkill3 通过数字孪生实现。如图展示了由现实世界对应物支持的几个数字孪生。对于立方体拾取任务,分割出相关目标以输入 PointNet 模型,并仅在模拟数据上使用 PPO 进行训练,最终在 50cm x 50cm 的工作空间中实现了 95% 的真实世界成功率。对于视觉-触觉的钉插入任务,将由硅胶制成的触觉传感器模拟为软体,参考 (Chen 2024) 在这些环境中的原始方法结果,在现实世界中实现 95.08% 的成功率。最后,对于 real2sim 数字孪生,在 SIMPLER (Li et al., 2024) 中对 ManiSkill3 GPU 并行版的 4 个任务采用 Octo 和 RT-1X 评估。实现真实成功率与模拟成功率之间的相关性 0.9284,平均最大秩违反 (MMRV) 值为 0.0147,这与 SIMPLER 中报告的原始值接近。
如图是 ManiSkill3 模拟的 16 种机器人:
版权归原作者 硅谷秋水 所有, 如有侵权,请联系我们删除。