欢迎光临
我们一直在努力

开源人形机器人 RL 框架 Humanoid-Gym 论文解读:零样本 Sim2Real,从原理到本地部署

目录

  • 开源人形机器人 RL 框架 Humanoid-Gym 论文解读:零样本 Sim2Real,从原理到本地部署
    • 一、这篇论文解决了什么问题
    • 二、关键方法
      • 域随机化(Domain Randomization)
      • 五分量奖励函数
      • 高并行训练
      • Sim2Sim 验证管线
    • 三、实验结果
    • 四、本地部署全流程
      • 环境要求
      • Step 1:创建 Python 环境
      • Step 2:安装 PyTorch + CUDA
      • Step 3:安装 numpy
      • Step 4:安装 Isaac Gym
      • Step 5:安装 Humanoid-Gym
      • Step 6:启动训练
      • Step 7:评估训练好的策略
      • Step 8:Sim2Sim 验证(MuJoCo)
      • 硬件建议
      • 添加自定义机器人
    • 五、为什么重要:开源的力量
    • 六、适用场景与机器人平台
      • 适用场景
      • 已验证的机器人平台
      • 社区已验证或可迁移的平台
    • 七、局限

论文:Humanoid-Gym: Reinforcement Learning for Humanoid Robot with Zero-Shot Sim2Real Transfer(完全开源,GitHub 2021 stars) 会议:RSS 2024(Best Paper Award Finalist) 链接:https://arxiv.org/abs/2404.05695 GitHub:roboterax/humanoid-gym | 2021 stars 作者:Xinyang Gu*, Yen-Jen Wang*, Jianyu Chen(清华大学 IIIS)

一、这篇论文解决了什么问题

人形机器人 RL 训练有一个经典困境:在仿真里训练的策略放到真机上就失效。原因很直观——仿真永远不可能完美模拟真实物理:地面摩擦系数、关节阻尼、电机延迟、传感器噪声,每一个微小差异累积起来就会让策略崩溃。

传统做法是"仿真训练 → 真实微调":先在仿真里训一个差不多的策略,再放到真机上跑几百个 episode 微调。问题是真实微调又贵又危险——人形机器人摔一次可能就要修几万块。

Humanoid-Gym 的核心主张是:不需要真实微调,仿真里训出来的策略可以直接部署到真机上。这篇论文拿了 RSS 2024 的 Best Paper Award Finalist,GitHub 2021 stars,完全开源,已经成为人形机器人 RL 的事实标准训练框架。 在这里插入图片描述

二、关键方法

1. 域随机化(Domain Randomization)

这是实现零样本 Sim2Real 的核心技术。在训练过程中,每个 episode 随机扰动仿真环境的物理参数:

  • 地面摩擦系数:0.3 ~ 1.5
  • 关节阻尼:标称值的 70% ~ 130%
  • 连杆质量:标称值的 80% ~ 120%
  • 电机扭矩延迟:0 ~ 10ms
  • 基座初始姿态:随机偏转 +/-5度

通过在"五花八门的仿真世界"中训练,策略学会的不是"在这个特定仿真里怎么走",而是"在任何合理的物理参数下怎么走"。当它被部署到真实世界时,真实世界的物理参数只是它训练时见过的无数种组合之一。

2. 五分量奖励函数

Humanoid-Gym 的奖励函数包含五个分量,每个都经过消融实验验证为必需:

  • 速度跟踪:惩罚实际速度与目标速度的偏差(鼓励往前走,而不是原地踏步)
  • 能耗惩罚:惩罚过大的关节力矩(鼓励省电、动作平滑,而不是暴力发力)
  • 姿态约束:惩罚躯干偏离直立姿态(防止摔倒)
  • 足部接触力平滑:惩罚足部接触力的高频波动(鼓励稳定着地,而不是"跺脚")
  • 步态对称性:惩罚左右腿运动不对称(防止跛行)

作者发现,去掉任何一个分量都会导致 Sim2Real 迁移失败——要么真机上走不稳,要么直接摔倒。

3. 高并行训练

基于 Isaac Gym,同时运行 4096 个仿真环境。每个环境有不同的域随机化参数,策略在每个环境中独立采样动作、计算奖励、更新参数。高并行 + 域随机化的组合,让策略在训练过程中"见过"的物理参数组合数量远超传统方法。

4. Sim2Sim 验证管线

除了 Sim2Real,Humanoid-Gym 还提供了一套 Sim2Sim 管线:将 Isaac Gym 中训练的策略导出为 JIT 模型,然后在 MuJoCo 中验证。MuJoCo 的物理引擎比 Isaac Gym 更精确,Sim2Sim 验证通过后再上真机,进一步降低了真机测试的风险。 在这里插入图片描述

三、实验结果

  • 在 Isaac Gym 中训练的策略,零样本部署到真实人形机器人(RobotEra XBot-S 和 XBot-L),实现了稳定的双足行走
  • 支持多种速度指令(0.2 ~ 1.0 m/s),真机测试中速度跟踪误差 < 0.1 m/s
  • 对地面材质变化(瓷砖、地毯、草地)具有鲁棒性
  • 对外部推力扰动(侧向推 5N)能快速恢复平衡

四、本地部署全流程

以下步骤来自 Humanoid-Gym GitHub README,我在关键步骤加了注释。

环境要求
  • Ubuntu 20.04 / 22.04
  • NVIDIA 驱动 >= 525(最低 515)
  • Python 3.8
  • CUDA 11.7
  • Isaac Gym Preview 4
Step 1:创建 Python 环境

conda create -n humanoid-gym python=3.8
conda activate humanoid-gym

Step 2:安装 PyTorch + CUDA

conda install pytorch==1.13.1 torchvision==0.14.1 torchaudio==0.13.1 pytorch-cuda=11.7 -c pytorch -c nvidia

Step 3:安装 numpy

conda install numpy=1.23

注意:必须用 numpy 1.23,更高版本与 Isaac Gym 不兼容。

Step 4:安装 Isaac Gym

# 从 NVIDIA 官网下载 Isaac Gym Preview 4
# https://developer.nvidia.com/isaac-gym
cd isaacgym/python && pip install -e .
# 验证安装
cd examples && python 1080_balls_of_solitude.py

如果看到一堆球在仿真环境中弹跳,说明 Isaac Gym 安装成功。

Step 5:安装 Humanoid-Gym

git clone https://github.com/roboterax/humanoid-gym.git
cd humanoid-gym && pip install -e .

Step 6:启动训练

cd humanoid-gym/humanoid
python scripts/train.py –task=humanoid_ppo –run_name v1 –headless –num_envs 4096

参数说明:

  • –task=humanoid_ppo:使用 PPO 算法训练人形机器人运动
  • –run_name v1:实验名称,日志和模型会保存在 humanoid/logs/v1/ 下
  • –headless:无渲染模式,节省 GPU 资源
  • –num_envs 4096:并行环境数,根据 GPU 显存调整(24GB 显存建议 4096,12GB 建议 2048)
Step 7:评估训练好的策略

python scripts/play.py –task=humanoid_ppo –run_name v1

这会加载训练好的策略并在仿真环境中渲染运行,同时自动导出 JIT 模型供 Sim2Sim 和真机部署使用。

Step 8:Sim2Sim 验证(MuJoCo)

python scripts/sim2sim.py –load_model /path/to/logs/v1/exported/policies/policy_1.pt

在 MuJoCo 中验证策略的鲁棒性。如果 MuJoCo 中表现良好,再上真机。

硬件建议
  • 训练:单张 RTX 3090/4090(24GB)可跑 4096 环境,约 2-4 小时收敛
  • Sim2Sim:CPU 即可
  • 真机部署:需要人形机器人平台(论文使用 RobotEra XBot-S 和 XBot-L)
添加自定义机器人

如果你想用自己的机器人平台,需要:

  • 将 URDF/MJCF 模型文件放入 resources/ 目录
  • 在 envs/ 下创建新的配置文件 <your_robot>_config.py,继承自 legged_robot_config.py
  • 设置机器人名称、关节定义、PD 增益参数
  • 在 envs/__init__.py 中注册新任务
  • 五、为什么重要:开源的力量

    Humanoid-Gym 证明了零样本 Sim2Real 在人形机器人上是可行的。2021 stars 和 RSS 2024 Best Paper Finalist 说明社区和学术界都高度认可。对于 RL 研究者来说,它提供了一个完全开源的完整 baseline:奖励函数设计、域随机化策略、训练超参,全部开源可复现。你不需要从头造轮子,clone 下来改个 URDF 就能跑自己的机器人。

    六、适用场景与机器人平台

    适用场景
    场景状态说明
    双足平地行走 [OK] 直接可用 核心场景,0.2~1.0 m/s 速度指令
    多地形行走(瓷砖/地毯/草地) [OK] 直接可用 域随机化训练天然支持地面材质泛化
    抗扰动恢复 [OK] 直接可用 侧向推力 5N 以内可快速恢复平衡
    上下楼梯 [WARN] 需扩展 论文未覆盖,需修改地形生成和奖励函数
    跨越障碍 [WARN] 需扩展 同上,需引入视觉感知模块
    跑步/跳跃 [NO] 不支持 奖励函数和运动范围均未设计
    机械臂操作 [NO] 不支持 纯运动控制框架,无操作能力
    四足机器人 [OK] 可迁移 框架支持任意腿式机器人,改 URDF + 调参即可
    双足机器人(非人形) [OK] 可迁移 如 Cassie、Digit 等,替换模型文件即可
    已验证的机器人平台
    机器人类型身高验证状态
    RobotEra XBot-S 人形 1.2m [OK] 论文直接验证,零样本 Sim2Real
    RobotEra XBot-L 人形 1.65m [OK] 论文直接验证,零样本 Sim2Real
    社区已验证或可迁移的平台
    机器人类型迁移难度说明
    宇树 H1 / G1 人形 只需替换 URDF,调整关节限位和 PD 增益
    特斯拉 Optimus 人形 关节配置不同,需调整动作空间维度
    Figure 02 人形 同上
    宇树 Go2 / B2 四足 框架原生支持四足,已有社区成功案例
    Unitree Go1 四足 参考 zanshi-dev/robot-rl-locomotion
    Cassie 双足 双足机器人天然兼容
    Agility Digit 双足 需调整关节配置
    ROBOTIS 系列 小型人形/四足 参考 ROBOTIS-GIT/robotis_lab

    七、局限

    • 目前只支持平地行走,不支持上下楼梯、跨越障碍等复杂地形
    • 域随机化范围需要手动设定,对不同机器人平台需要重新调参
    • 不支持操作任务(只有运动控制,没有机械臂)
    • 依赖 Isaac Gym Preview 4(NVIDIA 已停止更新,后续可能需要迁移到 Isaac Lab)

    关注我,每周一篇论文深度解读 + 本地部署指南。

    本文首发于公众号 AI 共享前沿

    标签: Humanoid-Gym 强化学习 人形机器人 Sim2Real 开源 RL

    赞(0)
    未经允许不得转载:171主机测评 » 开源人形机器人 RL 框架 Humanoid-Gym 论文解读:零样本 Sim2Real,从原理到本地部署
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址