当前位置: 首页 > news >正文

Ubuntu 22.04 使用 Issac Gym 进行人形强化学习训练

文章目录

  • 一、硬件环境
  • 二、创建虚拟环境
    • 1. 安装 Anaconda
    • 2. 创建强化学习虚拟环境
  • 三、安装 Isaac Gym​
    • 1. 下载
    • 2. 解压安装
    • 3.验证安装
  • 四、安装 rsl_rl​
  • 五、安装Unitree 强化学习相关库
    • 1. unitree_rl_gym​
    • 2. unitree_sdk2py(可选)
  • 六、强化学习训练
    • 6.1 训练命令​
    • 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的强化学习为例:

# 创建 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. 解压安装

tar -zxvf IsaacGym_Preview_4_Package.tar.gz
cd isaacgym/python
pip install -e .

3.验证安装

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
    首先到虚拟环境
# 确认是否安装此库
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 是一个强化学习算法库

# 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​

git clone https://github.com/unitreerobotics/unitree_rl_gym.git
cd unitree_rl_gym
pip install -e .

2. unitree_sdk2py(可选)

unitree_sdk2py 是用于与真实机器人通信的库。如果需要将训练的模型部署到物理机器人上运行,可以安装此库。

git clone https://github.com/unitreerobotics/unitree_sdk2_python.git
cd unitree_sdk2_python
pip install -e .

六、强化学习训练

强化学习实现运动控制的 基本流程 如下: TrainPlaySim2SimSim2Real

  • Train: 在 Gym 仿真环境让机器人与环境互动找到最满足奖励设计的策略。通常不推荐实时查看效果,以免降低训练效率。
  • Play: 通过 Play 命令查看训练后的策略效果,确保策略符合预期。​
  • Sim2Sim: 将 Gym 训练完成的策略部署到其他仿真器,避免策略小众于 Gym 特性。​
  • Sim2Real: 将策略部署到实物机器人,实现运动控制。

6.1 训练命令​

训练命令如下:

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 中查看训练效果,可以运行以下命令:​

python legged_gym/scripts/play.py --task=xxx

参数说明​

  • Play 启动参数与 Train 相同。​
  • 默认加载实验文件夹上次运行的最后一个模型。
  • 可通过 load_run 和 checkpoint 指定其他模型。​
    在这里插入图片描述
http://www.dtcms.com/a/297840.html

相关文章:

  • ip link show 查看/配置网络接口
  • keepalived篇
  • Spring Cloud微服务项目完整搭建指南
  • ODFM(正交频分复用)系统中加入汉明码(Hamming Code)的主要目的是增强抗误码能力,通过**前向纠错(FEC)**机制提高传输可靠性
  • 详解FreeRTOS开发过程(八)-- 时间标志
  • 相机ROI 参数
  • 【飞控】在 Windows 中为PX4自动驾驶仪安装 UAV 工具箱支持包
  • Python 程序设计讲义(19):选择结构程序设计
  • 架构篇(一):告别MVC/MVP,为何“组件化”是现代前端的唯一答案?
  • [2025CVPR-图象分类方向]CATANet:用于轻量级图像超分辨率的高效内容感知标记聚合
  • Git常用命令赏析
  • Spring Boot 优雅实现多租户架构!
  • 谁将统治AI游戏时代?腾讯、网易、米哈游技术暗战
  • 基于Android的2048休闲益智游戏App
  • 上位机程序开发基础介绍
  • 大型微服务项目:听书——11 Redisson分布式布隆过滤器+Redisson分布式锁改造专辑详情接口
  • HTML5武汉旅游网站源码
  • ZedGraph 可选定轴 通过鼠标移动或通过滚轮设置轴的范围
  • linux-开机启动流程
  • 解密国密 SSL 证书:SM2、SM3、SM4 算法的协同安全效应
  • 物联网技术:起源、发展、重点技术、应用场景与未来演进
  • [RPA] Excel中的字典处理
  • Y1第4课题解(A~E)
  • Kubernetes深度解析:企业级容器编排平台的核心实践
  • 在OpenMP中,#pragma omp的使用
  • JAVA_FourTEEN_常见算法
  • Python爬虫实战:研究flanker相关技术
  • 通过 Web3 区块链安全评估,领先应对网络威胁
  • Java零基础入门学习知识点2-JDK安装配置+Maven
  • k8s常用基础命令总结