unitree_rl_gym 环境搭建完整指南:从 Conda 虚拟环境到 Isaac Gym、rsl_rl 与实物部署依赖的安装配置
【免费下载链接】unitree_rl_gym项目地址: https://gitcode.com/GitHub_Trending/un/unitree_rl_gym
本指南以仓库 doc/setup_zh.md 为骨架,系统讲解在 Ubuntu + Nvidia GPU 环境下搭建 Unitree 机器人强化学习训练与部署环境的全过程,涵盖 MiniConda 虚拟环境创建、PyTorch / Isaac Gym / rsl_rl / unitree_rl_gym / unitree_sdk2py 五个组件的安装与验证。读完本文,你将拥有一套可运行legged_gym/scripts/train.py训练、play.py回放以及 Mujoco / 实物部署的完整环境,并理解每个依赖在仓库中的具体作用与源码层面的调用关系。
一、环境要求与依赖全景
在动手安装之前,先明确本仓库对运行环境的最低要求(与 doc/setup_zh.md 一致):
- 操作系统:推荐 Ubuntu 18.04 或更高版本;
- 显卡:Nvidia 显卡(Isaac Gym 的 GPU 加速仿真与 PyTorch 的 CUDA 训练都强依赖 Nvidia 硬件);
- 驱动版本:建议使用 525 或更高版本的 Nvidia 驱动,以匹配下文安装的 PyTorch CUDA 12.1 工具链。
从仓库根目录的 setup.py 可以确认,unitree_rl_gym包本身声明的运行时依赖为:
install_requires=['isaacgym', 'rsl-rl', 'matplotlib', 'numpy==1.20', 'tensorboard', 'mujoco==3.2.3', 'pyyaml']其中isaacgym与rsl-rl是训练链路的核心,mujoco服务于 Sim2Sim 部署,pyyaml用于解析部署配置文件(见 deploy/deploy_real/config.py),tensorboard用于训练过程可视化。因此本文按文档顺序,先搭建虚拟环境,再依次安装 PyTorch、Isaac Gym、rsl_rl、unitree_rl_gym,最后安装可选的 unitree_sdk2py。
二、创建 Conda 虚拟环境
强烈建议在虚拟环境中运行训练或部署程序,避免不同项目之间的依赖冲突。推荐使用 Conda 管理虚拟环境。
2.1 安装 MiniConda(已有 Conda 可跳过)
MiniConda 是 Conda 的轻量级发行版,足够满足本项目的环境管理需求。以下命令下载官方安装脚本并静默安装到~/miniconda3:
mkdir -p ~/miniconda3 wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3 rm ~/miniconda3/miniconda.sh安装完成后初始化 Conda,使其在新建终端中自动可用:
~/miniconda3/bin/conda init --all source ~/.bashrc说明:
-b表示静默(batch)模式,-u表示更新已存在的安装,-p ~/miniconda3指定安装前缀路径。
2.2 创建并激活环境
创建名为unitree-rl、Python 版本为 3.8 的虚拟环境(Isaac Gym 与 rsl_rl 对本仓库配置的兼容性以此版本为基准):
conda create -n unitree-rl python=3.8激活环境:
conda activate unitree-rl激活后,后续所有安装命令都应在此环境中执行。建议同时确认 Python 与 pip 指向的是环境内的解释器(which python/python --version)。
三、安装 PyTorch(CUDA 12.1 版本)
PyTorch 是本仓库强化学习训练与推理的神经网络框架:训练时策略网络的前向/反向传播、rsl_rl中的 PPO 算法更新均运行在 PyTorch 张量之上(可参见 legged_gym/scripts/train.py 中通过task_registry.make_alg_runner创建OnPolicyRunner并调用ppo_runner.learn(...)的训练入口)。
使用 Conda 安装与 CUDA 12.1 配套的 PyTorch 2.3.1 全家桶:
conda install pytorch==2.3.1 torchvision==0.18.1 torchaudio==2.3.1 pytorch-cuda=12.1 -c pytorch -c nvidia参数说明:
pytorch==2.3.1:PyTorch 主框架版本;torchvision==0.18.1/torchaudio==2.3.1:与 PyTorch 2.3.1 严格配套的视觉 / 音频扩展库;pytorch-cuda=12.1:指定 CUDA 12.1 运行时,需与 Nvidia 驱动(525+)兼容;-c pytorch -c nvidia:指定从 PyTorch 官方 channel 与 Nvidia channel 拉取软件包。
安装完成后可用以下命令快速验证 CUDA 可用性:
python -c "import torch; print(torch.__version__, torch.cuda.is_available())"输出2.3.1 True即表示 PyTorch 与 CUDA 均就绪。
四、安装 Isaac Gym
Isaac Gym 是 Nvidia 提供的 GPU 加速刚体仿真与强化学习训练框架,本仓库中所有 Gym 仿真环境(legged_gym/envs/下的 go2、g1、h1、h1_2)都构建在它之上。
4.1 下载
需要从 Nvidia 官网(Isaac Gym 页面)下载 Isaac Gym 的压缩包,下载时注意选择与自身系统匹配的 Linux 版本,解压后会得到包含python子目录的isaacgym目录。
4.2 安装
进入isaacgym/python目录,以可编辑模式安装:
cd isaacgym/python pip install -e .4.3 验证安装
运行 Isaac Gym 自带的示例程序,若弹出窗口并显示 1080 个球下落,则安装成功:
cd examples python 1080_balls_of_solitude.py该示例会创建 GPU 仿真场景并渲染物理引擎中 1080 个刚体球的自由落体效果,是验证 Isaac Gym 是否能正常驱动显卡仿真的最直接手段。如有问题,可参考解压目录下isaacgym/docs/index.html中的官方文档进行排查。
与仓库的衔接:训练脚本入口 legged_gym/scripts/train.py 在导入
legged_gym.envs之前会先import isaacgym,因此 Isaac Gym 必须成功安装,否则训练与 Play 都无法启动。仿真参数(如use_gpu_pipeline、物理引擎选择)在 legged_gym/utils/helpers.py 的parse_sim_params中通过gymapi.SimParams初始化,并从命令行参数与配置类中读取。
五、安装 rsl_rl(强化学习算法库)
rsl_rl是来自 leggedrobotics 的强化学习算法库,本仓库的 PPO 训练器直接复用其OnPolicyRunner(见 legged_gym/utils/task_registry.py,其中make_alg_runner会创建OnPolicyRunner(env, train_cfg_dict, log_dir, device=args.rl_device)并执行断点续训逻辑)。
5.1 克隆仓库
git clone https://github.com/leggedrobotics/rsl_rl.git5.2 切换分支
切换到与本仓库匹配的v1.0.2分支:
cd rsl_rl git checkout v1.0.2版本匹配很重要:本仓库基于 rsl_rl 1.0.x 的 API 编写,切换分支可避免后续
OnPolicyRunner等接口签名不兼容导致的运行错误。
5.3 安装
pip install -e .以可编辑模式安装后,对 rsl_rl 的任何改动无需重装即可生效,便于调试。
六、安装 unitree_rl_gym(本仓库主体)
6.1 下载
git clone https://github.com/unitreerobotics/unitree_rl_gym.git6.2 安装
进入仓库根目录并以可编辑模式安装:
cd unitree_rl_gym pip install -e .pip install -e .会执行根目录的 setup.py,自动安装前面列出的全部依赖(若环境中尚缺),并把legged_gym、deploy等顶层包注册到当前 Python 环境,从而支持后续直接运行python legged_gym/scripts/train.py这类以仓库根目录为工作目录的命令。
安装完成后可验证环境就绪程度:
python -c "import isaacgym, torch, rsl_rl; print('deps ok')"七、安装 unitree_sdk2py(可选,实物部署专用)
unitree_sdk2py是宇树官方提供的 Python SDK,用于与真实机器人通信(订阅电机状态、下发控制指令)。如果只需在仿真中训练与回放,可以跳过本节;只有计划将训练好的策略部署到物理机器人(Sim2Real)时才需要安装。
7.1 下载
git clone https://github.com/unitreerobotics/unitree_sdk2_python.git7.2 安装
cd unitree_sdk2_python pip install -e .7.3 在仓库中的用途
实物部署脚本 deploy/deploy_real/deploy_real.py 依赖该 SDK 完成与机器人的低层通信(lowcmd / lowstate 话题),配置项在 deploy/deploy_real/configs 下的 YAML 中声明,例如lowcmd_topic、lowstate_topic、kps/kds、default_angles等,由 deploy/deploy_real/config.py 统一解析。部署命令格式为:
python deploy/deploy_real/deploy_real.py {net_interface} {config_name}其中net_interface是连接机器人的网卡名(如enp3s0),config_name是deploy/deploy_real/configs/下的配置文件(如g1.yaml、h1.yaml、h1_2.yaml)。详细操作步骤(零力矩模式、调试模式、遥控器按键流程等)可参考 deploy/deploy_real/README.zh.md。
八、安装完成后的验证与下一步
按照上述步骤完成后,你已经可以在unitree-rl虚拟环境中运行本仓库的核心程序。仓库 README_zh.md 给出的完整流程为Train → Play → Sim2Sim → Sim2Real,下面简要说明验证安装是否真正可用的两条命令:
8.1 训练(Train)
python legged_gym/scripts/train.py --task=xxx--task为必选参数,可取值包括go2、g1、h1、h1_2,分别对应 legged_gym/envs 下注册的仿真环境。任务注册机制位于 legged_gym/utils/task_registry.py,训练默认将结果保存到logs/<experiment_name>/<date_time>_<run_name>/model_<iteration>.pt(日志目录的拼接逻辑见 task_registry.py)。
常用命令行参数由 legged_gym/utils/helpers.py 的get_args()定义,包括--headless(不渲染图形界面、效率更高)、--resume、--experiment_name、--run_name、--load_run、--checkpoint、--num_envs、--seed、--max_iterations、--rl_device等。
8.2 回放(Play)
python legged_gym/scripts/play.py --task=xxxPlay 会加载指定实验的最后一个模型进行策略回放,并导出 Actor 网络:legged_gym/scripts/play.py 中EXPORT_POLICY = True时,会调用 helpers.py 的export_policy_as_jit,将普通 MLP 策略导出为policy_1.pt、将 RNN(LSTM)策略导出为policy_lstm_1.pt,保存到logs/{experiment_name}/exported/policies/,供 Mujoco 仿真或 C++ 部署使用。
8.3 常见问题排查思路
- Isaac Gym 无法启动 / 黑屏:优先检查 Nvidia 驱动版本(建议 525+)、
nvidia-smi输出,以及 Isaac Gym 解压目录下的docs/index.html官方文档; - 训练时 CUDA 报错:确认
pytorch-cuda=12.1与驱动匹配,可用python -c "import torch; print(torch.cuda.is_available())"定位; - 导入 rsl_rl 失败:确认已
git checkout v1.0.2并pip install -e .; - pip 安装 unitree_rl_gym 失败:检查 setup.py 中声明的依赖是否被正确解析(如
numpy==1.20等固定版本约束); - 部署环节异常:先确认已安装 unitree_sdk2py,并核对部署 YAML 配置与机器人型号一致。
总结
本文从系统要求出发,完整复现了 doc/setup_zh.md 的安装流程:MiniConda 虚拟环境 → PyTorch 2.3.1(CUDA 12.1)→ Isaac Gym → rsl_rl v1.0.2 → unitree_rl_gym,并补充了可选的 unitree_sdk2py 实物部署依赖。每个组件都可以在仓库源码中找到其实际调用位置,例如训练入口 train.py、任务注册 task_registry.py、参数解析 helpers.py、部署配置解析 config.py。按顺序安装并逐项验证后,即可开始 Unitree Go2 / G1 / H1 / H1_2 的强化学习训练、仿真回放与实物部署工作。若安装过程中遇到问题,请优先核对各组件的版本匹配关系与依赖是否安装正确。
【免费下载链接】unitree_rl_gym项目地址: https://gitcode.com/GitHub_Trending/un/unitree_rl_gym
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考