【01.isaac-gym】最新从零无死角系列-(01) 最新 isaac-gym 无死角环境搭建即源码下载, docker形式

若需观看机器人系列相关博客,请劳驾至:足式机器人无死角系列之-【强化学习理论基础-通用】、【仿真及训练环境】、【强化学习】:isaac-gym 与 isaac-lab 从零开始

郑重声明:该系列博客为本人 ( W e n h a i Z h u ) 独家私有 , 禁止转载与抄袭 , 首次举报有谢 , 若有需请私信授权! \color{red}郑重声明:该系列博客为本人(WenhaiZhu)独家私有,禁止转载与抄袭,首次举报有谢,若有需请私信授权! 郑重声明:该系列博客为本人(WenhaiZhu)独家私有,禁止转载与抄袭,首次举报有谢,若有需请私信授权!

本栏目属于足式机器人无死角系列之【强化学习】系列,主要对 isaac-gym 从零开始进行环境搭建,及仿真模拟的讲解,该系列博客不经存在广度还具 备一定深度,主要包含如这几个部分:
        1: 从零开始无死角讲解 isaac-gym 环境搭建过程;
        2: 主要包含ubuntu20.04以及 docker 两种方式的搭建;
        3: 包括但不限于双足,四足机器人 仿真模拟。
        4: 工程落地,含 sim2sim 及 sim2real 过程。
有的朋友可能不太了解isaac-gym 与 isaac-sim 的关系,简单的说:isaac-gym 就是一个仿真模拟器(主要用于强化学习), isaacGymEnvs 就是对其封装了一套接口,便于更多类型机器人的强化学习开发。其和 isaac-sim(仿真模拟器) 与 isaac-lab(强化学习接口封装) 的关系比较类似的。简单说明,仅供参考。

本博客编写于: 20241019 ,台式机为 u b u n t u 20.04 , 3090 G e F o r c e R T X 显存 24 G { \color{purple} 本博客编写于:20241019,台式机为 ubuntu 20.04,3090 GeForce RTX 显存24G} 本博客编写于:20241019,台式机为ubuntu20.043090GeForceRTX显存24G:与你现在的代码,或者环境等存在一定差异也在情理之中,故切勿认为该系列博客绝对正确,且百密必有一疏,若发现错误处,恳请各位读者直接指出,本人会尽快进行整改,尽量使得后面的读者少踩坑,评论部分我会进行记录与感谢,只有这样,该系列博客才能成为精品,这里先拜谢各位朋友了。

有的朋友可能会纯在疑问,isaac-gym 不是已不再维护代码库,由 isaac gym 项目合并到 isaac sim项目(2022年开始停止维护),那么为什么还要学习 isaac-gym 呢?主要是因为本人现在这个时间点比较尴尬,目前开源的项目主要都是基于 isaac gym,即 isaac sim 与 isaac lab 的生态还不够成熟,为了把一些开源项目利用或者移植到 isaac lab,迫不得已才需要熟悉 isaac gym,另外,isaac lab 才是未来的方向,有兴趣的朋友可以参考该链接了解与学习 isaac lab,该系列依旧是从 0 开始,无死角讲解:

文末正下方中心提供了本人 联系方式, 点击本人照片即可显示 W X → 官方认证 {\color{blue}{文末正下方中心}提供了本人 \color{red} 联系方式,\color{blue}点击本人照片即可显示WX→官方认证} 文末正下方中心提供了本人联系方式,点击本人照片即可显示WX官方认证

关于 01.isaac-gym 强化学习,参考链接为:【04.isaac-gym】最新从零无死角系列-(00) 目录最新无死角源码讲解
 

一、开源代码与工程

前面已经提到 isaac-gym 已经停止维护了,其官方一直并没有在 github 上开源,只能通过官方网址 https://developer.nvidia.com/isaac-gym 获取到源码:
在这里插入图片描述
需要登录才能进行下载,下载后的压缩包名为:IsaacGym_Preview_4_Package.tar.gz。解压之后目录结构应该如下所示:
在这里插入图片描述

 

二、本地ubuntu20.04搭建gym环境

参考链接:https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/1.17.0/install-guide.html (懂的都懂,需要访问国外)。

https://github.com/NVIDIA/nvidia-container-toolkit/issues/89

Ign:3 https://nvidia.github.io/libnvidia-container/stable/deb/amd64  InRelease                                                                                        
Hit:1 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal InRelease                                                                                                      
Hit:2 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-updates InRelease                                                                                              
Err:5 https://nvidia.github.io/libnvidia-container/stable/deb/amd64  Release                                                  
  Could not handshake: Error in the pull function. [IP: 185.199.111.153 443]
Hit:4 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-backports InRelease                       
Hit:6 http://lenovo.archive.canonical.com focal InRelease           
Hit:7 http://security.ubuntu.com/ubuntu focal-security InRelease
Reading package lists... Done
E: The repository 'https://nvidia.github.io/libnvidia-container/stable/deb/amd64  Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.

暂时没有安装,本人使用的是 docker 模式,个人觉得在本地部署安装环境太污染本地的环境了,且后续换机器后还要重新搭建环境,确实太麻烦了,如何后续本人在本地进行环境部署,会详细记录
 

三、 docker 环境搭建

1.使用docker优点

个人还是十分推荐使用 docker 的方式进行环境部署,简单来说,你可以把其看做一个虚拟机的管理工具,利用其可以创建很多虚拟机(容器):
        1: 多个虚拟机之间的环境是相互独立的,互不干扰
        2: 可以创建多种系统的容器,如ubuntu20.04,ubuntu24.04,wind10 等 。
        3: 哪怕两个工程要求的完全不一样的系统,你也可以在一塔数据机上运行这两个工程。
        4: 可以记录快照,及对环境进行保存,直接转移到另外一台主机,直接使用。
本人在工作过程中,有时候会更换工作电脑,如果不使用 docker 的方式,则所有工程的环境都需要重新搭建,十分耗时,但是使用 docker 几个小时即可完成几年积累下来的环境迁移。

2.nvidia-docker2搭建

官方链接:https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/1.17.0/install-guide.html

上面本人给的链接链接为 1.17.0 版本,若你所在时间点与本人不一致,应该会出现更高的新版本,可适当的选择是否安装最新版本。若上链接 失效 \color{red} 失效 失效,可在:https://docs.nvidia.com/datacenter/cloud-native/ 搜索栏中搜索 container,应该也能导航到相关链接。

如果参考官方链接能够正常安装,那当然是最好的选择,但是有的时候,不知道是本人环境还是官方服务器,获取被国内被限制的原因,最终无法正常安装 nvidia-docker2。本人找到一个大佬编写离线安装的教材,超级哇塞,安装一路通顺,这里给出链接:https://blog.csdn.net/qq_43548590/article/details/143193208,怕那天这篇博客突然没有了,所以本人摘录一下:

①.查看版本号

# 查看当前系统版本号和名称
lsb_release -a

如本人:
在这里插入图片描述
需要注意其中的 Description: Ubuntu 20.04.6 LTS,以及 Codename:focal,后面下载文件时需一一对应。

②.离线安装 docker

下载地址:https://download.docker.com/linux/ubuntu/dists/
查找符合版本要求的文件,如我的系统对应:https://download.docker.com/linux/ubuntu/dists/focal/pool/stable/amd64/

下载下方四个文件:

containerd.io_xxx_amd64.deb
docker-ce_xxx_amd64.deb
docker-ce-cli_xxx_amd64.deb
docker-ce-rootless-extras_xxx_amd64.deb
# 进入到下载目录执行如下指令安装
dpkg -i ./*deb

③.离线安装 NVIDIA-container-toolkit

链接:https://mirror.cs.uchicago.edu/nvidia-docker/libnvidia-container/stable/
选择对应系统版本后下载文件(没有ubuntu24我下载的最新的ubuntu20.04)上述链接不需要翻墙,文件包括:

libnvidia-container1_xxx_amd64.deb
libnvidia-container-tools_xxx_amd64.deb
nvidia-docker2_xxx_all.deb
nvidia-container-runtime_xxx_all.deb
nvidia-container-toolkit_xxx_amd64.deb
# 进入到下载目录执行如下指令安装
dpkg -i ./lib*  ./nvidia*

④.验证docker

# 重新加载daemon文件和docker
systemctl daemon-reload
systemctl restart docker
# 查看nvidia-docker 版本
nvidia-docker -v #查看版本
nvidia-docker version
dpkg -l | grep nvidia-docker #是否已安装

⑤.配置daemon.json

修改/etc/docker/daemon.json文件内容

“default-runtime”: "nvidia"设置docker默认运行环境为nvidia
“registry-mirrors”:镜像源代理地址(可自行百度最新地址)
{
    "default-runtime": "nvidia",
    "runtimes": {
        "nvidia": {
            "path": "nvidia-container-runtime",
            "runtimeArgs": []
        }
    },
    "registry-mirrors": [
        "https://docker.1panel.live",
        "https://hub.rat.dev/",
        "https://docker.chenby.cn",
        "https://docker.m.daocloud.io"
    ]
}

重新加载daemon文件和docker

# 重新加载daemon文件和docker
systemctl daemon-reload
systemctl restart docker

⑥.非root用户权限

sudo pkill -SIGHUP dockerd
sudo groupadd docker
sudo usermod  -aG docker ${用户名}
sudo service docker restart

四、基于docker搭建gym环境

1.源码 Dockerfile 修改

本人对源码的 Dockerfile 文件进行了修改,即 isaacgym/docker/Dockerfile,修改的原因是本人希望后续拉起来的虚拟机(容器)默认为root用户,修改该内容如下:
在这里插入图片描述
左边为源码原文件中内容,右侧则是我修改过后的结果,这样后续生成镜像容器默认用户名即是root,有对应的 root 权限。

2.docker 镜像生成

# 执行如下指令
cd  isaacgym/docker/
bash build.sh

执行之后,若一切正常,其会自动拉取镜像,完成后本人输出如下:
在这里插入图片描述

# 通过如下指令,进行镜像查看
nvidia-docker images

存在如下镜像说明镜像拉取成功:
在这里插入图片描述

3.容器创建

在拉取到了镜像之后,就是要创建容器了,可以通过源码中的 /opt/isaacgym/docker/run.sh 脚本直接创建且运行容器,但其是一次性的,即该容器再你退出终端时,会被销毁,下次又重新创建。不利于,我们搭建自己的 anconda 环境,因为我们希望容器一起存在,且每次进入保留上一次的环境,故可通过如下指令进行创建:

sudo docker run --runtime=nvidia --gpus all   -dit --restart=always  --privileged  -v /tmp/.X11-unix:/tmp/.X11-unix   -v /work:/work -v /dev:/dev --network host    -e DISPLAY=$DISPLAY  -e LANG=zh_CN.UTF-8   --name  isaacgym   -w /work isaacgym:latest  /bin/bash

其中 -v /work:/work 与 -v /dev:/dev 为本地目录到容器内部目录的映射,–name isaacgym 为创建容器的名称,可适当进行调整。然后就可以通过如下指令进入到容器了:

docker exec -it isaacgym /bin/bash

 

五、gym环境验证

进入容器之后,首先我们需要验证的,就是环境是否搭建成功,gym 是否使用 GPU 正常运行。

# 首先进入到如下目录
/opt/isaacgym/python/examples
# 执行示例代码
python joint_monkey.py

显示如下界面,且机器人在进行摆动,就说明环境完全搭建成功了。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江南才尽,年少无知!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值