20Bytes Log
IsaacGym 环境搭建Blur image

1. 前言#

IsaacGym 是 NVIDIA 推出的高性能物理仿真环境,专为强化学习和机器人研究设计。本文详细记录了在 Ubuntu 18.04 系统上搭建 IsaacGym 和 unitree_rl_gym 环境的完整流程,以及在搭建过程中可能遇到的问题和解决方案。

2. 服务器配置#

本次搭建使用的服务器配置如下:

  • 操作系统:Ubuntu 18.04.6 LTS
  • CPU:Intel® Core™ i7-8700 CPU @ 3.20GHz × 12
  • 内存:15.6 GiB
  • 存储:1.2 TB(可用 3.3GB)
  • GPU:GeForce(具体型号未在文档中说明)

3. 安装步骤#

步骤 1:下载 unitree_rl_gym 项目#

/home/ros-melodic/Desktop 目录下载 unitree_rl_gym 项目:

cd /home/ros-melodic/Desktop
git clone https://github.com/unitreerobotics/unitree_rl_gym.git
bash

项目地址:unitreerobotics/unitree_rl_gym

步骤 2:创建 Conda 虚拟环境#

使用 conda 建立虚拟环境,推荐使用 Python 3.8:

conda create -n unitree_rl_gym python=3.8
conda activate unitree_rl_gym
bash

步骤 3:安装 PyTorch 和 CUDA#

安装 PyTorch 1.10.0 和对应的 CUDA 11.3 版本:

pip3 install torch==1.10.0+cu113 torchvision==0.11.1+cu113 torchaudio==0.10.0+cu113 -f https://download.pytorch.org/whl/cu113/torch_stable.html
bash

步骤 4:安装 Isaac Gym#

  1. 从 NVIDIA 官网下载 Isaac Gym Preview 4:https://developer.nvidia.com/isaac-gym

  2. 将下载的 Isaac Gym 放入 unitree_rl_gym-main 目录下便于管理

  3. 安装 Isaac Gym:

cd isaacgym/python
pip install -e .
bash

步骤 5:安装 rsl_rl 算法库#

注意:项目要求 rsl_rl 版本为 v1.0.2,并非最新 master 版本,且使用 pip 不能指定 v1.0.2 版本,需要通过 git 安装:

git clone https://github.com/leggedrobotics/rsl_rl.git
cd rsl_rl
git checkout v1.0.2
pip install -e .
bash

步骤 6:设置 unitree_rl_gym 环境#

返回 unitree_rl_gym-main 目录,设置环境:

cd ../unitree_rl_gym-main
pip install -e .
bash

重要注意事项

  1. numpy 版本问题:项目会默认安装 numpy 1.20.0 版本(过于古早),推荐使用 1.21.6 版本:
pip install numpy==1.21.6
bash
  1. setuptools 版本问题:步骤 2 中安装的 Python 3.8 默认 setuptools 为 72.0.0 版本,可能会导致项目中 import 出现问题,推荐使用 58.0.0 版本,且不能使用 conda 安装:
pip install setuptools==58.0.0
bash

步骤 7:测试 demo#

运行 go2 机器人的训练脚本进行测试:

python legged_gym/scripts/train.py --task=go2
bash

如果能够正常运行,说明环境搭建成功。

4. 常见问题及解决方案#

问题:libpython3.8.so.1.0 缺失#

在运行 Isaac Gym 时,可能会遇到 libpython3.8.so.1.0 缺失的错误。以下提供两种解决方案:

方案 1:临时设置 LD_LIBRARY_PATH#

  1. 确认 LD_LIBRARY_PATH 是否包含 conda 环境的库目录:
echo $LD_LIBRARY_PATH
bash
  1. 查找 libpython3.8.so.1.0 文件:
find $(conda info --base) -name libpython3.8.so.1.0 2>/dev/null
bash
  1. 如果找到了文件(假设路径是 /home/ros-melodic/mambaforge/envs/unitree_rl_gym/lib/),设置环境变量:
export LD_LIBRARY_PATH=/home/ros-melodic/mambaforge/envs/unitree_rl_gym/lib:$LD_LIBRARY_PATH
bash
  1. 永久设置(添加到 ~/.bashrc):
echo 'export LD_LIBRARY_PATH=/home/ros-melodic/mambaforge/envs/unitree_rl_gym/lib:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc
bash

方案 2:Conda 环境下永久解决方法#

这是更优雅的解决方案,通过 conda 的环境激活/停用脚本来自动管理环境变量:

  1. 确定 libpython3.8.so.1.0 位置:
sudo updatedb
locate libpython3.8.so.1.0
bash

如果是在 conda 虚拟环境中安装的,应该位于 $CONDA_PREFIX/lib 目录。

  1. 创建环境激活/停用脚本目录:
conda activate unitree_rl_gym
cd $CONDA_PREFIX
mkdir -p ./etc/conda/activate.d
mkdir -p ./etc/conda/deactivate.d
touch ./etc/conda/activate.d/env_vars.sh
touch ./etc/conda/deactivate.d/env_vars.sh
bash
  1. 编辑 activate.d/env_vars.sh,添加以下内容:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CONDA_PREFIX/lib
bash
  1. 编辑 deactivate.d/env_vars.sh,添加以下内容:
# 保存原始的 LD_LIBRARY_PATH
ORIGINAL_LD_LIBRARY_PATH=$LD_LIBRARY_PATH

# 要删除的目录
DIRECTORY_TO_REMOVE="$CONDA_PREFIX/lib"

# 使用 grep 过滤掉要删除的目录项
NEW_LD_LIBRARY_PATH=$(echo $LD_LIBRARY_PATH | tr ':' '\n' | grep -v "$DIRECTORY_TO_REMOVE" | tr '\n' ':')

# 设置新的 LD_LIBRARY_PATH
export LD_LIBRARY_PATH=$NEW_LD_LIBRARY_PATH
bash

这样设置后,每次激活 conda 环境时会自动添加库路径,停用环境时会自动移除,不会影响其他环境。

5. 总结#

本文详细介绍了 IsaacGym 和 unitree_rl_gym 环境的搭建流程,包括:

  • 完整的 7 步安装流程
  • 关键依赖版本的选择(Python 3.8、PyTorch 1.10.0、numpy 1.21.6、setuptools 58.0.0)
  • 常见的 libpython3.8.so.1.0 缺失问题的两种解决方案

在搭建过程中,特别需要注意版本兼容性问题,尤其是 rsl_rl 必须使用 v1.0.2 版本,以及 numpy 和 setuptools 的版本选择。通过本文的指导,可以顺利完成 IsaacGym 环境的搭建,为后续的强化学习研究和机器人仿真打下基础。

IsaacGym 环境搭建完整指南
https://20bytes.github.io/blog/isacc-gym
Author 昙柏
Published at February 7, 2026