Issac Gym install

Issac Gym 安装

探索Isaac Gym的世界

介绍

如果你正在寻找一个高品质的强化学习模拟环境,Isaac Gym是一个极佳的选择。它是一个强大的工具,提供广泛的模拟功能,是机器人领域的研究人员和开发人员的首选。在本博客文章中,我们将更详细地了解Isaac Gym的特点以及它如何帮助你实现你的目标。

Isaac Gym的特点

Isaac Gym是一个高度可定制的模拟环境,可以为你的研究或开发项目创建复杂的模拟。Isaac Gym最重要的功能之一是它支持基于物理的模拟。它提供准确和真实的物理模拟,可以帮助你训练机器人执行现实世界的任务。此外,它支持各种类型的传感器,包括RGB相机,深度相机和激光雷达,使你能够为你的代理创建多样化且具有挑战性的场景。

Isaac Gym的另一个值得注意的特点是它支持TensorFlow,PyTorch和MXNet等深度学习框架。你可以使用这些框架使用强化学习算法来训练你的代理,包括Proximal Policy Optimization(PPO)和Deep Q-Networks(DQN)。使用深度学习框架,你可以创建从原始感官输入中学习并执行复杂任务的复杂模型。

Isaac Gym的优点

Isaac Gym相比其他模拟环境提供了几个优势。首先,它易于使用并提供直观的用户界面,使你可以轻松地创建和修改模拟。此外,它高度可定制,使你可以创建符合项目要求的模拟。此外,它快速且可扩展,使你能够高效地模拟大规模的环境和代理。

Isaac Gym的另一个优势是它与NVIDIA硬件的集成。它经过优化,可用于NVIDIA GPU,使你能够利用GPU的强大功能进行模拟。这种集成提供了快速和高效的模拟,使你能够更快,更有效地训练你的代理。

Isaac Gym的应用

Isaac Gym有几个应用,包括机器人,自动驾驶和游戏开发。在机器人领域,它可以帮助你训练机器人执行各种任务,例如抓取物体,导航环境和与人互动。在自动驾驶中,它可以帮助你训练自驾车在复杂的环境中安全地行驶。在游戏开发中,它可以帮助你创建智能且具有挑战性的游戏角色,可以适应玩家的行为。

结论

Isaac Gym是一个出色的强化学习模拟环境,提供广泛的模拟功能和深度学习框架的支持。它的支持物理模拟,各种类型的传感器和NVIDIA硬件集成,使它成为机器人领域的研究人员和开发人员的理想选择。它的易用性,可扩展性和快速的模拟使它成为各种应用的流行选择,包括自动驾驶和游戏开发。如果你正在寻找一个强大的模拟环境来进行你的研究或开发项目,Isaac Gym是一个出色的选择。

安装Isaac Gym

如果你想要尝试使用Isaac Gym,你需要先安装它。你可以从NVIDIA的GitHub存储库中下载和安装Isaac Gym。在安装之前,你需要确保你的计算机满足Isaac Gym的要求,包括安装了CUDA和cuDNN等软件。安装后,你可以尝试运行示例代码,以确保一切正常运行。

通过Docker安装Isaac Gym

  • 从Nvidia网站下载Isaac Gym

    https://developer.nvidia.com/isaac-gym

    下载的文件夹结构如下:

    ├── assets
    │   ├── glb
    │   ├── mjcf
    │   ├── textures
    │   └── urdf
    ├── docker
    │   ├── 10_nvidia.json
    │   ├── Dockerfile
    │   ├── build.sh
    │   ├── nvidia_icd.json
    │   └── run.sh
    ├── docs
    │   ├── _images
    │   ├── _modules
    │   ├── _sources
    │   ├── _static
    │   ├── api
    │   ├── examples
    │   ├── programming
    │   ├── rl
    │   ├── about_gym.html
    │   ├── faqs.html
    │   ├── genindex.html
    │   ├── index.html
    │   ├── install.html
    │   ├── objects.inv
    │   ├── release-notes.html
    │   ├── search.html
    │   └── searchindex.js
    ├── licenses
    │   ├── assets
    │   ├── oss
    │   └── packages
    ├── python
    │   ├── build
    │   ├── examples
    │   ├── isaacgym
    │   ├── isaacgym.egg-info
    │   ├── rlgpu
    │   ├── LICENSE.txt
    │   ├── rlgpu_conda_env.yml
    │   └── setup.py
    ├── README.txt
    └── create_conda_env_rlgpu.sh
    
  • 构建docker镜像

    bash docker/build.sh
    

    让我们来看看这个文件: ./docker/build.sh

    #!/bin/bash
    set -e
    set -u
    SCRIPTROOT="$( cd "$(dirname "$0")" ; pwd -P )"
    cd "${SCRIPTROOT}/.."
    
    docker build --network host -t isaacgym -f docker/Dockerfile .
    

    它实际上是基于Dockerfile构建docker镜像:

    FROM nvcr.io/nvidia/pytorch:21.03-py3
    ENV DEBIAN_FRONTEND=noninteractive
    
    # dependencies for gym
    #
    RUN apt-get update \\
     && apt-get install -y --no-install-recommends \\
     libxcursor-dev \\
     libxrandr-dev \\
     libxinerama-dev \\
     libxi-dev \\
     mesa-common-dev \\
     zip \\
     unzip \\
     make \\
     gcc-8 \\
     g++-8 \\
     wget \\
     vulkan-utils \\
     mesa-vulkan-drivers \\
     doxygen \\
     graphviz \\
     fonts-roboto \\
     python3-sphinx \\
     pigz \\
     git \\
     libegl1 \\
     git-lfs
    
    # Force gcc 8 to avoid CUDA 10 build issues on newer base OS
    RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 8
    RUN update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-8 8
    
    # WAR for eglReleaseThread shutdown crash in libEGL_mesa.so.0 (ensure it's never detected/loaded)
    # Can't remove package libegl-mesa0 directly (because of libegl1 which we need)
    RUN rm /usr/lib/x86_64-linux-gnu/libEGL_mesa.so.0 /usr/lib/x86_64-linux-gnu/libEGL_mesa.so.0.0.0 /usr/share/glvnd/egl_vendor.d/50_mesa.json
    
    # python dependencies for gym
    RUN pip install -q -U \\
    numpy-quaternion click tqdm sphinx sphinx-rtd-theme breathe pylama
    
    COPY docker/nvidia_icd.json /usr/share/vulkan/icd.d/nvidia_icd.json
    COPY docker/10_nvidia.json /usr/share/glvnd/egl_vendor.d/10_nvidia.json
    
    WORKDIR /opt/isaacgym
    
    # copy gym repo to docker
    COPY . .
    
    # install gym modules
    RUN cd python && pip install -q -e .
    RUN cd python/rlgpu/rl-pytorch && pip install -q -e .
    
    ENV NVIDIA_VISIBLE_DEVICES=all NVIDIA_DRIVER_CAPABILITIES=all
    

    我们需要获取访问nvidia docker hub的权限 (https://docs.nvidia.com/ngc/ngc-overview/index.html#generating-api-key)

    docker login nvcr.io
    Username: $oauthtoken
    Password:
    
  • 启动容器

    bash docker/run.sh
    
    bash docker/run.sh :0.0
    

    让我们来看看 run.sh(修改版本,删除了“-rm”)文件

    #!/bin/bash
    set -e
    set -u
    
    if [ $# -eq 0 ]
    then
        echo "running docker without display"
        docker run -it --network=host --gpus=all --name=isaacgym_container isaacgym /bin/bash
    else
        export DISPLAY=$DISPLAY
        echo "setting display to $DISPLAY"
        xhost +
        docker run -it  -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=$DISPLAY --network=host --gpus=all --name=isaacgym_container_v1 mingzailao/isaac-gym:v0 /bin/bash
        xhost -
    fi
    

    这意味着我们可以将参数传递到 run.sh 中,如果我们想要使用显示功能,则需要给脚本 DISPLAY 变量,例如 “:0.0”

    如何确定你的DISPLAY Variable 呢

    xdpyinfo
    

    输出的不是:

    xdpyinfo:  unable to open display ":x.x".
    

    即可

    一般来说是类似下面的输出:

    name of display:    :1.0
    version number:    11.0
    vendor string:    The X.Org Foundation
    vendor release number:    12004000
    X.Org version: 1.20.4
    maximum request size:  16777212 bytes
    motion buffer size:  256
    bitmap unit, bit order, padding:    32, LSBFirst, 32
    image byte order:    LSBFirst
    number of supported pixmap formats:    7
    supported pixmap formats:
        depth 1, bits_per_pixel 1, scanline_pad 32
        depth 4, bits_per_pixel 8, scanline_pad 32
        depth 8, bits_per_pixel 8, scanline_pad 32
        depth 15, bits_per_pixel 16, scanline_pad 32
        depth 16, bits_per_pixel 16, scanline_pad 32
        depth 24, bits_per_pixel 32, scanline_pad 32
        depth 32, bits_per_pixel 32, scanline_pad 32
    keycode range:    minimum 8, maximum 255
    focus:  window 0x4cb, revert to None
    number of extensions:    31
        BIG-REQUESTS
        Composite
        DAMAGE
        DOUBLE-BUFFER
        DPMS
        DRI2
        DRI3
        GLX
        Generic Event Extension
        MIT-SCREEN-SAVER
        MIT-SHM
        NV-CONTROL
        NV-GLX
        Present
        RANDR
        RECORD
        RENDER
        SECURITY
        SHAPE
        SYNC
        X-Resource
        XC-MISC
        XFIXES
        XFree86-DGA
        XFree86-VidModeExtension
        XINERAMA
        XINERAMA
        XInputExtension
        XKEYBOARD
        XTEST
        XVideo
    default screen number:    0
    number of screens:    1
    
    screen #0:
    ...
    

    可以用:0.0,:1.0,:2.0,:3.0(多显卡编号id,一般来说决定X-org输出的顺序)

    即可愉快使用%

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇