NVIDIA Omniverse™ Isaac Sim 是一款适用于 NVIDIA Omniverse™ 平台的机器人仿真工具包。Isaac Sim 具有构建虚拟机器人世界和实验的基本功能。它为研究人员和从业人员提供了创建稳健、物理精确的仿真和合成数据集所需的工具和工作流程。Isaac Sim 通过 ROS/ROS2 支持导航和操纵应用。它可以模拟来自 RGB-D、激光雷达和 IMU 等传感器的传感器数据,用于域随机化、地面实况标记、分割和边界框等各种计算机视觉技术。
Omniverse Isaac Sim 使用英伟达™ Omniverse™ Kit SDK,这是一个用于构建原生 Omniverse 应用程序和微服务的工具包。Omniverse Kit通过一系列轻量级插件提供了多种功能。插件采用C语言接口编写,以实现持久的API兼容性;不过,还提供了一个Python解释器,以方便用户编写脚本和进行定制。
Python API 可用于编写 Omniverse Kit 的新扩展或 Omniverse 的新体验。
提示
如需更深入地了解如何使用工具包进行开发,请参阅《工具包编程手册》。
Omniverse Isaac Sim 使用英伟达™ Omniverse™ Nucleus 访问环境和机器人的USD文件等内容。Omniverse Nucleus服务允许各种客户端应用程序、渲染器和微服务共享和修改Omniverse Isaac Sim中的虚拟世界。
Nucleus以发布/订阅模式运行。根据访问控制,Omniverse 客户端可以向 Nucleus 数据库(DB)发布对数字资产和虚拟世界的修改,也可以订阅他们的修改。更改会在连接的应用程序之间实时传输。数字资产可以包括几何图形、灯光、材料、纹理和其他描述虚拟世界及其随时间演变的数据。
这样,各种支持 Omniverse 的客户端应用程序(应用程序、连接程序和其他程序)就可以共享和修改虚拟世界的权威表述。
注释
如需更深入地了解 Nucleus 数据模型、架构和分发平台,请参阅 "Nucleus 概述"。
Omniverse Isaac Sim 使用 USD 交换文件格式来表示场景。通用场景描述(USD)是一种易于扩展的开源三维场景描述和文件格式,由皮克斯公司开发,用于内容创建和不同工具之间的交换。由于其强大的功能和通用性,USD 被广泛采用,不仅在视觉特效界,而且在建筑、设计、机器人、制造和其他学科也得到了广泛应用。
文档分为以下几个部分: 简介、安装指南、API 文档、教程、手册和参考资料。
简介部分是对 Omniverse Isaac Sim 的基本概述,以及它如何融入 NVIDIA Omniverse™ 生态系统。它还概述了 Omniverse Isaac Sim 的架构、工作流程和文档布局。
工作站安装是向所有用户推荐的安装流程。
Omniverse Isaac Sim还支持更高级的无头和远程安装选项。本页指南涵盖 Docker、云和流相关设置。
有关 Omniverse 和 Isaac Sim 扩展的 Python API 文档,请点击此处。
教程部分包含以下类别中使用Isaac Sim功能的分步指南。我们强烈建议您先完成入门教程、图形用户界面教程和核心API教程,以便了解使用Omniverse Isaac Sim的所有方法,然后再继续学习重点更突出的教程。
入门: 在 Omniverse Kit 中工作的基础知识以及 Omniverse Isaac Sim 中的不同工作流程。
图形用户界面: 通过图形用户界面了解 Omniverse Isaac Sim 中机器人技术的基本概念。
开发工具: 用于调试和开发的工具和环境。
核心应用程序接口: 使用 Omniverse Isaac Sim 核心 Python API 构建环境、机器人和任务。
场景设置: 从外部导入并修改机器人和机械手。
动作生成 Lula 运动生成库。
ROS/ROS2:各种 ROS 和 ROS2 桥接和接口示例。
映射 占用图生成
Isaac Gym 教程: 强化学习框架和 Cloner API。
Replicator 教程: 合成数据生成
Isaac Cortex 教程: 高级行为编程。
功能部分重点介绍用于设置环境、机器人和传感器的 Omniverse Isaac Sim 扩展和工具,以及物理工具包、桥接器、导出器和调试器。
概念部分包含词汇表和 Omniverse Isaac Sim 机制(如世界表示法和环境)的解释。
How-To-Guides 包含简短的代码片段和特定 Omniverse Isaac Sim 操作提示。
参考资料部件提供参考资料、部件链接和资源,为开发人员提供帮助。
该部分还提供了一系列有用的示例,供用户快速尝试 Omniverse Isaac Sim 的中高级应用。每个示例都包含注释清晰的源代码,用户可根据自己的使用情况抓取并修改。
请参阅 Isaac 示例菜单中的完整示例列表。
Isaac Sim USD 资产部分提供了支持的环境、机器人、道具、传感器和特色资产的完整列表,以帮助开发人员。
Element |
Minimum Spec |
Good |
Ideal |
---|---|---|---|
OS |
Ubuntu 20.04/22.04 Windows 10/11 |
Ubuntu 20.04/22.04 Windows 10/11 |
Ubuntu 20.04/22.04 Windows 10/11 |
CPU |
Intel Core i7 (7th Generation) AMD Ryzen 5 |
Intel Core i7 (9th Generation) AMD Ryzen 7 |
Intel Core i9, X-series or higher AMD Ryzen 9, Threadripper or higher |
Cores |
4 |
8 |
16 |
RAM |
32GB* |
64GB* |
64GB* |
Storage |
50GB SSD |
500GB SSD |
1TB NVMe SSD |
GPU |
GeForce RTX 2070 |
GeForce RTX 3080 |
RTX A6000 |
VRAM |
8GB* |
10GB* |
48GB* |
注意事项
- Isaac Sim 容器仅支持 Linux。
- * 建议使用更多内存和 VRAM 来高级使用 Isaac Sim。
- Ubuntu 18.04 仅支持 Isaac Sim 2022.2.0。
- 在线访问 Isaac Sim 资产和运行某些扩展程序需要互联网连接。
当前推荐的 Isaac Sim 驱动程序版本为 Windows 528.24 和 Linux 525.85。
Driver Version Support |
Windows |
Linux |
---|---|---|
Recommended |
528.24, 528.33 (Grid/vGPU) |
525.85.05, 525.85.12 (Grid/vGPU) |
Minimum |
473.47 |
510.73.05 |
Unsupported |
495.0 up to 512.59, 525 up to 526.91 |
515.0 up to 515.17 |
备注
有关更新,请参阅技术要求。
请参阅 "Linux 故障排除 "以解决 Linux 上的驱动程序安装问题。
如果您使用的是新的 GPU 或遇到当前驱动程序的问题,我们建议在 Linux 上使用 .run 安装程序从英伟达™(NVIDIA®)GPU 驱动程序存档中安装最新的 525.x.x 驱动程序。
在 Linux 系统上:
- 将 omniverse-launcher-linux.AppImage 文件移至文件夹或桌面,以防 -allow-root 意外删除。
- 运行 sudo chmod +x omniverse-launcher-linux.AppImage,允许用户执行应用程序。
- 双击 omniverse-launcher-linux.AppImage 文件,安装 Omniverse Launcher。
在工作站上运行 Isaac Sim 时,需要安装 Nucleus 和 Cache。
另请参阅 "系统监视器 "和 "清理工具"。
您可以在 "Omniverse Launcher "的 "Exchange "选项卡中找到并安装Omniverse Isaac Sim。为简化操作,请在搜索栏中输入 "isaac sim"。
安装完成后,进入 "库 "选项卡,在侧边栏中选择 Isaac Sim。
要运行 Isaac Sim 应用程序选择器,请单击 "启动 "按钮。
Isaac Sim 应用程序选择器是一款迷你窗口应用程序,可帮助您在不同模式下运行 Isaac Sim。
从 Omniverse Launcher 启动 Isaac Sim 时,Isaac Sim App Selector 将默认运行。
点击 "开始 "运行 Isaac Sim 主程序。
恭喜您!您已完成本地工作站 Isaac Sim 的基本安装。
进入 Isaac Sim 界面,开始第一个基础教程。
注意事项
- 首次运行 Isaac Sim 应用程序需要一些时间来预热着色器缓存。
- 资产下载器对话框不再可用。Isaac Sim 资产现在位于 /NVIDIA/Assets/Isaac/2023.1.1 的每个 Nucleus 中。
- 要验证 Isaac Sim 资产的位置,请转到 Isaac Utils > Nucleus Check 菜单。该检查默认为禁用。
- 要以全新配置运行 Isaac Sim,请使用 --reset-user 标志。该标志可在 Isaac Sim 应用程序选择器的 "额外参数 "部分输入,或在命令行下运行 Isaac Sim 时输入。
- 来自 /NVIDIA/Assets/Isaac/2023.1.1 文件夹的当前资产仅适用于最新的 Isaac Sim 2023.1.1 版本。
可以通过 Python 本机运行 Isaac Sim,而不是将其作为独立的可执行文件。这为如何初始化、设置和管理 Omniverse 应用程序提供了更多底层控制。
Isaac Sim 提供了一个内置的 Python 3.10 环境,软件包可以使用该环境,类似于系统级的 Python 安装。我们建议在运行 Python 脚本时使用该 Python 环境。
从 Isaac Sim 根文件夹运行以下命令,即可在此环境中运行 Python 脚本:
./python.sh path/to/script.py
注意
- 你可以直接在 Isaac Sim 应用程序选择器的 Isaac Sim 根文件夹下打开终端。
- 如果需要通过 pip 安装其他软件包,请运行以下命令:
./python.sh -m pip install name_of_package_here
注意
- 在 Windows 上使用 python.bat 而不是 python.sh
另请参见
- 有关 python.sh 的更多详情,请参阅 Python 环境手册。
使用 Isaac Sim 的 Jupyter 笔记本可按如下方式执行:
./jupyter_notebook.sh path/to/notebook.ipynb
注意
- 首次运行 jupyter_notebook.sh 时,会将 Jupyter Notebook 软件包安装到 Isaac Sim Python 环境中,这可能需要几分钟时间。
注意事项
- 目前,Jupyter 笔记本仅支持 Linux。
另请参见
- 更多详情,请参阅 Jupyter Notebooks 文档。
Isaac Sim 软件包提供了一个 .vscode 工作区,该工作区具有预配置环境,可提供以下功能:
在 Visual Studio Code (VSCode) 中打开 Isaac Sim 软件包主文件夹,即可打开该工作区。
注意
- 建议在学习教程和示例时使用 Visual Studio Code。
另请参见
- 有关 VSCode 工作区的详细信息,请参阅 Visual Studio Code (VSCode) 支持文档。
按照 "容器部署 "中第 8 步的说明启动 Docker 容器。
Isaac Sim 容器运行后,就可以运行上述章节中的 Python 脚本或 Jupiter Notebook。
注意
- 您可以通过 pip 安装其他软件包:
./python.sh -m pip install name_of_package_here
- 请参阅 "保存 Docker 镜像",以提交镜像并持久安装 Python 设置。
使用以下命令创建一个新环境:
conda env create -f environment.yml
conda activate isaac-sim
如果您已有一个 conda 环境,请确保 environment.yml 中的软件包已安装。或者,也可以按照以下方法删除并重新创建 conda 环境:
conda remove --name isaac-sim --all
conda env create -f environment.yml
conda activate isaac-sim
最后,需要设置环境变量,以便正确定位 Isaac Sim python 软件包。在 Linux 上,可以按以下步骤进行设置:
source setup_conda_env.sh
然后就可以在 isaac-sim conda 环境下运行样本了:
python path/to/script.py
注意事项
- 如果使用 isaac-sim Anaconda 环境,请使用 python 而不是 python.sh 运行示例。
Omniverse Isaac Sim为ROS系统集成提供了ROS和ROS 2桥接器。同一套通用组件用于定义模拟器发布/接收的数据类型。
Platform |
ROS |
ROS 2 |
---|---|---|
Ubuntu 20.04 |
Noetic |
Foxy |
Ubuntu 22.04 |
NA |
Humble (recommended) |
Windows 10 |
NA |
Humble |
在 ROS 桥接方面,Isaac Sim 在内部运行 ROS Noetic 的定制 roscpp 版本,以便与 Omniverse 框架和 Python 3 兼容。
在 ROS 2 桥接方面,Isaac Sim 目前与 ROS 2 Foxy 和 ROS 2 Humble 兼容。
按照官方网站上的说明下载 ROS:
在终端中创建 ROS 环境。每次使用任何 ROS 命令前都必须执行此步骤。
source /opt/ros/noetic/setup.bash
确保在 ROS 源终端中启动 roscore。Isaac Sim 默认不运行 roscore,以便更灵活地将 Isaac Sim 与现有 ROS 工作流程集成。
要启用 ROS 桥扩展,请进入扩展管理器菜单 Window->Extensions 并搜索 ROS bridge。任何时候都只能启用一个 ROS 桥扩展,因此如果在两个桥之间切换,请先禁用一个,然后再启用另一个。
目前,ROS2 桥接器默认已启用。如果您正在运行 isaac-sim.sh,并希望禁用两个 ROS 桥接器,或切换到自动加载 ROS 桥接器,请按照以下步骤操作:
从 https://github.com/NVIDIA-Omniverse/IsaacSim-ros_workspaces 克隆 Isaac Sim ROS 工作空间库。
通过 Isaac Sim ROS / ROS 2 系列教程需要一些 ROS 软件包。为了方便学习,我们提供了包含必要软件包的整个 ROS 和 ROS2 工作区。
如果你想直接使用所提供的工作区,请按照以下步骤构建它,并为该软件包的覆盖层提供源代码。您也可以将各个软件包复制并粘贴到自己的工作区,然后在那里构建,并确保该工作区位于 ROS_PACKAGE_PATH 内。
echo $ROS_PACKAGE_PATH/opt/ros/noetic/share
sudo apt install ros-$ROS_DISTRO-moveit
cd noetic_ws
rosdep install -i --from-path src --rosdistro noetic -y
catkin_make
source devel/setup.bash
这将把 Isaac Sim ROS 工作区放入你的 ROS_PACKAGE_PATH。你可以再次使用 echo $ROS_PACKAGE_PATH
来查看 Isaac Sim ROS 工作区的路径是否已经添加到原来的路径前面。以下是为 Omniverse Isaac Sim 创建的 ROS 软件包示例列表: