智元机器人Isaac Sim与Lab训练指南

用 Isaac Sim 和 Isaac Lab 训练智元机器人(比如开源的灵犀 X1),下肢运控(走路/平衡)和上肢操作(双臂抓取)在智元的开源仓库里用的是完全不同的套路。

一、 练走路(全身运控):Isaac Lab + RSL-RL

智元开源的 <code>agibot_x1_train</code> 原生用的是早期的 Isaac Gym。如果你要迁到最新的 Isaac Lab 上跑,核心就是走通“转模型 → 搭环境 → 跑 PPO → MuJoCo 验模 → AimRT 上真机”这五步:

1. 准备环境与模型转换
装好 Isaac Sim(建议 4.2 以上)和 Isaac Lab 后,把强化学习后端 <code>rsl_rl</code> 装上。接着去智元 GitHub(<code>AgibotTech</code>)拉下机器人的 URDF 文件。
Isaac Lab 只认 <code>.usd</code> 格式,直接用自带脚本转:

./isaaclab.sh -p scripts/tools/convert_urdf.py \
  /path/to/agibot_x1.urdf \
  source/extensions/omni.isaac.lab_assets/data/Robots/Agibot/x1.usd \
  --merge-joints

转完之后一定要打开 Isaac Sim 界面肉眼检查一遍。重点看大腿、髋关节处的碰撞体(Collision Mesh)有没有互相穿模。如果有自碰撞,训练一开跑机器人就会直接原地炸飞。

2. 对齐电机参数与注册环境
在 Isaac Lab 里新建一个环境配置(继承 <code>ManagerBasedRLEnvCfg</code>),最核心的工作是把智元自研关节(比如 X1 上的 R86、R52、L28 等型号)的物理参数填准:

  • 执行器配置(<code>ArticulationCfg</code>):严格按照智元开源代码里的电机参数,填好各关节的刚度($K_p$)、阻尼($K_d$)、最大扭矩和限位。
  • 观测与特权信息:人形机器人实机有通信延迟,单帧观测很难上真机。一般采用非对称 Actor-Critic(Asymmetric AC)结构——Actor 输入过去 5~15 帧的历史本体状态(角速度、重力投影、关节位置/速度偏差、上一帧 Action),Critic 则额外喂入无噪声的机身线速度、足底接触力和周边地形高程图。
  • 域随机化(Domain Randomization):能不能上真机全看这一步。必须把地面摩擦力、机身附加负载(Payload)、电机 $K_p / K_d$ 浮动($\pm 10\%$)以及外部随机推力(Push Robot)加上。

3. 开训与看效果
加上 <code>--headless</code> 关掉渲染界面,单张 RTX 4090 开 4096 个环境并行跑,大概一两个小时(迭代 3000~5000 步)就能收敛出不错的步态:

# 训练
./isaaclab.sh -p scripts/reinforcement_learning/rsl_rl/train.py \
  --task Isaac-Velocity-Rough-Agibot-X1-v0 --num_envs 4096 --headless

# 跑通后加载权重看画面
./isaaclab.sh -p scripts/reinforcement_learning/rsl_rl/play.py \
  --task Isaac-Velocity-Rough-Agibot-X1-Play-v0 --num_envs 32 \
  --checkpoint logs/rsl_rl/agibot_x1/model_4999.pt

4. Sim2Sim 验证与真机部署(最容易踩坑的地方)
千万不要把 Isaac Lab 导出的 ONNX 模型直接丢上真机!

  • MuJoCo 交叉验证:Isaac Sim 底层用的 PhysX 引擎和真实物理的足底接触特性有差异。智元在开源仓里配了 MuJoCo 的验证环境,先把导出的 ONNX 放进 MuJoCo 跑通。如果在 MuJoCo 里能站稳、能走,上真机基本就稳了。
  • 死磕关节顺序(Joint Order):这是新手炸机头号杀手。Isaac Lab 解析 USD 模型默认是按广度优先(BFS)排关节索引的,而 URDF、MuJoCo 和智元底层的 AimRT 通信框架通常是按深度优先(DFS)或左腿→右腿的自定义列表排的。在把观测塞进网络、以及把网络输出的 Action 发给电机之前,必须写一个索引重映射数组(Index Mapping)把关节顺序硬对齐。

二、 练干活(双臂操作/VLA):Isaac Sim + AgiBot Digital World

如果你的目标是训练远征系列或者灵犀双臂去拿东西、叠衣服,那就不需要自己从头写强化学习奖励函数了,直接用智元开源的 AgiBot Digital World。

  1. 拉取资产:去 HuggingFace 或 GitHub 把 <code>AgiBot Digital World</code> 的资产包下下来。里面有智元做好的 180 多类带真实物理材质的 USD 物品和商超、家居场景,直接拖进 Isaac Sim 就能用。
  2. 数据合成与策略微调:用 Isaac Sim 配合 CuRobo 运动规划器生成机械臂抓取轨迹,渲染出多视角 RGB-D 图像。把这些合成数据和智元开源的百万真机数据集 AgiBot World 混在一起,去微调 ACT、Diffusion Policy 或者智元的 GO-1 基座模型。
  3. 闭环评测:训完的模型可以直接挂载回 Isaac Sim 的仿真基准测试里,跑几百次抓取看成功率,不用每次都守着真机调试。