文章目录
- 一、硬件环境
- 二、创建虚拟环境
-
- [1. 安装 Anaconda](#1. 安装 Anaconda)
- [2. 创建强化学习虚拟环境](#2. 创建强化学习虚拟环境)
- [三、安装 Isaac Gym](#三、安装 Isaac Gym)
-
- [1. 下载](#1. 下载)
- [2. 解压安装](#2. 解压安装)
- 3.验证安装
- [四、安装 rsl_rl](#四、安装 rsl_rl)
- [五、安装Unitree 强化学习相关库](#五、安装Unitree 强化学习相关库)
-
- [1. unitree_rl_gym](#1. unitree_rl_gym)
- [2. unitree_sdk2py(可选)](#2. unitree_sdk2py(可选))
- 六、强化学习训练
-
- [6.1 训练命令](#6.1 训练命令)
- [6.2 效果演示 Play](#6.2 效果演示 Play)
一、硬件环境
由于 Isaac_gym 仿真平台需要 CUDA ,本文建议硬件需要配置 NVIDIA 显卡(显存>8GB、 RTX系列显卡),并安装相应的显卡驱动。建议系统使用 Ubuntu20 ,显卡驱动 525 版本及以上。
如下是自己的硬件配置:
- Ubuntu 系统22.04
- N卡版本:570.153.02
- CUDA版本:cuda_12.8
查看N卡驱动版本:
nvidia-smi
;查看CUDA版本:
nvcc --version
;关于如何安装 N卡驱动及CUDA版本,此链接 版本较旧,仅供参考。
二、创建虚拟环境
1. 安装 Anaconda
关于如何安装 Anaconda ,可参看 此链接。
2. 创建强化学习虚拟环境
以基于宇树g1的强化学习为例:
bash
# 创建 conda虚拟环境
conda create -n unitree-rl python=3.8
# 激活虚拟环境
conda activate unitree-rl
# 安装 PyTorch
conda install pytorch==2.3.1 torchvision==0.18.1 torchaudio==2.3.1 pytorch-cuda -c pytorch -c nvidia
三、安装 Isaac Gym
1. 下载
Isaac Gym 是 Nvidia 提供的刚体仿真和训练框架。首先,先在 Nvidia 官网 下载Archive压缩包。
2. 解压安装
bash
tar -zxvf IsaacGym_Preview_4_Package.tar.gz
cd isaacgym/python
pip install -e .
3.验证安装
bash
cd examples
python 1080_balls_of_solitude.py
正确安装后,正确运行会出现如下界面:
3.1 异常情况1
未识别到CUDA,使用CPU进行仿真渲染。可能得原因是:
- 未正确安装N卡驱动 或 CUDA驱动;
- 创建虚拟环境时指定了cuda版本,且指定的版本不对;
3.2 异常情况2
python 库未识别:ImportError: libpython3.8.so.1.0: cannot open shared object file: No such file or directory
首先到虚拟环境
bash
# 确认是否安装此库
cd ******/anaconda/envs/unitree-rl/lib
ls |grep 3.8
# 若存在此库, 查看LD_LIBRARY_PATH
echo $LD_LIBRARY_PATH
vi ~/.bashrc
#export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/home/gene/Documents/software/anaconda/envs/unitree-rl/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:*****/anaconda/envs/unitree-rl/lib
source ~/.bashrc
四、安装 rsl_rl
rsl_rl 是一个强化学习算法库
bash
# 1. 克隆仓库
git clone https://github.com/leggedrobotics/rsl_rl.git -b v1.0.2
# 2. 安装
cd rsl_rl
pip install -e .
五、安装Unitree 强化学习相关库
1. unitree_rl_gym
bash
git clone https://github.com/unitreerobotics/unitree_rl_gym.git
cd unitree_rl_gym
pip install -e .
2. unitree_sdk2py(可选)
unitree_sdk2py
是用于与真实机器人通信的库。如果需要将训练的模型部署到物理机器人上运行,可以安装此库。
bash
git clone https://github.com/unitreerobotics/unitree_sdk2_python.git
cd unitree_sdk2_python
pip install -e .
六、强化学习训练
强化学习实现运动控制的 基本流程 如下: Train
→ Play
→ Sim2Sim
→ Sim2Real
- Train: 在 Gym 仿真环境让机器人与环境互动找到最满足奖励设计的策略。通常不推荐实时查看效果,以免降低训练效率。
- Play: 通过 Play 命令查看训练后的策略效果,确保策略符合预期。
- Sim2Sim: 将 Gym 训练完成的策略部署到其他仿真器,避免策略小众于 Gym 特性。
- Sim2Real: 将策略部署到实物机器人,实现运动控制。
6.1 训练命令
训练命令如下:
bash
python legged_gym/scripts/train.py --task=xxx --headless
参数说明:
- --task : 必选参数,值可选( go2, g1, h1, h1_2)
- --headless : 默认启动图形界面,设为 true 时不渲染图形界面(效率更高)
- --resume : 从日志中选择 checkpoint 继续训练
- --experiment_name : 运行/加载的 experiment 名称
- --run_name : 运行/加载的 run 名称
- --load_run : 加载运行的名称,默认加载最后一次运行
- --checkpoint : checkpoint 编号,默认加载最新一次文件
- --num_envs : 并行训练的环境个数
- --seed : 随机种子
- --max_iterations : 训练的最大迭代次数
- --sim_device : 仿真计算设备,指定 CPU 为 --sim_device=cpu
- --rl_device : 强化学习计算设备,指定 CPU 为 --rl_device=cpu
如运行训练指令后,出现如下界面,表示开始强化学习训练的第一次迭代(共10000次)。
训练时自己的显卡消耗如下:
6.2 效果演示 Play
在 Gym 中查看训练效果,可以运行以下命令:
bash
python legged_gym/scripts/play.py --task=xxx
参数说明:
- Play 启动参数与 Train 相同。
- 默认加载实验文件夹上次运行的最后一个模型。
- 可通过 load_run 和 checkpoint 指定其他模型。