训练和演示
fourier_lab基于 NVIDIA Isaac Sim 与 Isaac Lab 构建训练环境,并结合 rsl_rl 强化学习框架,用于训练 Fourier GR3 机器人在复杂地形上的行走能力。
相关资源
- NVIDIA Isaac Sim: https://docs.isaacsim.omniverse.nvidia.com/5.1.0/index.html
- NVIDIA Isaac Lab
- fourier_lab: https://github.com/FFTAI/fourier_lab.git
安装指南
-
安装 Ubuntu 22.04 系统
-
Conda环境配置
# 安装Miniconda
cd ~/Downloads
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
# 创建训练环境
conda create -n fourier-lab python=3.11 -y
conda activate fourier-lab -
依赖库安装
# 进入到项目目录
cd path/to/your/project
# 更新pip工具
pip install --upgrade pip
# 安装Isaac Sim
pip install "isaacsim[all,extscache]==5.1.0" --extra-index-url https://pypi.nvidia.com
# 安装torch和torchvision
pip install -U torch==2.7.0 torchvision==0.22.0 --index-url https://download.pytorch.org/whl/cu128
# 创建项目文件夹并进入到项目目录
mkdir GRX_humanoid && cd GRX_humanoid
# 代码克隆
git clone https://github.com/FFTAI/fourier_lab.git
git clone https://github.com/isaac-sim/IsaacLab.git
cd fourier_lab
# 安装Isaac Lab
../IsaacLab/isaaclab.sh -i
# 安装 rsl_rl
../IsaacLab/isaaclab.sh -p -m pip install -e rsl_rl
# 测试 rsl_rl
../IsaacLab/isaaclab.sh -p -m pip show rsl-rl-lib
# 安装项目
cd exts/GRX_humanoid
python -m pip install -e .
使用说明
- 首次运行请先完成 urdf 转 usd;同一模型重复训练时可跳过转换步骤。
- 其中
train.py用于训练策略,play.py用于验证当前策略在仿真环境中的运动效果和策略导出。
WBC:LOWER / FULL / MASK 的区别
WBC LOWER:仅针对下肢与躯干相关关节进行控制与训练,通常用于优先保证基础站立与行走稳定性的场景,训练收敛相对更快。WBC FULL:对全身关节进行控制与训练(含上肢),适合需要全身运动能力与协同控制的场景。WBC MASK:在FULL的基础上,通过 mask 机制使机器人在行走且无手臂任务指令的情况下自然摆臂。
-
GR3 WBC LOWER 训练与演示(适用于 GR3)
# 将 urdf 转换为 usd
python scripts/tools/convert_urdf.py models/gr3v2_1_1/basic_urdf/gr3v2_1_1_lower.urdf exts/GRX_humanoid/GRX_humanoid/assets/Robots/ppv211_humanoid_lower.usd --merge-joints
# 启动训练
../IsaacLab/isaaclab.sh -p scripts/rsl_rl/train.py --task PPV211HumanoidRoughEnvCfg_WBC_LOWER --headless
# 演示测试
../IsaacLab/isaaclab.sh -p scripts/rsl_rl/play.py --task PPV211HumanoidRoughEnvCfg_WBC_LOWER_Play
# 查看训练日志
tensorboard --logdir logs/rsl_rl/ppv211_humanoid_rough_wbc_lower/ -
GR3 WBC FULL 训练与演示(适用于 GR3)
# 将 urdf 转换为 usd
python scripts/tools/convert_urdf.py models/gr3v2_1_1/basic_urdf/gr3v2_1_1_noArmColli.urdf exts/GRX_humanoid/GRX_humanoid/assets/Robots/ppv211_noArmCollision.usd --merge-joints
# 启动训练
../IsaacLab/isaaclab.sh -p scripts/rsl_rl/train.py --task PPV211HumanoidRoughEnvCfg_WBC_FULL --headless
# 演示测试
../IsaacLab/isaaclab.sh -p scripts/rsl_rl/play.py --task PPV211HumanoidRoughEnvCfg_WBC_FULL_Play
# 查看训练日志
tensorboard --logdir logs/rsl_rl/ppv211_humanoid_rough_wbc_full/ -
GR3 WBC MASK 训练与演示(适用于 GR3)
# 将 urdf 转换为 usd
python scripts/tools/convert_urdf.py models/gr3v2_3_3/basic_urdf/gr3v2_3_3_noArmColli.urdf exts/GRX_humanoid/GRX_humanoid/assets/Robots/ppv233_noArmCollision.usd --merge-joints
# 启动训练
../IsaacLab/isaaclab.sh -p scripts/rsl_rl/train.py --task PPV233_Mask_WBC --headless
# 演示测试
../IsaacLab/isaaclab.sh -p scripts/rsl_rl/play.py --task PPV233_Mask_WBC_Play
# 查看训练日志
tensorboard --logdir logs/rsl_rl/ppv233_mask_wbc_full/ -
导出策略
- 运行
play.py的时候,会自动导出策略网络模型到对应任务的日志目录,eg. logs/rsl_rl/ppv211_humanoid_rough_wbc_lower。 - 该策略模型可用于后续真实机器人的部署。
- 运行
[!NOTE]
- 不同机型间复用以上指令,只需要修改所有gr3_v_x_x,ppv2xx 相关的文件路径和task名称。
- 使用 NVIDIA RTX 4090 的平均训练时间,每个 iteration 约为 6 秒。
- 完成 5000 个 iteration 需要大约 8 小时。实际训练时间可根据奖赏增长情况和训练目标进行调整。
感谢您对傅利叶智能 GR3 机器人项目的关注! 希望本资源能为您的机器人开发提供有力支持!