agibot_x1_train
智元灵犀X1人形机器人强化学习训练代码,基于Isaac Gym仿真+PPO算法实现Sim-to-Re
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
智元灵犀X1人形机器人强化学习训练代码,基于Isaac Gym仿真+PPO算法实现Sim-to-Re
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下教会一个人走路——你不能直接把他丢到街上让他自己摸索。传统机器人控制依赖手工调节 PID 参数的做法,就像让机器人「死记硬背」每一步动作,一旦地面稍有不平就会摔倒。而强化学习(RL)让机器人能从零开始,通过与仿真环境反复交互,自己摸索出稳健的步行策略。
智元机器人(AgiBot)在2024年开源了智元灵犀X1(AgiBot X1)——一款模块化高自由度人形机器人。其软件系统以智元自研的 AimRT 作为中间件,运动控制采用强化学习方法。核心理念是 Sim-to-Real(仿真到现实)迁移——在 NVIDIA Isaac Gym 仿真器中训练策略,然后将训练好的模型部署到真实机器人上。
图1:智元灵犀X1人形机器人实物图
训练通过 scripts/train.py 驱动,核心是 PPO(Proximal Policy Optimization)算法:
python scripts/train.py --task=x1_dh_stand --run_name=<实验名> --headless
训练过程中,Isaac Gym 同时模拟 4096 个并行环境实例,大幅加速数据采集。每个环境的观测空间设计精细:单步观测 47 维,包含关节位置、速度、IMU 姿态、接触力等;通过 66 帧历史堆叠(frame_stack=66),网络能感知时间序列的运动模式;另有 73 维特权观测供 Critic 网络学习「真实回报」。
图2:Isaac Gym 仿真训练界面(并行4096环境)
训练完成后,用 scripts/play.py 加载模型进行仿真验证,支持 Logitech F710 手柄实时控制机器人移动和转向。模型可导出为 JIT 或 ONNX 格式,供 AimRT 推理框架在真机上部署:
python scripts/export_policy_dh.py --task=x1_dh_stand --load_run=<run>
python scripts/export_onnx_dh.py --task=x1_dh_stand --load_run=<run>
图3:Play模式下仿真验证
用 MuJoCo 物理引擎做二次验证,排除 Isaac Gym 与 MuJoCo 之间的物理差异:
python scripts/sim2sim.py --task=x1_dh_stand --load_model /path/to/exported_policies/
图4:MuJoCo中Sim-to-Sim验证
代码框架大量借鉴了 ETH Zurich 的 Legged Gym 项目(BSD-3-Clause),但进行了大量针对人形机器人的定制修改。架构分为三层:
| 层次 | 目录 | 说明 |
|---|---|---|
| 环境层 | humanoid/envs/ | Isaac Gym 仿真环境封装,含奖励函数、物理交互 |
| 算法层 | humanoid/algo/ppo/ | PPO 算法实现、Actor-Critic 网络结构 |
| 脚本层 | humanoid/scripts/ | Train/Play/Export 入口 |
Actor 网络采用时序卷积(Temporal Convolution) 提取历史观测特征:输入 66 帧历史,每帧 47 维观测,通过多层 1D 卷积(kernel=[6,4],filter=[32,16])压缩为 64 维短期特征,再与当前 proprioceptive 观测拼接后送入 MLP 策略头(256×3 层)。Critic 网络额外接收特权物理参数,通过独立 MLP 估计状态值函数。另有 State Estimator 从历史观测中推断不可直接测量的物理状态。
项目定义了 5 维命令空间(num_commands=5):[sin_pos, cos_pos, vx, vy, vz],sin/cos 编码转向角度避免跳变,vx/vy/vz 控制三维线速度。策略输出全身运动意图,由底层 PD 控制器转换为关节扭矩。
项目提供了完整的机器人适配接口,只需三步即可将框架用于其他人形或腿式机器人:
在 humanoid/envs/ 下新建目录,创建 <robot>_config.py(继承 LeggedRobotCfg)和 <robot>_env.py(继承 LeggedRobot),配置 URDF 路径、PD 增益等参数
将 URDF、mesh 文件(STL)、MJCF 文件放入 resources/robots/<robot>/ 目录
在 humanoid/envs/__init__.py 中注册新机器人
这套机制使项目本质上是一个人形/腿式机器人强化学习训练框架,而非仅限于 X1 的专有代码。
图5:Logitech F710 手柄控制映射
Isaac Gym 商业许可:Isaac Gym Preview 4 需从 NVIDIA 官网注册下载,许可条款限制商业使用,为广泛采用设置了门槛。
Sim-to-Real Gap:仿真与真实物理环境之间的差异(接触力学、传感器噪声、延迟等)仍是强化学习机器人领域公认难题。
硬件门槛高:训练需要 NVIDIA GPU(CUDA 11.7+)和至少 8GB 显存,普通研究者难以复现。
智元机器人作为国内人形机器人头部公司,将核心训练代码开源具有标志性意义。相比特斯拉 Optimus、Figure AI 等海外玩家的保密策略,AgiBot 选择开放 RL 训练框架,有助于推动国内人形机器人技术生态建立。504 个 fork 和 1675 个 star 表明社区对此类资源需求强烈。