Skip to content

路线对照Isaac Lab14 天前

三条栈不是精度排名 ​

Isaac Lab 跑在 Isaac Sim 上,PhysX,环境数可以拉到上千,相机和激光要走渲染。MuJoCo MJX 把同一个 MuJoCo 模型放进 JAX,单卡上步态迭代快,Playground 的定位就是分钟级训练和零样本上机。Legged Gym 是 Rudin 等人那套 Isaac Gym 代码,2021–2024 的大量四足论文从这里长出来。Isaac Gym 预览版已经停更,新项目不要把它当长期基座。

Isaac LabMJX / PlaygroundLegged Gym
目录 idisaac-labgoogle-deepmind-mujoco、mujoco-playground无独立卡,上游是 leggedrobotics/legged_gym
物理PhysXMuJoCoPhysX(Isaac Gym)
适合要相机、要和 NVIDIA 部署对齐、人形接触要快、要 JAX、先把盲走策略上机复现旧论文
宇树现成仓库unitree_rl_lab、unitree_sim_isaaclab可用 menagerie 模型,再自己接部署unitree_rl_gym
安装Isaac Sim 版本必须和 Lab tag 对齐pip/jax 即可旧驱动和 Isaac Gym 轮子

目录里的 Isaac Lab 卡写着:v3.0.0 对应 Isaac Sim 6.0,v2.3 对应 4.5/5.0/5.1,v2.1 对应 4.5。tag 和 Sim 对不上时,报错看起来像 URDF 导入失败,实际是 Python 绑定版本错了。

unitree_rl_lab 已经覆盖 Go2、H1、G1。unitree_rl_gym 是更早的 Gym 风格实现。两套的观测向量顺序不一样,策略网络不能互换权重。

什么时候用哪条 ​

  • 只有关节编码器和 IMU,目标是平地或轻度崎岖行走:MJX 或 unitree_rl_gym 都够。Playground 更适合新实验。
  • 要深度图、要和操作策略放在同一个 Isaac 场景里:Isaac Lab。
  • 论文附录写的是 legged_gym 的某个 commit:用那个 commit 复现,复现完再迁到 Lab 或 MJX。中途换物理引擎等于重做随机化。

G1 基础版目录规格是 23 DoF,仿真里常见 29 DoF。随机化加在错误的关节上,真机手臂会跟着腿的残差抖。

域随机化清单 ​

下面是类别,不是一组可以直接粘贴的范围。legged_gym 的 LeggedRobotCfg.domain_rand 和 Isaac Lab 的事件项名字不同,数值要从你要对齐的那份配置抄。

训练时随机化:

  • 地面静摩擦、动摩擦
  • 恢复系数(不是每份配置都有)
  • 基座质量、各连杆质量缩放
  • 质心偏移
  • 电机强度或扭矩限制缩放
  • PD 增益缩放
  • 关节摩擦和阻尼
  • 动作延迟(步数)
  • 外力推力的间隔和大小
  • 初始关节位置、基座高度和速度
  • 地形高度场(如果策略声称能上楼梯)

观测侧随机化:

  • 关节位置、关节速度噪声
  • IMU 角速度和投影重力噪声
  • 编码器偏置

不要随机化、或者只在最后阶段轻轻加的:

  • 重力常数。它会把所有尺度带偏,真机对不上。
  • 把摩擦拉到仿真里已经打滑的区间。策略会学成滑步,上真机膝关节超载。

上机前的最小核对:

  1. 仿真默认站立高度和真机站立高度差在厘米级,而不是用错误的骨盆高度硬撑。
  2. 动作是相对默认姿态的残差,还是绝对位置。两边不一致,第一步就会蹲下去。
  3. 策略频率和底层伺服频率。常见是策略 50 Hz、电机位置环更高。部署代码里的 decimation 要和训练一致。
  4. 先在 unitree_mujoco 里回放,再上吊架,再松吊架。不要从 Isaac 渲染窗口直接下发到电机。

和操作策略的边界 ​

这条路线是腿。手臂的模仿学习不要和腿的 PPO 共用一个动作向量。G1 上身若用 GR00T 或 π0,下身应保持厂商行走控制器或单独的行走策略,两边的时钟用时间戳对齐,而不是塞进同一个 step()。

来源

本页事实对应的公开页面,以原文为准。

  1. Isaac Lab访问 2026-10-14
  2. MuJoCo MJX访问 2026-10-14