Isaac Gym: High Performance GPU-Based Physics Simulation For Robot Learning
作者: Viktor Makoviychuk, Lukasz Wawrzyniak, Yunrong Guo, Michelle Lu, Kier Storey, Miles Macklin, David Hoeller, Nikita Rudin, Arthur Allshire, Ankur Handa, Gavriel State · arXiv 2021
许可协议
- 开放获取
- 论文: CC BY 4.0
以下内容均依据论文全文,按其 CC BY 4.0 许可协议使用;其中的图已注明作者。
一句话总结
Isaac Gym 通过 PyTorch 张量 API,在一块 GPU 上运行 PhysX 仿真、观测、奖励和 PPO 训练;Shadow Hand 立方体重定向从在 CPU 集群上的 30 h 缩短到不到 1 h。
为何重要
以前需要 CPU 集群的任务,可以在单块 GPU 上用几分钟到几小时训练完成,这缩短了运动和灵巧操作研究的迭代周期。作者还将以这种方式训练的策略迁移到了在崎岖地形上的真实 ANYmal,以及一台远程的真实 TriFinger 上,这表明仿真的接触物理能够支持从仿真到现实的工作。
问题
机器人 RL 通常在 CPU 上仿真物理、在 GPU 上训练网络,因此每一步数据都要在设备之间移动,仿真速度限制了训练。例如,OpenAI 的 Shadow Hand 立方体工作使用了 384 台机器、6144 个 CPU 核心外加 8 块 V100 GPU,耗时 30 小时,其后续的魔方(Rubik's Cube)工作使用了近 30,000 个 CPU 核心。
提出的方法
Isaac Gym 在 GPU 上运行 NVIDIA PhysX,并做了两项补充:不再在每一步之后把仿真结果取回 CPU,以及一个直接的 GPU API 在 GPU 缓冲区中读取状态并施加控制。这些缓冲区无需拷贝即被封装为 PyTorch 张量,因此数千个并行环境的步进、观测、奖励计算和训练(使用 rl_games 的 PPO 实现)都在一块 GPU 上完成,机器人从 URDF 或 MJCF 加载。
关键见解
- 将物理状态、观测和奖励计算以及策略训练都保留在 GPU 上,消除了限制传统 RL 流程的 CPU-GPU 数据拷贝。
- 更多的并行环境会缩短训练时间,直到每个环境的时域变得过短:在时域 32 下,Humanoid 超过 4096 个环境后没有收益并学到更差的步态,但当时域加倍时,它在 8192 和 16384 个环境下都能学会。
- 仿真吞吐量随模型复杂度下降:在一块 A100 上,Ant 最高约每秒 700K 环境步,Humanoid 约 200K,Shadow Hand 约 150K。
- 非对称 actor-critic(critic 接收仿真器特权状态,策略只接收真实机器人上可获得的观测)用于 Shadow Hand OpenAI 和 TriFinger 设置,以实现从仿真到现实的迁移。
- 可移动的手腕有助于重定向:Allegro Hand 手腕固定、手指略长,尽管自由度更少,其连续成功次数仍少于 Shadow Hand。
主要结果
- 在单块 A100 上:Ant 在 20 s 内奖励超过 3000,Humanoid 在不到 4 min 内学会奔跑(奖励 5000),ANYmal 在不到 2 min 内学会跟随速度目标,Franka 立方体堆叠在不到 25 min 内收敛。
- 采用 OpenAI 观测和域随机化的 Shadow Hand:不到 1 h 达到超过 20 次连续成功(前馈网络),略少于 6 h 达到 37 次(LSTM),而 OpenAI 在 6144 个 CPU 核心外加 8 块 V100 GPU 上分别需要 30 h 和约 17 h;最佳的 LSTM 随机种子在 2.5 h 内达到 37 次。
- Shadow Hand Standard(无随机化):不到 35 min 达到 20 次连续成功;将环境数从 256 提高到 16384,训练时间从 5×10⁴ s(约 14 h)缩短到 3×10³ s(约 1 h)。
- AMP 人形角色动画:使用 4096 个环境,约 6 min 内获得约 3900 万个样本,而在 PyBullet 中使用 16 个 CPU 核心约需 30 h,报告为 300× 的提升。
- 从仿真到现实:ANYmal 崎岖地形策略在一块 RTX A6000 上训练,不到 20 min,并迁移到真实机器人上;真实的 TriFinger 达到 55% 的平均成功率,迁移以远程方式完成。
- 相互矛盾的加速数字:v1 摘要称相比基于 CPU 仿真器的训练提升 1-2 个数量级,而 v1 引言和 Fig. 2 称 100×-1000×;当前的 arXiv 摘要称 2-3 个数量级。
局限
- Shadow Hand 实验仅在仿真中进行;与 OpenAI 的工作不同,没有尝试对手进行从仿真到现实的迁移,并且随机化中省略了动作延迟和电机齿隙。
- Shadow Hand Standard 使用的观测在真实机器人上可能无法获得,因此作者表示它不适合从仿真到现实的迁移。
- Ingenuity 是一个简化模型:力被直接施加到两个旋翼上,而不是仿真空气动力学。
- 使用 FleX 引擎时只有有限的张量 API 功能可用,场景设置在 CPU 上运行,所附示例使用 PyTorch,与 TensorFlow 集成需要进一步定制。
- 一旦时域变短,增加环境就不再有帮助:Ant 从 8192 增加到 16384 个环境没有收益,而 Humanoid 在时域 32 下超过 4096 个环境后训练更慢并学到次优步态。
对领域的影响
1469 次引用。论文以从 NVIDIA 下载(developer.nvidia.com/isaac-gym)的形式发布了 Isaac Gym,其中包括一个基础的 PPO 实现和一个 RL 任务系统,并在项目网站上提供结果和视频。
摘要
Isaac Gym 提供了一个高性能学习平台,可直接在 GPU 上为各种各样的机器人任务训练策略。物理仿真和神经网络策略训练都驻留在 GPU 上,通过将数据从物理缓冲区直接传递到 PyTorch 张量进行通信,完全不经过任何 CPU 瓶颈。这使得复杂机器人任务在单块 GPU 上的训练极其快速,与使用基于 CPU 的仿真器和 GPU 运行神经网络的传统 RL 训练相比,提升了 2-3 个数量级。我们在 https://sites.google.com/view/isaacgym-nvidia 上提供结果和视频,isaac gym 可从 https://developer.nvidia.com/isaac-gym 下载。
链接
- arXiv 2108.10470: https://arxiv.org/abs/2108.10470
- DOI https://doi.org/10.48550/arxiv.2108.10470: https://doi.org/https://doi.org/10.48550/arxiv.2108.10470
- PDF: https://arxiv.org/pdf/2108.10470v1
- 项目主页: https://sites.google.com/view/isaacgym-nvidia