What Is Isaac Sim?
Author
Tony Wang
Date Published
什么是 Isaac Sim?
NVIDIA Isaac Sim™ 是基于 NVIDIA Omniverse 构建的参考应用程序,使开发人员能够在基于物理的虚拟环境中开发、仿真和测试由 AI 驱动的机器人。
设计
Isaac Sim 提供了一套完整的工作流程,用于导入和调整机械系统,这些系统采用最常见的格式设计,包括 Onshape、统一机器人描述格式(URDF)和 MuJoCo XML 格式(MJCF)。这得益于通用场景描述(USD)的使用,它是一个易于扩展的开源 3D 场景描述 API,是 Isaac Sim 数据交互的核心。
调整与训练
Isaac Sim 的核心功能是仿真本身:一个高保真度的基于 GPU 的 PhysX 引擎,支持工业级多传感器 RTX 渲染。Isaac Sim 可直接访问 GPU,从而支持多种传感器(如摄像头、LiDAR 和接触传感器)的仿真。这反过来又促进了数字孪生的仿真,使您的端到端流程在无需启动真实机器人之前就能运行。Isaac Sim 提供了一套工具,包括使用 Replicator 采集合成数据、通过 Omnigraph 编排仿真环境、调整 PhysX 仿真参数以匹配现实,以及通过如 Isaac Lab 中的强化学习(RL)等方法训练控制代理。
部署
Isaac Sim 预装了部署控制代理到真实机器人所需的全部组件,同时也支持构建与这些系统完全集成的应用程序。Omniverse 提供了用于应用基础架构(包括 GUI 创建和文件管理)的 API。Isaac Sim 平台还提供了连接 ROS 和 ROS2 的桥接 API,可实现仿真与真实机器人之间的直接通信。此外,NVIDIA Isaac ROS 是一组性能强大、硬件加速的 ROS 2 软件包,用于构建自主机器人。
有用的 API 链接
有用的手册
Omniverse Kit 编程手册
脚本指南
入门
工作站安装:本地工作站的安装指南
容器安装:远程无头服务器的安装指南
快速上手:NVIDIA Isaac Sim 的入门教程
开发工具:调试与开发工具与环境
Python 脚本:使用 Isaac Sim 核心 Python API 构建环境、机器人和任务的工具和教程
图形界面(GUI):通过 GUI 掌握 Isaac Sim 中的机器人学基本概念
机器人设置:从外部来源导入和修改机器人和机械臂
机器人仿真:用于仿真的控制器和运动生成工具
ROS:ROS 和 ROS2 桥接与接口
Isaac Lab:强化学习框架和 Cloner API
Replicator:合成数据生成工具
数字孪生:构建和运行数字孪生(如仓储物流、Cortex 和地图构建)工具
系统架构
Isaac Sim 的目标是支持新的机器人工具的创建,并增强已有工具的能力。该平台提供灵活的 C++ 和 Python API,根据您的需求可以不同程度地集成到项目中。其目标并不是与现有软件竞争,而是协同增强。为此,Isaac Sim 的许多组件是开源的,可独立使用。例如,您可以使用 OnShape 设计机器人,使用 Isaac Sim 仿真其传感器,并通过 ROS 或其他消息系统控制场景。也可以完全基于 Isaac Sim 平台构建一个完整的独立应用程序!
Omniverse Kit
Isaac Sim 使用 Omniverse™ Kit,这是用于构建原生 Omniverse 应用和微服务的工具包。Omniverse Kit 提供通过轻量级插件实现的各种功能。插件使用 C 接口编写以保持 API 的长期兼容性,同时也提供 Python 解释器以便进行脚本编写和定制。
Python API 可用于为 Omniverse Kit 编写新扩展,或为 Omniverse 创建新的体验。
开发工作流
Isaac Sim 由 C++ 和 Python 构建,并主要通过编译插件和绑定方式运行。这意味着平台支持多种构建和交互工作流。Isaac Sim 附带完整的独立 Omniverse 应用程序,用于与机器人交互和仿真,虽然这是最常见的交互方式,但并非唯一方式。Isaac Sim 还提供了 VS Code 和 Jupyter Notebook 的 Python 开发支持。它也不仅限于同步操作,还能通过 ROS 和 ROS2 实现硬件闭环操作,促进仿真到现实的迁移和数字孪生。
USD(通用场景描述)
NVIDIA Isaac Sim 使用 USD 文件格式来表示场景。USD 是由 Pixar 开发的易于扩展的开源 3D 场景描述文件格式,用于内容创作和不同工具之间的数据交换。由于其强大和灵活性,USD 被广泛应用,不仅在视觉特效领域,也包括建筑、设计、机器人、制造等多个领域。
深入了解 Omniverse 中的 USD,请参阅 NVIDIA USD 入门指南:What is USD?
参考 USD API 文档
了解 USD 专有术语与概念
查看 NVIDIA USD 教程 获取逐步介绍