在现代机器人模拟领域,性能基准测试是评估不同模拟器效率和效果的重要手段。本文将深入探讨 Genesis 模拟器的性能表现,特别是与其他主流模拟器如 Isaac Gym 和 Mujoco XLA (MJX) 的比较。通过一系列实验,我们将揭示 Genesis 在静态控制、动态控制、碰撞处理和操作任务等多方面的优势。
1. 基准测试设置
硬件配置
- 处理器:Intel Core i9 14900KF
- 显卡:Nvidia GeForce RTX 4090
- 内存:32G RAM
- 模拟器版本(截至2025年1月3日):
- Genesis: 0.2.1
- Mujoco XLA (MJX): 3.2.6
- Isaac Gym: Preview 4 Release
- ManiSkill: commit 42d4fcf (3.0.0b15)
所有测试均通过 SSH 在 Macbook Pro (Apple M1 Pro) 上进行,以避免由于图形相关应用程序的并发运行而导致的性能下降。
2. Franka Arm 的性能测试
2.1 Genesis 与 Isaac Gym 的比较
在这一部分,我们将 Genesis 与 Isaac Gym 进行比较,重点关注静态控制和动态控制下的性能。
2.1.1 静态控制,无碰撞
在静态控制的实验中,我们命令 Franka 手臂移动到目标关节位置并保持静止。此设置下,求解器仅处理 PD 控制器、质量矩阵计算和正向运动学/动力学。
结果:
批量大小 | Genesis 每个环境 FPS | Isaac Gym 每个环境 FPS | 性能提升 |
512 | 3751 | 1378 | 2.70x |
1024 | 3692 | 1257 | 2.93x |
2048 | 3762 | 1066 | 3.54x |
4096 | 3607 | 789 | 4.58x |
8192 | 3507 | 514 | 6.81x |
16384 | 2749 | 265 | 10.38x |
32768 | 1540 | 130 | 11.79x |
在使用 32,768 个并行环境时,Genesis 达到了超过 50 万 FPS 的总速度,速度比 Isaac Gym 快了 11 倍以上。这一结果表明,Genesis 在处理静态场景时具有显著的性能优势。
2.1.2 动态随机控制
在动态控制的实验中,我们让手臂在达到指定配置后继续随机移动,以测试求解器在动态场景中的表现。
结果:
批量大小 | Genesis 每个环境 FPS | Isaac Gym 每个环境 FPS | 性能提升 |
512 | 1682.21 | 905.62 | 1.86x |
1024 | 1639.45 | 824.51 | 1.99x |
2048 | 1608.74 | 667.15 | 2.41x |
4096 | 1585.63 | 475.44 | 3.34x |
8192 | 1449.29 | 255.21 | 5.68x |
16384 | 1251.02 | 129.26 | 9.68x |
32768 | 829.48 | 58.80 | 14.11x |
即使在动态场景中,Genesis 仍然表现出优越的性能,最大 FPS 达到 27 万,速度比 Isaac Gym 快了 14 倍。
2.2 Genesis 与 MJX 的比较
接下来,我们将 Genesis 与 Mujoco XLA (MJX) 进行比较,重点关注动态场景中的性能。
2.2.1 无控制,无碰撞
在这一实验中,我们使用标准的 Franka Panda MJCF 文件,进行无碰撞的自由下落测试。
结果:
批量大小 | Genesis 每个环境 FPS | MJX (jit_steps=1) 每个环境 FPS | 性能提升 |
512 | 4150.25 | 232.51 | 17.85x |
1024 | 4081.00 | 229.63 | 17.77x |
2048 | 3925.00 | 223.22 | 17.58x |
4096 | 3947.17 | 219.10 | 18.02x |
8192 | 3431.39 | 212.13 | 16.18x |
16384 | 2562.64 | 187.41 | 13.67x |
32768 | 1458.12 | 134.64 | 10.83x |
在这一设置下,Genesis 的性能比 MJX 快了近 18 倍,显示出其在无碰撞情况下的强大处理能力。
2.2.2 动态控制,持续碰撞
在动态场景中,我们让手臂自由下落并与地面产生持续碰撞,以测试求解器在处理碰撞时的性能。
结果:
批量大小 | Genesis 每个环境 FPS | MJX (jit_steps=1) 每个环境 FPS | 性能提升 |
512 | 1085.15 | 766.52 | 1.42x |
1024 | 1045.66 | 685.29 | 1.53x |
2048 | 994.86 | 535.28 | 1.86x |
4096 | 969.18 | 349.85 | 2.77x |
8192 | 890.08 | 172.49 | 5.16x |
16384 | 788.84 | 77.32 | 10.20x |
32768 | 499.16 | 32.56 | 15.33x |
在动态场景中,Genesis 仍然保持了优越的性能,最大 FPS 达到 16.35 万,比 MJX 快了 15 倍。
3. 操作任务(抓取)
在这一部分,我们将测试 Genesis 在抓取任务中的表现,包括静态抓取和动态抓取。
3.1 抓取球体
在静态抓取实验中,我们使用 Franka 手臂抓取一个球体,并保持在指定位置。
结果:
批量大小 | Genesis 每个环境 FPS | ManiSkill 每个环境 FPS | 性能提升 |
512 | 1482.63 | 360.98 | 4.11x |
1024 | 1437.15 | 336.56 | 4.27x |
2048 | 1282.98 | 282.44 | 4.54x |
4096 | 1406.55 | 209.39 | 6.72x |
8192 | 1233.47 | 115.16 | 10.71x |
16384 | 1003.52 | 58.92 | 17.03x |
32768 | 506.56 | 30.11 | 16.82x |
在抓取球体的实验中,Genesis 的性能比 ManiSkill 快了超过 16 倍。
3.2 抓取立方体
在抓取立方体的实验中,我们使用 URDF 版本的 Franka 进行测试。
结果:
批量大小 | Genesis 每个环境 FPS | ManiSkill 每个环境 FPS | 性能提升 |
512 | 1227.27 | - | - |
1024 | 1041.97 | 252000 | 4.23x |
2048 | 1152.16 | 380000 | 6.21x |
4096 | 1185.26 | 470000 | 10.3x |
8192 | 1073.74 | 540000 | 16.29x |
16384 | 854.25 | 540000 | 22.51x |
在抓取立方体的实验中,Genesis 的性能同样表现出色,显示出其在抓取任务中的高效性。
4. 大规模多物体场景优化
Genesis 还支持自动休眠功能,以优化大规模场景的模拟性能。通过将处于静止状态的物体置于休眠状态,Genesis 能够显著提高模拟效率。
结果:
物体数量 | Genesis FPS | MJX FPS | 性能提升 |
10 | 243987120.11 | 129055.95 | 1890x |
20 | 98120179.52 | 26260.20 | 3736x |
100 | 13621238.26 | 1278.55 | 10658x |
在大规模静态场景中,Genesis 的性能比 MJX 快了多达 10,658 倍,显示出其在处理复杂场景时的强大能力。
5. 结论
通过一系列基准测试,本文展示了 Genesis 在多个方面的优越性能。无论是在静态控制、动态控制,还是在抓取任务和大规模场景模拟中,Genesis 都表现出色,远超其他主流模拟器。我们期待未来的版本能够进一步提升性能,继续推动机器人模拟领域的发展。
如果您对本报告有任何疑问或建议,欢迎随时与我们联系!