跳到主要内容

训练和演示

fourier_lab基于 NVIDIA Isaac Sim 与 Isaac Lab 构建训练环境,并结合 rsl_rl 强化学习框架,用于训练 Fourier GR3 机器人在复杂地形上的行走能力。

相关资源

安装指南

  1. 安装 Ubuntu 22.04 系统

  2. 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
  3. 依赖库安装

    # 进入到项目目录
    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 机制使机器人在行走且无手臂任务指令的情况下自然摆臂。
  1. 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/
  2. 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/
  3. 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/
  4. 导出策略

    • 运行 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 机器人项目的关注! 希望本资源能为您的机器人开发提供有力支持!