Isaac Sim详细安装使用教程

本文涉及的产品
资源编排,不限时长
简介: NVIDIA Isaac Sim 4.0版本的安装和使用教程,包括了下载、安装、配置环境、使用ROS/ROS2扩展、设置工作空间以及编译和运行示例程序的步骤。同时,还提供了Isaac Sim的架构图和USD文件格式的介绍,以及相关的资源链接和教程视频。

2024年6月更新: Isaac Sim当前已经更新到4.0.0大版本,有了不少新的内容,因此笔者制作了最新的Isaac Sim整套入门教程,欢迎大家跳转到新的入门教程链接。

前言

笔者出于工作需要,使用ISAAC SIM,顺便也整理一份使用的教程,方便后来人少走弯路。

作者: Herman Ye@Auromix
Auromix是一个机器人爱好者组织,欢迎参与我们Github上的开源项目

一、安装Isaac Sim

1.下载omniverse

NVIDIA Omniverse™ Isaac SimNVIDIA Omniverse™平台的一款机器人仿真工具包。Isaac Sim具备构建虚拟机器人世界和实验的关键功能。它为研究人员和从业人员提供了创建健壮、物理精确仿真和合成数据集所需的工具和工作流程。Isaac Sim通过ROS/ROS2支持导航和操控应用。它可以模拟RGB-D、Lidar和IMU等传感器的传感器数据,用于多种计算机视觉技术,如领域随机化、真值标签、分割和边界框。

因为Isaac Sim是依托于NVIDIA Omniverse平台的仿真工具包,所以需要前往Nvidia Isaac Sim官网下载Omniverse

2.启动Omniverse

替换掉<your_omniverse_appimage>为你下载的omniverse版本,通常名为omniverse-launcher-linux.AppImage

sudo chmod +x <your_omniverse_appimage>  # grant executable permissions

例:

sudo chmod +x omniverse-launcher-linux.AppImage # grant executable permissions

在没有安装FUSE时可能无法启动appimage,因此先安装FUSE

sudo apt install fuse -y  # install fuse

通过命令行启动Omniverse,也可手动双击启动

./<your_omniverse_appimage>

例:

./omniverse-launcher-linux.AppImage

在这里插入图片描述

3.登录Nvidia账号

登录Nv的账号,按照引导,默认即可,进入Omniverse主页面

4.安装ISAAC SIM

进入EXCHANGE页面,选择ISAAC SIM,点击install,等待自动下载安装完成

在这里插入图片描述

5.安装NUCLEUS

Omniverse Isaac Sim使用NVIDIA Omniverse™ Nucleus来访问环境和机器人的USD文件等内容。Omniverse Nucleus服务允许各种客户端应用程序、渲染器和微服务在Omniverse Isaac Sim中共享和修改虚拟世界的表示。

Nucleus采用发布/订阅模型。在访问控制的前提下,Omniverse客户端可以将数字资产和虚拟世界的修改发布Nucleus数据库(DB),或订阅其变化。更改在连接的应用程序之间实时传输。数字资产可以包括描述虚拟世界及其随时间演变的几何形状、灯光、材料、纹理和其他数据。

这使得各种Omniverse-enabled客户端应用程序(Apps, Connectors等)能够共享和修改虚拟世界的权威表示。

进入NUCLEUS页面,点击Add Local Nucleus Device,创建管理员账号
在这里插入图片描述
点击COMPLETE SETUP,等待下载并设置完成
在这里插入图片描述

6.启动ISAAC SIM

LIBRARY中找到ISAAC SIM,点击Launch启动,按照默认选项,点击START继续启动
在这里插入图片描述
过程中可能会遇到一些依赖安装、光追编译、加载等情况,根据个人电脑性能情况速度不同,等待即可
在这里插入图片描述

提示: ISAAC SIM 对于个人计算机性能要求比较苛刻,因此个人建议最低配置表如下:

硬件 参数
内存 32 GB
存储 1 T
显存 8 G

具体的ISAAC SIM性能要求可参考Nvidia Isaac Sim Documentation System Requirements
在这里插入图片描述

7.观察ISAAC SIM主界面

在成功启动并完成编译、配置等过程后,Isaac Sim的空主界面应当为如下状态:
在这里插入图片描述

相关附录

Nvidia Omniverse Isaac Sim Documentation
Isaac Sim ROS2 tutorial
How to use Isaac Sim with your own robot?
Auromix Github Repository
0nhc@Auromix Isaac Sim野生教程01: Isaac Sim的安装

二、简单使用Isaac Sim

这是Isaac Sim的架构图,可作为了解,具体的架构、开发流等相关内容可查阅Isaac Sim Documentation
在这里插入图片描述

1.了解USD

对于框架中提及的USD,可以稍微了解一下:
Omniverse Isaac Sim使用USD交换文件格式来表示场景。Universal Scene Description (USD)是由皮克斯公司开发的一种易于扩展、开源的3D场景描述和文件格式,用于内容创作和工具间的交换。由于其强大和多功能,USD不仅在视觉效果社区中被广泛采用,而且在建筑、设计、机器人、制造和其他领域也被广泛采用。

2.配置环境

以下案例以ROS2 Humble版本为标准

安装xacro
sudo apt-get install ros-humble-xacro
安装Isaac Sim ROS-extension

参考Isaac Sim提供的Enabling the ROS / ROS 2 Bridge Extension教程,执行如下步骤:

开启ROS Bridge拓展
  • 在 Isaac Sim 中,转到窗口 -> 扩展的扩展管理器菜单,并搜索 ROS bridge。请注意,一次只能启用一个 ROS Bridge 扩展,比如启用ROS2 BRIDGE时不可使用ROS BRIDGE。
  • 在这里插入图片描述
设置 Fast DDS 中间件配置
  • 在ROS的目录下新建FASTDDS文件
sudo touch ~/.ros/fastdds.xml
  • 打开文件并粘贴以下XML文件内容:
 sudo nano ~/.ros/fastdds.xml

例如使用nano编辑工具打开该文件:

<?xml version="1.0" encoding="UTF-8" ?>

<license>Copyright (c) 2022, NVIDIA CORPORATION.  All rights reserved.
NVIDIA CORPORATION and its licensors retain all intellectual property
and proprietary rights in and to this software, related documentation
and any modifications thereto.  Any use, reproduction, disclosure or
distribution of this software and related documentation without an express
license agreement from NVIDIA CORPORATION is strictly prohibited.</license>


<profiles xmlns="http://www.eprosima.com/XMLSchemas/fastRTPS_Profiles" >
    <transport_descriptors>
        <transport_descriptor>
            <transport_id>UdpTransport</transport_id>
            <type>UDPv4</type>
        </transport_descriptor>
    </transport_descriptors>

    <participant profile_name="udp_transport_profile" is_default_profile="true">
        <rtps>
            <userTransports>
                <transport_id>UdpTransport</transport_id>
            </userTransports>
            <useBuiltinTransports>false</useBuiltinTransports>
        </rtps>
    </participant>
</profiles>

fastdds.xml 文件是 ROS2 中用来配置 Fast DDS 中间件的文件。
fastdds.xml 文件中,主要定义了以下内容:

  1. <transport_descriptors>:定义了运输描述符,这里使用的是 UDPv4 传输。
  2. <participant>:定义了参与者的配置。在这个配置中,使用的是 UDPv4 传输,因此它设置了 UdpTransport 作为 userTransports,并且设置了 useBuiltinTransportsfalse

这些设置的含义是,Fast DDS 将使用 UDPv4 进行数据通信,而不是使用内置的传输方式。

取消LD_LIBRARY_PATH环境变量
unset LD_LIBRARY_PATH

unset LD_LIBRARY_PATH: 这条命令是用来取消设置 LD_LIBRARY_PATH 环境变量的。LD_LIBRARY_PATH 是一个环境变量,它指定了在运行时动态链接器应该搜索共享库的目录。如果 LD_LIBRARY_PATH 中包含的目录中存在不兼容的库版本,可能会导致问题,因此在启动 Isaac Sim 之前取消设置此环境变量可以避免潜在的问题。

添加FAST DDS配置文件的环境变量
export FASTRTPS_DEFAULT_PROFILES_FILE=~/.ros/fastdds.xml

export FASTRTPS_DEFAULT_PROFILES_FILE=~/.ros/fastdds.xml: 这条命令是设置 FASTRTPS_DEFAULT_PROFILES_FILE 环境变量,使其指向之前创建的 fastdds.xml 文件的位置。Fast RTPS 使用 XML 文件来定义配置文件,通过 FASTRTPS_DEFAULT_PROFILES_FILE 环境变量来指定这个配置文件的位置。当 ROS2 Fast DDS启动时,它会查看这个环境变量,并加载指定的 XML 文件中的配置。

警告: 不要在运行Isaac Sim的终端里source ROS2,因为这可能会因符号冲突而在启动过程中导致错误。
这通常已经在装ROS2的时候写入了~/.bashrc,因此将~/.bashrc作备份,并在bashrc中取消ROS2的自动source。

sudo cp ~/.bashrc ~/.bashrc.backup  # backup the ~/.bashrc
sudo nano ~/.bashrc  # edit the ~/.bashrc

注释掉~/.bashrc中和ROS2相关的脚本行:

source /opt/ros/humble/setup.bash  # uncomment the line of ROS
source /home/<your_username>/<your_workspace>/install/setup.bash  # uncomment the line of ROS workspace

3.下载并设置工作空间

下载Isaac Sim官方提供的ROS包

对于Humble版本,工作空间在下载的repo的IsaacSim-ros_workspaces/humble_ws目录下。

git clone https://github.com/NVIDIA-Omniverse/IsaacSim-ros_workspaces
安装依赖
# For rosdep install command
sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
# For colcon build command
sudo apt install python3-colcon-common-extensions
在当前终端设置一次ROS环境变量
source /opt/ros/humble/setup.bash
安装turtlebot3包案例
cd ~/humble_ws/src
git clone -b humble-devel https://github.com/ROBOTIS-GIT/turtlebot3.git turtlebot3

对应的urdf文件存储在~/humble_ws/src/turtlebot3/turtlebot3_description/urdf

安装ROS包的依赖
cd humble_ws  # go to the humble_ws folder
rosdep install -i --from-path src --rosdistro humble -y  # install dependencies of ROS

应当提示如下结果:
#All required rosdeps installed successfully
在这里插入图片描述

编译工作空间
  • 安装编译相关依赖

catkin_pkg是用于ROS开发的Python库,它可以帮助解析ROS包的信息。

pip install catkin_pkg  # install catkin_pkg for ROS colcon build

名为 empy 的Python库是一个模板引擎,主要用于生成代码,ROS中的一些功能需要它来生成接口相关的代码。

# CAUTION: DO NOT INSTALL EM, EM IS NOT FOR ROS2
# pip uninstall em
pip install empy  # install empy for ROS colcon build

Lark是一个强大的解析库,用于在Python中构建语法解析器和编译器。它可以帮助你解析自定义的文本格式和语言,或者处理复杂的数据结构。

pip install lark  # install lark colcon build
  • 设定setuptools版本来避免编译错误
pip uninstall setuptools
pip install setuptools==58.2  # install setuptools 58.2 to avoid build error

在这里插入图片描述
如果仍存在问题,暂时忽视这个问题,不影响使用。

  • 编译
cd ~/humble_ws
unset LD_LIBRARY_PATH  # avoid confict
source /opt/ros/humble/setup.bash
colcon build  # build

5.使用这个包

打开新终端,执行以下命令

source /opt/ros/humble/setup.bash
cd humble_ws
source install/local_setup.bash

随后执行希望执行的demo

相关实践学习
使用ROS创建VPC和VSwitch
本场景主要介绍如何利用阿里云资源编排服务,定义资源编排模板,实现自动化创建阿里云专有网络和交换机。
阿里云资源编排ROS使用教程
资源编排(Resource Orchestration)是一种简单易用的云计算资源管理和自动化运维服务。用户通过模板描述多个云计算资源的依赖关系、配置等,并自动完成所有资源的创建和配置,以达到自动化部署、运维等目的。编排模板同时也是一种标准化的资源和应用交付方式,并且可以随时编辑修改,使基础设施即代码(Infrastructure as Code)成为可能。 产品详情:https://www.aliyun.com/product/ros/
目录
相关文章
|
PHP 异构计算
Matlab Simulink支持system generator插件
Matlab Simulink支持system generator插件
156 0
|
4月前
|
算法 数据可视化 机器人
Nvidia Isaac Sim搭建仿真环境 入门教程 2024(4)
本文是Nvidia Isaac Sim搭建仿真环境的入门教程,详细讲解了如何在Isaac Sim中创建物理场景、添加地面和光照、创建和配置仿真对象的物理属性、使用USD文件进行仿真场景的保存和引用,以及个人练习和相关物理概念的介绍。
320 0
|
4月前
|
传感器 机器学习/深度学习 算法
Isaac Sim教程01 Isaac Sim介绍
这篇文章是Isaac Sim的入门教程,介绍了NVIDIA Omniverse平台上的Isaac Sim机器人仿真工具包。内容包括Isaac Sim的背景、特点、应用场景、架构和工作流程,以及近期的更新情况。Isaac Sim支持物理精确的仿真和合成数据集的创建,与ROS/ROS2兼容,并能模拟多种传感器数据,适用于机器人导航、操作应用、计算机视觉研究和数据集生成等多种场景。
405 0
Isaac Sim教程01 Isaac Sim介绍
|
4月前
|
算法 机器人 API
Nvidia Isaac Sim代码编程 入门教程 2024(7)
Nvidia Isaac Sim 2024年的代码编程入门教程,涵盖了Isaac Sim环境的配置、核心API的使用以及如何利用Python API搭建基本仿真demo。
475 0
|
4月前
|
vr&ar 开发工具 图形学
Pico Neo 3教程☀️ 五、开发者工具:实时预览工具(Preview Tool)
Pico Neo 3教程☀️ 五、开发者工具:实时预览工具(Preview Tool)
|
4月前
|
存储 传感器 缓存
Nvidia Isaac Sim安装与配置 入门教程 2024(2)
本文是Nvidia Isaac Sim安装与配置的入门教程,指导用户如何检查系统配置、安装Omniverse环境、配置Nucleus服务器、安装Isaac Sim软件包、设置命令行环境和编辑器环境,以及如何启动Isaac Sim仿真和加载机器人与环境。
838 0
|
4月前
|
存储 机器人 API
Nvidia Isaac Sim图形界面 入门教程 2024(3)
本文是Nvidia Isaac Sim图形界面的入门教程,介绍了Isaac Sim GUI的界面组件、基本操作、物体和视角调整方法,并通过实例演示了如何创建和变换物体、构造铰接式物体以及调整环境和视角。
281 0
|
4月前
|
传感器 机器学习/深度学习 算法
Nvidia Isaac Sim介绍 入门教程 2024(1)
Nvidia Isaac Sim是一个为NVIDIA Omniverse平台开发的机器人仿真工具包,提供高保真度的物理仿真和多传感器RTX渲染,支持ROS2并能够生成合成数据集,用于机器人的设计、调试、训练和部署。
376 0
|
4月前
|
传感器 数据可视化 机器人
Nvidia Isaac Sim图编程OmniGraph 入门教程 2024(6)
本文是Nvidia Isaac Sim图编程OmniGraph的入门教程,介绍了OmniGraph的概念、图的分类、以及如何利用ActionGraph创建可视化编程流程来控制仿真中的机器人动作和物体跟随,包括键盘控制小车的流程分析、Graph的创建、节点添加与连接,以及测试和Python实现方法。
167 0