

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.gitbash项目地址:unitreerobotics/unitree_rl_gym ↗
步骤 2:创建 Conda 虚拟环境#
使用 conda 建立虚拟环境,推荐使用 Python 3.8:
conda create -n unitree_rl_gym python=3.8
conda activate unitree_rl_gymbash步骤 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.htmlbash步骤 4:安装 Isaac Gym#
-
从 NVIDIA 官网下载 Isaac Gym Preview 4:https://developer.nvidia.com/isaac-gym ↗
-
将下载的 Isaac Gym 放入
unitree_rl_gym-main目录下便于管理 -
安装 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重要注意事项:
- numpy 版本问题:项目会默认安装 numpy 1.20.0 版本(过于古早),推荐使用 1.21.6 版本:
pip install numpy==1.21.6bash- setuptools 版本问题:步骤 2 中安装的 Python 3.8 默认 setuptools 为 72.0.0 版本,可能会导致项目中 import 出现问题,推荐使用 58.0.0 版本,且不能使用 conda 安装:
pip install setuptools==58.0.0bash步骤 7:测试 demo#
运行 go2 机器人的训练脚本进行测试:
python legged_gym/scripts/train.py --task=go2bash如果能够正常运行,说明环境搭建成功。
4. 常见问题及解决方案#
问题:libpython3.8.so.1.0 缺失#
在运行 Isaac Gym 时,可能会遇到 libpython3.8.so.1.0 缺失的错误。以下提供两种解决方案:
方案 1:临时设置 LD_LIBRARY_PATH#
- 确认
LD_LIBRARY_PATH是否包含 conda 环境的库目录:
echo $LD_LIBRARY_PATHbash- 查找
libpython3.8.so.1.0文件:
find $(conda info --base) -name libpython3.8.so.1.0 2>/dev/nullbash- 如果找到了文件(假设路径是
/home/ros-melodic/mambaforge/envs/unitree_rl_gym/lib/),设置环境变量:
export LD_LIBRARY_PATH=/home/ros-melodic/mambaforge/envs/unitree_rl_gym/lib:$LD_LIBRARY_PATHbash- 永久设置(添加到
~/.bashrc):
echo 'export LD_LIBRARY_PATH=/home/ros-melodic/mambaforge/envs/unitree_rl_gym/lib:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrcbash方案 2:Conda 环境下永久解决方法#
这是更优雅的解决方案,通过 conda 的环境激活/停用脚本来自动管理环境变量:
- 确定
libpython3.8.so.1.0位置:
sudo updatedb
locate libpython3.8.so.1.0bash如果是在 conda 虚拟环境中安装的,应该位于 $CONDA_PREFIX/lib 目录。
- 创建环境激活/停用脚本目录:
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.shbash- 编辑
activate.d/env_vars.sh,添加以下内容:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CONDA_PREFIX/libbash- 编辑
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_PATHbash这样设置后,每次激活 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 环境的搭建,为后续的强化学习研究和机器人仿真打下基础。