Isaac Gym学习笔记——概述

news/2024/11/8 9:00:32 标签: 学习

介绍

  • Isaac Gym 允许开发人员为基于物理的系统试验端到端 GPU 加速 RL。在 Isaac Gym 中,仿真可以在 GPU 上运行,并将结果存储在 GPU 张量中,而不是将它们复制回 CPU 内存。其提供了一个基于张量的 API 来访问这些结果,允许在 GPU 上进行 RL 观察和奖励计算。

  • 这种组合可以在单个GPU上同时模拟数千个环境,从而可以在单个工作站上运行以前可能需要整个数据中心运行的实验。

  • Isaac Gym包括一个基本的PPO实现和一个可以直接与之一起使用的RL任务系统,但用户可以根据需要替换替代任务系统和RL算法。

Issac Gym的核心功能:

  • 支持导入 URDF 和 MJCF 文件

  • GPU 加速张量 API,用于评估环境状态和应用操作

  • 支持各种环境传感器 ——位置、速度、力、扭矩等

  • 物理场参数的运行时域随机化

  • 雅可比/反向运动学支持

相关资源:

  • awesome
  • legged gym 足式机器人强化学习代码(ETH)

快捷键:

TAB:显示/隐藏侧边栏
R:重置仿真器
F11:全屏
Mouse:控制相机视角

安装

环境配置:

  • Ubuntu 18.04 或 20.04
  • Python 3.6、3.7 或 3.8(recommended)
  • 最低 NVIDIA 驱动程序版本:linux 470以上

安装步骤

  1. 准备工作

下载并安装Isaac Gym的依赖项:

  • 首先,安装Isaac SDK。请参考官方文档。
  • 安装OpenGL和其他必要的系统依赖项。可以使用以下命令在Ubuntu上安装:
sudo apt-get install libglfw3-dev libgl1-mesa-dev libglu1-mesa-dev
  1. 创建虚拟环境(conda),在根目录运行
./create_conda_env_rlgpu.sh

如果要更改env名称,可以编辑python/rlgpu_conda_env.yml中的ENV_NAME后再运行上述命令

如果已经创建好了python环境,可以直接运行如下命令,多个环境使用需要在每个环境中重新运行该命令

pip install -e .
pip uninstall isaacgym #卸载
pip show isaacgym #验证已安装软件包的详细信息
  1. 激活环境
conda activate rlgpu
conda remove --name rlgpu --all  #移除环境
  1. 测试安装

进入python/examples后运行如下命令:

python joint_monkey.py #或者运行此文件夹下的其他样例也可
  1. Issues
  • 错误1
ImportError: libpython3.7m.so.1.0: cannot open shared object file: No such file or directory

安装相应的 Python 库应该可以解决这个问题:

sudo apt install libpython3.7

如果运行的是Ubuntu20.04,没有libpython3.7,则需要相应地设置LD_LIBRARY_PATH变量:

export LD_LIBRARY_PATH=/home/xyz/anaconda3/envs/rlgpu/lib
  • 错误2
ImportError: /home/xyz/anaconda3/bin/../lib/libstdc++.so.6: version `GLIBCXX_3.4.20` not found(required by /home/xyz/carbgym/python/isaacgym/_bindings/linux64/gym_36.so)

这意味着随 Anaconda 一起分发的版本与系统上用于构建 Isaac Gym 的版本不同。Anaconda 会用它安装的掩盖系统,但它可能与 Isaac Gym 在您的系统上构建的方式不兼容。有很多方法可以解决这个问题,最简单的方法是通过将 Anaconda 安装的冲突文件移动到不同的路径下:libstdc++ libstdc++ libstdc++

mkdir ${YOUR_CONDA_ENV}/lib/_unused
mv ${YOUR_CONDA_ENV}/lib/libstdc++* ${YOUR_CONDA_ENV}/lib/_unused

http://www.niftyadmin.cn/n/5743638.html

相关文章

黑马程序员linux学习【持续更新】

Linux基础 一、Linux简介 1.分类 不同领域的主流操作系统,主要分为下 几类:桌面操作系统、服务器操作系统、移动设备操作系统、嵌入式操作系统。 桌面操作系统 操作系统特点Windows用户数量最多MacOS操作体验好,办公人士首选Linux用户数…

day05(单片机)SPI+数码管

目录 SPI数码管 SPI通信 SPI总线介绍 字节交换原理 时序单元 ​​​​​​​SPI模式 模式0 模式1 模式2 模式3 数码管 介绍 74HC595芯片分析 ​​​​​​​原理图分析 ​​​​​​​cubeMX配置​​​​​​​ 程序编写 硬件SPI ​​​​​​​软件SPI 作业: SPI数…

物理验证Calibre LVS | SMIC Process过LVS时VNW和VPW要如何做处理?

SMIC家工艺的数字后端实现PR chipfinish写出来的带PG netlist如下图所示。我们可以看到标准单元没有VNW和VPW pin的逻辑连接关系。 前几天小编在社区星球上分享了T12nm ananke_core CPU低功耗设计项目的Calibre LVS案例,就是关于标准单元VPP和VBB的连接问题。 目前…

游戏网络(1)——网络发送间隔和滴答率等概念

与以下相混淆:滴答(Tick)、帧同步(Lockstep)、Timestep、滴答率(Tickrate)、Server Tick、客户端更新率(Client Update Rate)、刷新率、帧率、同步刻度、命令帧,让我们找出其中的关系。 如果你从事与游戏编程相关的工作,你会随处听到这些术语。有很多术语相关或含义…

算法工程师重生之第四十六天(字符串接龙 有向图的完全可达性 岛屿的周长)

参考文献 代码随想录 一、字符串接龙 题目描述 字典 strList 中从字符串 beginStr 和 endStr 的转换序列是一个按下述规格形成的序列: 1. 序列中第一个字符串是 beginStr。 2. 序列中最后一个字符串是 endStr。 3. 每次转换只能改变一个字符。 4. 转换过程…

构建 HTTP 服务端与 Docker 镜像:从开发到测试

在现代应用开发中,Docker 是一种非常流行的技术,用于打包、分发和运行应用程序。这篇博文将介绍如何使用 Docker 创建一个 HTTP 服务端,打包成 Docker 镜像,并在本地进行测试,包括如何模拟客户端发送 POST 请求。 1. …

泷羽sec学习打卡-shodan扫描7

声明 学习视频来自B站UP主 泷羽sec,如涉及侵权马上删除文章 笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负 关于shodan的那些事儿-7 一、shodan7如何学习shdoan命令如何在终端中如何实现监控ip警报呢?如…

electron 中 contextBridge 作用

1. 安全地实现渲染进程和主进程之间的通信 在 Electron 应用中,主进程和渲染进程是相互隔离的,这是为了安全和稳定性考虑。 然而,在很多情况下,渲染进程需要访问主进程中的某些功能,例如系统级别的操作或者一些应用级…