whole_body_tracking/README.md at main · HybridRobotics/whole_body_tracking · GitHub
https://github.com/HybridRobotics/whole_body_tracking/blob/main/README.md
目录
一、前言
二、硬件与软件环境说明
2.1 机器配置与显卡型号(RTX 50 系)
2.2 Ubuntu 版本与内核说明
2.3 CUDA / 驱动 / Python / Conda 等版本选择建议
三.基础环境配置流程
3.1 Isaac-sim 安装配置流程
3.2 Isaac-lab 安装配置流程
3.3基础环境测试
四. BeyondMimic环境配置
4.1 安装 BeyondMimic 的 whole_body_tracking 仓库
4.2配置 WandB(做动作数据管理)
4.3准备动作数据并上传到 WandB Registry
4.4用 Isaac Sim 回放动作(测试数据 + WandB)
4.5开始训练 BeyondMimic Tracking Policy
4.6评估训练好的策略(play)
五.踩过的坑
5.1.Isaac Sim 版本过新 / 不匹配 Isaac Lab
5.2.把“Python 环境安装方式”和“Workstation 安装方式”混在一起
5.3.Numpy 版本冲突
一、前言
在具身智能与机器人强化学习的实验中,仿真环境 + 算力环境 往往比算法本身更难搭建。尤其是在 Ubuntu 22.04 + RTX 50 系显卡 这种较新的软硬件组合下,显卡驱动、CUDA、Isaac Sim / Isaac Lab、Python 依赖以及 BeyondMimic 本身之间的兼容性问题,很容易让人花大量时间在环境上“踩坑”。
本文从零开始,记录我在本地机器上搭建 BeyondMimic完整运行环境 的全过程,围绕以下几个核心目标展开:
-
在 Ubuntu 22.04 + RTX 50 系显卡 上配置稳定可用的 CUDA、驱动与基础依赖
-
完成 Isaac Sim 与 Isaac Lab 的安装、配置与联调,确保能够正常加载场景与运行示例
-
拉起并运行 BeyondMimic 的训练流程,包括必要的数据、配置文件与脚本说明
-
集成 Weights & Biases(wandb),实现训练过程的远程可视化与日志管理
-
记录配置过程中遇到的典型报错与解决方案,方便后续快速排坑复现
本文面向的读者主要是:
-
想在本地搭建 BeyondMimic + Isaac 仿真训练环境 的研究生 / 工程师
-
使用 RTX 40 / 50 系显卡 + Ubuntu 22.04,对环境兼容性有疑虑的同学
-
希望把训练过程接入 wandb 做可视化与实验管理 的开发者
二、硬件与软件环境说明
2.1 机器配置与显卡型号(RTX 50 系)
本篇教程的实验环境基于一台游戏本:联想拯救者 R9000P 2025 款,搭载 NVIDIA GeForce RTX 5060 独立显卡。整机定位偏高性能游戏 / 创作本,对本地仿真与深度强化学习训练来说,算力和散热都比较友好。
2.2 Ubuntu 版本与内核说明
本次环境搭建使用的系统为 Ubuntu 22.04.5 LTS(jammy),这是目前比较主流、兼容性也不错的长期支持版本,内核版本为6.8.0-87-generic
2.3 CUDA / 驱动 / Python / Conda 等版本选择建议
BeyondMimic 官方仓库在 README 中给出了一个推荐的软件环境,大致包括:
-
Isaac Sim:4.5.0
-
Isaac Lab:2.1.0
-
Python:3.10
-
平台:Linux x86_64
这些版本在传统 RTX 30 / 40 系显卡上已经比较成熟,但对于 RTX 50 系(如本机 RTX 5060) 来说,驱动和 CUDA 都比较新,如果严格使用旧版本组合,容易遇到兼容性问题。
结合官方文档和实际踩坑情况,本教程最终采用的环境组合如下(推荐给使用 RTX 50 系 / Blackwell 架构显卡的读者参考):
-
系统:Ubuntu 22.04.5 LTS
-
内核:6.8.0-87-generic
-
NVIDIA 驱动:580.105.08
-
CUDA 运行环境(nvidia-smi 显示):13.0
-
Conda 版本:conda 23.7.4
-
Python 版本:Python 3.11(通过 Conda 虚拟环境安装)
-
PyTorch:PyTorch 2.7.0(CUDA 12.8 构建)
-
Isaac Sim:5.0
-
Isaac Lab:2.2(官方就是针对 Isaac Sim 5.0 和新 GPU,包括 Blackwell / RTX 50 系显卡进行适配)
三.基础环境配置流程
3.1 Isaac-sim 安装配置流程
Isaac-sim下载链接:Download Isaac Sim — Isaac Sim Documentation 
下载完成后
1)创建 ov 目录 mkdir -p ~/.local/share/ov/pkg
2)把压缩包挪进去(路径按你实际改) mv ~/Downloads/isaac-sim-standalone-5.0.0-linux-x86_64.zip ~/.local/share/ov/pkg/
3)进入目录并解压 cd ~/.local/share/ov/pkg
unzip isaac-sim-standalone-5.0.0-linux-x86_64.zip
最终效果如下

先在不激活任何 conda 环境的情况下测一遍:
# 如果你当前是 (base),先退出一下 conda deactivate # 如果提示没有 conda 就略过
cd ~/.local/share/ov/pkg ./isaac-sim.sh –help
如果这条命令能正常打印帮助信息,没有直接报错,说明 Isaac Sim 基本没问题
3.2 Isaac-lab 安装配置流程
克隆Isaac-lab
cd ~/skx/IsaacLab # 随便选一个工作目录
git clone https://github.com/isaac-sim/IsaacLab.git
创建conda环境
conda create -n isaaclab python=3.11 -y
在 IsaacLab 里创建软链接 _isaac_sim
cd ~/IsaacLab
ln -s ~/.local/share/ov/pkg/isaac-sim-5.0.0 _isaac_sim # 把刚刚的 isaac-sim 目录挂进来
ls -l _isaac_sim # 检查一下结果,应该是:_isaac_sim -> /home/robot/.local/share/ov/pkg/isaac-sim-5.0.0
在 conda 环境里升级 PyTorch(为 RTX 5060 做准备)
确保已经激活你的环境:
conda activate isaaclab
然后在 这个环境 里安装 PyTorch(2.7.0 + CUDA 12.8):
pip install –upgrade pip
pip install "torch==2.7.0" "torchvision==0.22.0" \\ –index-url https://download.pytorch.org/whl/cu128
测试一下 GPU:
python – << 'PY'
import torch
print("torch:", torch.__version__)
print("cuda ok:", torch.cuda.is_available())
if torch.cuda.is_available():
print("device:", torch.cuda.get_device_name(0))
PY
看到你的 RTX 5060 名字,就说明这一步成功了
现在进入 IsaacLab 目录,运行官方安装脚本:
conda activate isaaclab cd ~/skx/IsaacLab chmod +x isaaclab.sh # 确保脚本有执行权限(如果已经有,这步不会出问题) ./isaaclab.sh –install # 安装 IsaacLab 扩展和 RL 依赖
完成后可以简单验证一下:
python -c "import isaaclab; print('IsaacLab version:', isaaclab.__version__)"
正常打印出 2.2.0 就 OK 了(显示IsaacLab version: 0.44.9也是正常现象)。
3.3基础环境测试
在终端里按顺序运行:
#以后你开一个新终端,要跑 IsaacLab / BeyondMimic,大致都要先做1.2.3这三步 conda activate isaaclab # 1. 激活你已经配置好的环境 cd ~/skx/IsaacLab # 2. 进入 IsaacLab 仓库 source _isaac_sim/setup_conda_env.sh # 3. 让 Isaac Sim 把自己的 python 路径等注入到当前 conda 环境
./isaaclab.sh -p scripts/tutorials/00_sim/create_empty.py # 测试 create_empty 脚本
预期:
-
终端开始刷 kit / isaacsim 的日志;
-
弹出一个 Isaac Sim 窗口,黑色空场景;

四. BeyondMimic环境配置
4.1 安装 BeyondMimic 的 whole_body_tracking 仓库
克隆仓库
conda activate isaaclab cd ~/skx # 你自己的工作目录 git clone https://github.com/HybridRobotics/whole_body_tracking.git cd whole_body_tracking
下载 Unitree 机器人描述文件
curl -L -o unitree_description.tar.gz \\ https://storage.googleapis.com/qiayuanl_robot_descriptions/unitree_description.tar.gz
tar -xzf unitree_description.tar.gz \\ -C source/whole_body_tracking/whole_body_tracking/assets/
rm unitree_description.tar.gz
安装为 Python 包(用的就是你现在这个 isaaclab 环境)
python -m pip install -e source/whole_body_tracking
4.2配置 WandB(做动作数据管理)
安装 & 登录
pip install wandb wandb login
根据提示在浏览器里复制 API key。
设定组织(用 organization 名,不是个人用户名):
export WANDB_ENTITY=你的组织名 # 先随便起一个,比如 beyondmimic
打开 WandB 网页,在左边 Core → Registry 里新建一个 collection:
-
Name: Motions
-
Artifact type: All Types
4.3准备动作数据并上传到 WandB Registry
cd ~/skx/whole_body_tracking mkdir -p data/motions # 把 g1_walk.csv 等复制到 data/motions/ 里
用官方脚本转换为 .npz 并上传到 Registry,例如:
cd ~/skx/whole_body_tracking
python scripts/csv_to_npz.py \\
–input_file data/motions/g1_walk.csv \\
–input_fps 30 \\
–output_name g1_walk \\
–headless
执行完后,WandB Registry 里就会出现一个类似 Motions/g1_walk 的 artifact,日志里也会看到类似内容
Motion loaded (…walk_circle_clean.csv) Motion interpolated … [INFO]: Logging motion to wandb: walk_circle_clean [INFO]: Motion saved to wandb registry: motions/walk_circle_clean

4.4用 Isaac Sim 回放动作(测试数据 + WandB)
建议用 IsaacLab 的 launcher 来跑,这样 IsaacSim 环境变量自动配置好:
# 先走一遍“固定开场三步” conda activate isaaclab cd ~/skx/IsaacLab source _isaac_sim/setup_conda_env.sh
# 回到项目目录 cd ~/skx/whole_body_tracking
# 用 isaaclab.sh 起 Isaac Sim 回放动作 ../IsaacLab/isaaclab.sh -p scripts/replay_npz.py \\ –registry_name=你的org名-org/w
andb-registry-motions/g1_walk
看到 Isaac Sim 里机器人按动作走起来,说明数据链路和 WandB Registry 都没问题。

4.5开始训练 BeyondMimic Tracking Policy
conda activate isaaclab cd ~/skx/IsaacLab source _isaac_sim/setup_conda_env.sh cd ~/skx/whole_body_tracking
../IsaacLab/isaaclab.sh -p scripts/rsl_rl/train.py \\ –task=Tracking-Flat-G1-v0 \\ –registry_name 你的org名-org/wandb-registry-motions/g1_walk \\ –headless \\ –logger wandb \\ –log_project_name whole-body-tracking \\ –run_name g1_walk_run1
说明一下几个参数:
-
–task=Tracking-Flat-G1-v0:仓库里定义好的 tracking 环境
-
–registry_name:指向你刚才上传的动作 artifact
-
–headless:不打开 GUI,节省显存
-
–logger wandb:把训练日志发送到 WandB
-
–log_project_name:WandB 上的 project 名
训练过程中会在终端打印 reward、loss 等,同时 WandB 网页也有曲线。
训练过程:

WandB 网页曲线:

4.6评估训练好的策略(play)
训练完成后,在 WandB 的 run 页面里可以看到一个 run path,形式大概是:
你的org名/whole-body-tracking/abcd1234
用这个 path 回放策略:
conda activate isaaclab cd ~/skx/IsaacLab source _isaac_sim/setup_conda_env.sh cd ~/skx/whole_body_tracking
../IsaacLab/isaaclab.sh -p scripts/rsl_rl/play.py \\ –task=Tracking-Flat-G1-v0 \\ –num_envs=2 \\ –wandb_path=你的org名/whole-body-tracking/abcd1234
这时 Isaac Sim 会打开,加载你训练好的 policy,让机器人跟随动作。

前面那个驼着腰、身上很多红绿蓝箭头/小锥体的是——训练出来的智能体(Orbot,RL policy 控制的机器人),后面那个纯白色、周围带一圈黄色线段的是——原始的参考动作(motion capture / CSV 里那条轨迹的“影子”)
五.踩过的坑
5.1.Isaac Sim 版本过新 / 不匹配 Isaac Lab
经验:一定看 Isaac Lab 仓库 README 要求的 Isaac Sim 版本,按它来。
5.2.把“Python 环境安装方式”和“Workstation 安装方式”混在一起
一开始走的是 IsaacLab 自带 isaacsim pip 包路线;后面又改走 Workstation standalone 压缩包;
中间没清干净旧东西 → 扩展依赖解析疯狂报错。
经验:选一个路线走到底;改路线前,先把旧环境 + 缓存删干净,一旦怀疑环境“彻底脏了”,直接删环境重建,比瞎修快很多。
5.3.Numpy 版本冲突
经验:
-
高优先级:满足 Isaac Lab / Isaac Sim 的要求;
-
冲突的东西(比如 opencv)如果只是顺带装的,可以删了之后再按兼容版本重装。


