具身智能之Isaac Gym使用
  【SigurRos】   2025年12月18日   57   0

文章来源:https://www.guyuehome.com/detail?id=1860514115984900098

1. 简介

Isaac Gym 是由 NVIDIA 提供的一个高性能仿真平台,专门用于大规模的机器人学习和强化学习(RL)任务。它结合了物理仿真、GPU加速、深度学习框架互操作性等特点,使得研究人员和开发者可以快速进行复杂的机器人仿真和训练。 Isaac Gym 的深度强化学习物理模拟环境,其可以可以导入URDF和MJCF文件,因此可以在不转换的情况下使用MuJoCo等中使用的模型。在使用MuJoCo和PyBullet等物理模拟环境的深度强化学习中,在GPU上模拟的信息被传递到CPU端,并根据CPU上接收到的信息计算观察和奖励。 重复该过程以在模拟环境中进行学习。 因此,为了加快学习速度,就存在CPU和GPU之间的瓶颈以及需要大型CPU集群等问题。而且Isaac Gym通过仅使用 GPU 执行这些过程,成功解决了上述问题并提高了速度。相关的API的使用可以参考Isaacgym使用操作指南里面的内容。

2. Isaac Gym环境安装

首先我们先来安装Isaac Gym环境,对应的下载链接为:Isaac Gym - Preview Release | NVIDIA Developer。对应的环境配置需求为:

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
sudo apt install nvidia-driver-510
sudo vim /etc/apt/sources.list
# 然后在最后一行添加:deb [arch=amd64] http://archive.ubuntu.com/ubuntu focal main universesu	do apt-get install gcc-7 g ++ -7
 
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 9
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 1
 
sudo update-alternatives --display gcc     //查看默认版本
 
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++ -7 9
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++ -9 1
 
sudo update-alternatives --display g ++

wget https://developer.download.nvidia.com/compute/cuda/11.6.0/local_installers/cuda_11.6.0_510.39.01_linux.run
sudo sh cuda_11.6.0_510.39.01_linux.run
sudo vim ~/.bashrc
export LD_LIBRARY_PATH=/usr/local/cuda-11.6/lib64:/usr/local/cuda-11.6/extras/CPUTI/lib64
export CUDA_HOME=/usr/local/cuda-11.6/bin
export PATH=$PATH:$LD_LIBRARY_PATH:$CUDA_HOMEsource ~/.bashrc
# 然后重启,并安装cudnn# 进入https://developer.nvidia.com/rdp/cudnn-archive下载指定版本,然后安装,这选用的是8.6的cudnn,参考:https://blog.csdn.net/shanglianlm/article/details/130219640sudo dpkg -i cudnn-local-repo-ubuntu2004-8.6.0.163_1.0-1_amd64.deb 
sudo cp /var/cudnn-local-repo-*/cudnn-local-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get install libcudnn8=8.6.0.163-1+cuda11.8
sudo apt-get install libcudnn8-dev=8.6.0.163-1+cuda11.8
sudo apt-get install libcudnn8-samples=8.6.0.163-1+cuda11.8

image.png
然后下面就对下载好的IsaacGym_Preview_4_Package.tar.gz进行解压,格式为:
image.png
然后开始编译

tar -zxvf IsaacGym_Preview_4_Package.tar.gz
cd isaacgym
./create_conda_env_rlgpu.sh 

image.png
要检查 Isaac Gym 是否正常工作,请运行 isaacgym/python/examples 目录中的 joint_monkey.py。 如果设置正确,人形模型将移动其四肢
QBGIF13410508251272038.gif
可以通过下面的指令激活,并测试

# 激活环境
conda activate rlgpu
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update
sudo apt install libpython3.7
export LD_LIBRARY_PATH=$HOME/miniconda3/envs/rlgpu/lib
# 正常情况下这时候可以运行实例程序/isaacgym/python/examples/joint_monkey.py
python joint_monkey.py
# 可以通过--asset_id命令控制显示的模型
python joint_monkey.py --asset_id=6

image.png
“Isaac Gym”没有反应 运行示例代码(例如 joint_monkey.py)时,Isaac Gym 屏幕可能不会显示。 这是因为一些集成英特尔显卡(例如英特尔 UHD 显卡)的 PC 系统中并未使用 NVIDIA 的 GPU。 请输入以下命令以使用 NVIDIA GPU。

sudo prime-select nvidia
export VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/nvidia_icd.json

通过在~/.bashrc中写入上述命令export VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/nvidia_icd.json,可以省去每次输入命令的麻烦。
可视化界面可以参考:《通过VNC搭建Ubuntu 18.04和20.04图形界面

sudo vim /etc/apt/sources.list
# 添加  deb http://archive.ubuntu.com/ubuntu/ bionic universesudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32
# sudo apt-get install -y vnc4server # ubuntu18sudo apt-get install tightvncserver # ubuntu20sudo apt update
sudo apt-get upgrade
sudo apt-get install snapd
sudo apt-get install -y x-window-system-core  gdm3 
sudo apt install ubuntu-desktop#如果不执行,则关机重新从sudo apt-get upgrade这一行开始执行
#sudo apt install xubuntu-desktopsudo apt install xrdp
sudo systemctl status xrdp
sudo apt-get install -y gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal
vncserver

然后修改sudo vim ~/.vnc/xstartup文件,这里还需要虚拟屏幕设置ubuntu18.04服务器配置VNC解决去掉显示器之后黑屏大鼠标问题

#!/bin/sh# Uncomment the following two lines for normal desktop:# unset SESSION_MANAGER# exec /etc/X11/xinit/xinitrc

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
x-terminal-emulator -geometry 1920x1080 -ls -title "$VNCDESKTOP Desktop" &
x-window-manager &

#gnome-terminal &

sesion-manager & xfdesktop & xfce4-panel &
xfce4-menu-plugin &
xfsettingsd &
xfconfd &
xfwm4 &
metacity &
nautilus &

然后设置重启

sudo chmod +x ~/.vnc/xstartup
vncserver -kill :1
vncserver -geometry 1920x1080 :1

image.png
由于优刻得开通了端口,所以也可以通过vnc-viewer连接了
image.png

3. 对应文档

3.1 官方文档资源

1. NVIDIA Omniverse 全站文档

2. Isaac Sim 开发者文档

3. Omniverse 开发者文档

4. Isaac Lab 文档

5. Isaac Sim API 参考文档

6. ROS/ROS2 教程

3.2 AI 仓库与视觉导航

1. Isaac ROS SLAM

2. Isaac ROS 3D Scene Reconstruction

3.3 视频教程与资料下载

1. 教程视频

  • 提取链接: 百度网盘链接(提取码:kvq7)
  • 内容: 提供了详细的操作步骤和功能讲解,适合初学者学习 Isaac Sim。

2. GitHub 教程与代码仓库

3.4 深入学习与实用技巧

1. 开发环境搭建

  • 内容: 根据文档和 GitHub 教程,开发者可以快速搭建 Isaac Sim 与 ROS 的集成工作空间。

2. 视觉导航和 SLAM 技术应用

  • 内容: 开发者可以利用 NVIDIA 提供的 SLAM 和 3D 重建代码库,实现复杂环境下的导航任务。

3. Replicator 环境生成

  • 内容: Replicator 是 Isaac Sim 的一部分,可用于生成各种工业环境的模拟场景,帮助开发者验证机器人系统在虚拟环境中的表现。

4. 强化学习和Isaac Gym

下面我们来试一下Isaac Gym基础训练环境安装,对应提供的提供深度强化学习示例为:

git clone https://github.com/NVIDIA-Omniverse/IsaacGymEnvs.git
conda activate rlgpu
cd IsaacGymEnvs
pip install -e .
#cuda11.6 安装pytorch1.12,更换国内源
pip install torch==1.13.0+cu116 torchvision==0.14.0+cu116 torchaudio==0.13.0 --extra-index-url https://download.pytorch.org/whl/cu116



#尝试训练
python train.py task=Ant
#不显示动画只训练
python train.py task=Ant headless=True
#测试训练模型的效果,num_envs是同时进行训练的模型数量
python train.py task=Ant checkpoint=runs/Ant/nn/Ant.pth test=True num_envs=64

image.png
Isaac Gym Benchmark文件交互逻辑
image.png
项目的文件目录构成
image.png
对应含义为:

assets:放置模型文件,官方文件显示目前支持加载URDF和MJCF文件格式。 docs:说明文档 isaacgymenvs:代码主目录 cfg:参数文件 learing:训练的算法文件 pbt:Population-Based Training 说明文档 run:训练的统计文件和模型文件 tasks:不同任务对用的训练方法文件 utils:通用工具文件

5. 第三方拓展宇树机器狗

无论是人型机器人:
image.png
还是机器狗:
image.png
其基本都是基于Isaac Gym平台,并加入自己的算法和模型,来完成强化学习训练。这里我们来看一下机器狗的工程

git clone https://github.com/Improbable-AI/walk-these-ways.git
conda activate rlgpu
cd walk-these-ways
pip install -e .
#测试
python scripts/test.py
#训练
python scripts/train.py

本文使用的代码结构是改编自legged_gym工程,如果想要在训练结束后继续上次的训练,可以参考这篇文章,这里就不展开写了
image.png
image.png

6. 参考链接

https://blog.csdn.net/weixin_44061195/article/details/131830133
https://blog.csdn.net/weixin_44061195/article/details/132830367
https://blog.csdn.net/qq_38023194/article/details/140874763

最后一次编辑于 2025年12月29日 0 0

暂无评论

推荐阅读
  【SigurRos】   2025年12月18日   58   0   0 Isaac Gym