humanoid-gym

GitHub
1.9k 249 中等 7 次阅读 今天开发框架图像Agent视频其他
AI 解读 由 AI 自动生成,仅供参考

Humanoid-Gym 是一个基于 Nvidia Isaac Gym 的强化学习框架,专门用于训练双足机器人的运动能力。它的核心特点是支持“零样本 sim2real 迁移”,这意味着在模拟环境中训练好的策略可以直接部署到真实机器人上,无需额外的微调。

这个框架主要解决了双足机器人运动控制训练困难的问题。传统方法需要在真实环境中反复调试,耗时且成本高昂。Humanoid-Gym 通过精心设计的奖励机制和高保真仿真环境,大大简化了从模拟到真实世界的迁移过程。

它特别适合对双足机器人运动控制感兴趣的研究人员和开发者。框架提供了从 Isaac Gym 到 Mujoco 的 sim2sim 管道,以及先进的去噪世界模型学习(DWL)方法,帮助用户更高效地训练和验证机器人策略。目前已在 RobotEra 的 XBot-S(1.2米)和 XBot-L(1.65米)两款双足机器人上成功验证了零样本迁移效果。

使用场景

某机器人创业公司的人形机器人团队正在开发双足行走功能,目标是让机器人能在家庭环境中自主导航。

没有 humanoid-gym 时

  • 团队需要在真实机器人上反复调试行走策略,每次测试都面临硬件损耗风险,迭代周期长达数周
  • 模拟环境中训练好的策略直接部署到真实机器人时几乎完全失效,需要大量手动微调物理参数
  • 奖励函数设计完全依赖经验,缺乏针对人形机器人的标准化设计指南,团队走了大量弯路
  • 只能在单一模拟器中验证策略,无法评估策略在不同物理引擎下的鲁棒性
  • 团队成员需要同时精通强化学习算法和机器人硬件调试,学习成本极高

使用 humanoid-gym 后

  • 直接在 Isaac Gym 中完成训练,零样本迁移到 XBot-L 真实机器人上即可稳定行走,首次部署一次成功
  • 内置专门为人形机器人设计的奖励函数,大幅降低 sim2real 差距,策略可直接泛化到真实环境
  • 提供 sim2sim 管道,可将策略从 Isaac Gym 迁移到 Mujoco 进行交叉验证,确保策略的鲁棒性
  • 附带完整的训练脚本和配置说明,新成员也能快速上手,团队效率显著提升
  • 已在 RobotEra 的真实机器人上验证,团队可以直接复用经过验证的方案

humanoid-gym 将原本需要数月的 sim2real 适配工作缩短到数天,让人形机器人开发从"烧钱"变成可快速迭代的工程问题。

运行环境要求

操作系统
  • Linux
GPU

需要 NVIDIA GPU,建议驱动版本 525(最低 515),CUDA 11.7+

内存

未说明

依赖
notes基于 Nvidia Isaac Gym 的强化学习框架,需要从 NVIDIA 官网下载并安装 Isaac Gym Preview 4。建议使用 conda 管理 Python 环境。运行模拟需要 GPU 支持,可通过 --sim_device 和 --rl_device 参数指定设备。
python3.8
pytorch==1.13.1
numpy==1.23
isaacgym
humanoid-gym hero image

快速开始

Humanoid-Gym:用于人形机器人的零样本仿真到现实迁移强化学习框架

项目主页 | arXiv | Twitter

Xinyang Gu*, Yen-Jen Wang*, Jianyu Chen†

*:同等贡献。项目联合负责人,†:通讯作者。

Demo

Humanoid-Gym 是一个基于 Nvidia Isaac Gym 的易用强化学习(Reinforcement Learning,RL)框架,专为训练人形机器人运动技能而设计,强调从仿真到现实环境的零样本迁移。Humanoid-Gym 还集成了从 Isaac Gym 到 Mujoco 的仿真到仿真(sim-to-sim)框架,允许用户在不同的物理仿真环境中验证训练好的策略,以确保策略的鲁棒性和泛化能力。

该代码库已通过 RobotEra 的 XBot-S(1.2米高的人形机器人)和 XBot-L(1.65米高的人形机器人)在真实环境中进行验证,实现了零样本仿真到现实迁移。

特性

1. 人形机器人训练

本仓库提供人形机器人训练的全面指导和脚本。Humanoid-Gym 专门为人形机器人设计了奖励函数,简化了仿真到现实迁移的难度。在本仓库中,我们以 RobotEra 的 XBot-L 为主要示例。只需少量调整,也可用于其他机器人。我们的资源涵盖设置、配置和执行。我们的目标是通过深入的训练和优化,为机器人投入真实世界的运动任务做好充分准备。

  • 全面的训练指南:我们为训练的每个阶段提供详细的操作指南。
  • 逐步配置说明:我们的指导清晰简洁,确保高效的设置过程。
  • 便于部署的执行脚本:利用我们预先准备好的脚本简化训练工作流程。

2. 仿真到仿真支持

我们还分享了仿真到仿真(sim2sim)管道,允许您将训练好的策略转移到高度精确且精心设计的仿真环境中。获得机器人后,您可以自信地在真实环境中部署强化学习训练的策略。

我们的仿真器设置,特别是 Mujoco,经过精细调整以密切模拟真实场景。这种精心的校准确保了仿真环境和真实环境中的性能紧密对齐。这一改进使我们的仿真更加可信,并增强了对其在真实世界适用性的信心。

3. 去噪世界模型学习

机器人学:科学与系统(RSS),2024(最佳论文奖入围)

论文 | Twitter

Xinyang Gu*, Yen-Jen Wang*, Xiang Zhu*, Chengming Shi*, Yanjiang Guo, Yichen Liu, Jianyu Chen†

*:同等贡献。项目联合负责人,†:通讯作者。

去噪世界模型学习(Denoising World Model Learning,DWL)是一个先进的仿真到现实框架,集成了状态估计和系统识别。这种双重方法确保了机器人在真实环境中的学习和适应既实用又有效。

  • 增强的仿真到现实适应性:优化机器人从仿真环境过渡到真实环境的技术。
  • 改进的状态估计能力:用于精确可靠状态分析的高级工具。

人形机器人感知运动学习(即将推出!)

Twitter

灵巧手操作(即将推出!)

Twitter

安装

  1. 使用 conda create -n myenv python=3.8 创建一个 Python 3.8 的新 Python 虚拟环境。
  2. 为获得最佳性能,我们建议使用 NVIDIA 驱动版本 525 sudo apt install nvidia-driver-525。支持的最低驱动版本为 515。如果您无法安装版本 525,请确保您的系统至少具有版本 515 以保持基本功能。
  3. 安装 PyTorch 1.13 和 Cuda-11.7:
    • conda install pytorch==1.13.1 torchvision==0.14.1 torchaudio==0.13.1 pytorch-cuda=11.7 -c pytorch -c nvidia
  4. 使用 conda install numpy=1.23 安装 numpy-1.23。
  5. 安装 Isaac Gym:
    • https://developer.nvidia.com/isaac-gym 下载并安装 Isaac Gym Preview 4。
    • cd isaacgym/python && pip install -e .
    • 运行示例 cd examples && python 1080_balls_of_solitude.py
    • 有关问题排查,请参阅 isaacgym/docs/index.html
  6. 安装 humanoid-gym:
    • 克隆本仓库。
    • cd humanoid-gym && pip install -e .

使用指南

示例

# 在 humanoid-gym/humanoid 目录下
# 启动 4096 个环境下的 'v1' PPO 策略训练
# 此命令启动基于 PPO 算法的类人任务训练。
python scripts/train.py --task=humanoid_ppo --run_name v1 --headless --num_envs 4096

# 评估训练好的 PPO 策略 'v1'
# 此命令加载 'v1' 策略以在其环境中进行性能评估。
# 此外,它还会自动导出一个适合部署的 JIT(Just-In-Time,即时编译)模型。
python scripts/play.py --task=humanoid_ppo --run_name v1

# 实现仿真到仿真模型转换
# 此命令使用导出的 'v1' 策略进行仿真到仿真转换。
# 您必须先运行 play.py 获取 JIT 模型,然后将其与 sim2sim.py 一起使用
python scripts/sim2sim.py --load_model /path/to/logs/XBot_ppo/exported/policies/policy_1.pt

运行我们训练好的策略

python scripts/sim2sim.py --load_model /path/to/logs/XBot_ppo/exported/policies/policy_example.pt


#### 1. 默认任务


- **humanoid_ppo**
   - 用途:基线,PPO(Proximal Policy Optimization,近端策略优化)策略,多帧低层级控制
   - 观测空间:可变维度 $(47 \times H)$,其中 $H$ 是帧数
   - $[O_{t-H} ... O_t]$
   - privileged信息:73维度

- **humanoid_dwl(即将推出)**

#### 2. PPO 策略
- **训练命令**:要训练 PPO 策略,请执行:

python humanoid/scripts/train.py --task=humanoid_ppo --load_run log_file_path --name run_name

- **运行训练好的策略**:要部署训练好的 PPO 策略,请使用:

python humanoid/scripts/play.py --task=humanoid_ppo --load_run log_file_path --name run_name

- 默认情况下,会加载实验文件夹中最后一次运行的最新模型。但是,可以通过在训练配置中调整 `load_run` 和 `checkpoint` 来选择其他运行迭代/模型。

#### 3. 仿真到仿真(Sim-to-sim)
- **请注意:在启动 sim-to-sim 流程之前,请确保运行 `play.py` 导出 JIT(即时编译)策略。**
- **基于 Mujoco 的 Sim2Sim 部署**:使用以下命令利用 Mujoco 执行仿真到仿真(sim2sim)部署:

python scripts/sim2sim.py --load_model /path/to/export/model.pt



#### 4. 参数
- **CPU 和 GPU 使用**:要在 CPU 上运行仿真,请同时设置 `--sim_device=cpu` 和 `--rl_device=cpu`。对于 GPU 操作,请相应地指定 `--sim_device=cuda:{0,1,2...}` 和 `--rl_device={0,1,2...}`。请注意,`CUDA_VISIBLE_DEVICES` 不适用,并且必须匹配 `--sim_device` 和 `--rl_device` 的设置。
- **无头运行**:如需无渲染运行,请包含 `--headless`。
- **渲染控制**:在训练期间按 'v' 键切换渲染。
- **策略位置**:训练好的策略保存在 `humanoid/logs/<experiment_name>/<date_time>_<run_name>/model_<iteration>.pt`。

#### 5. 命令行参数
关于 RL 训练,请参阅 `humanoid/utils/helpers.py#L161`。
关于 sim-to-sim 流程,请参阅 `humanoid/scripts/sim2sim.py#L169`。

## 代码结构

1. 每个环境都依赖于一个 `env` 文件(`legged_robot.py`)和一个 `配置文件`(`legged_robot_config.py`)。后者包含两个类:`LeggedRobotCfg`(包含所有环境参数)和 `LeggedRobotCfgPPO`(表示所有训练参数)。
2. `env` 和 `config` 类都使用继承。
3. `cfg` 中指定的非零奖励权重会将相应名称的函数添加到总奖励中。
4. 任务必须通过 `task_registry.register(name, EnvClass, EnvConfig, TrainConfig)` 注册。注册可以在 `envs/__init__.py` 中进行,也可以在该仓库外部进行。

## 添加新环境

基础环境 `legged_robot` 构建了一个粗糙地形 locomotion(运动)任务。相应的配置没有指定机器人资产(URDF/MJCF),也没有设置奖励权重。

1. 如果需要添加新环境,请在 `envs/` 目录中创建一个新文件夹,并创建一个名为 `<your_env>_config.py` 的配置文件。新配置应继承自现有环境配置。
2. 如果要引入新机器人:
 - 将相应的资产插入 `resources/` 文件夹。
 - 在 `cfg` 文件中,设置资产路径,定义 body 名称、default_joint_positions(默认关节位置)和 PD gains(比例-微分增益)。指定所需的 `train_cfg` 和环境名称(python 类)。
 - 在 `train_cfg` 中,设置 `experiment_name` 和 `run_name`。
3. 如需要,在 `<your_env>.py` 中创建您的环境。继承自现有环境,覆盖所需函数和/或添加您的奖励函数。
4. 在 `humanoid/envs/__init__.py` 中注册您的环境。
5. 根据需要修改或调整 `cfg` 或 `cfg_train` 中的其他参数。要移除奖励,请将其权重设置为零。不要修改其他环境的参数!
6. 如果您希望新机器人/环境执行 sim2sim,您可能需要修改 `humanoid/scripts/sim2sim.py`:
 - 检查机器人在 MJCF 和 URDF 之间的关节映射。
 - 根据您训练的策略更改机器人的初始关节位置。

## 故障排除

请注意以下情况:

```bash
# 错误
ImportError: libpython3.8.so.1.0: cannot open shared object file: No such file or directory

# 解决方案
# 设置正确的路径
export LD_LIBRARY_PATH="~/miniconda3/envs/your_env/lib:$LD_LIBRARY_PATH" 

# 或者
sudo apt install libpython3.8

# 错误
AttributeError: module 'distutils' has no attribute 'version'

# 解决方案
# 安装 pytorch 1.12.0
conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch

# 错误,源于 conda 分发的 libstdc++ 版本与构建 Isaac Gym 时使用的版本不同
ImportError: /home/roboterax/anaconda3/bin/../lib/libstdc++.so.6: version `GLIBCXX_3.4.20` not found (required by /home/roboterax/carbgym/python/isaacgym/_bindings/linux64/gym_36.so)

# 解决方案
mkdir ${YOUR_CONDA_ENV}/lib/_unused
mv ${YOUR_CONDA_ENV}/lib/libstdc++* ${YOUR_CONDA_ENV}/lib/_unused

引用

如果您使用此代码或其部分内容,请引用以下文献:

@article{gu2024humanoid,
  title={Humanoid-Gym: Reinforcement Learning for Humanoid Robot with Zero-Shot Sim2Real Transfer},
  author={Gu, Xinyang and Wang, Yen-Jen and Chen, Jianyu},
  journal={arXiv preprint arXiv:2404.05695},
  year={2024}
}

@inproceedings{gu2024advancing,
  title={Advancing Humanoid Locomotion: Mastering Challenging Terrains with Denoising World Model Learning},
  author={Gu, Xinyang and Wang, Yen-Jen and Zhu, Xiang and Shi, Chengming and Guo, Yanjiang and Liu, Yichen and Chen, Jianyu},
  booktitle={Robotics: Science and Systems},
  year={2024},
  url={https://enriquecoronadozu.github.io/rssproceedings2024/rss20/p058.pdf}
}

致谢

Humanoid-Gym 的实现依赖于 legged_gymrsl_rl 项目(由 Robotic Systems Lab 创建)提供的资源。我们特别使用了他们研究中的 LeggedRobot 实现来增强我们的代码库。

如有疑问?

如果您有任何其他问题,请联系 support@robotera.com 或在此仓库中创建 issue。

版本历史

v1.0.0

常见问题

相似工具推荐

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|今天
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

139k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

107.7k|★★☆☆☆|2天前
开发框架图像Agent

NextChat

NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。

87.6k|★★☆☆☆|今天
开发框架语言模型

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85k|★★☆☆☆|今天
图像数据工具视频

ragflow

RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。

77.1k|★★★☆☆|昨天
Agent图像开发框架