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入门实践
本课程将基于基础设施即代码 IaC 的理念,介绍阿里云自动化编排服务ROS的概念、功能和使用方式,并通过实际应用场景介绍如何借助ROS实现云资源的自动化部署,使得云上资源部署和运维工作更为高效。
目录
相关文章
|
弹性计算 Ubuntu Linux
新手入门ECS——ubuntu 20.04安装图形化界面和本地VNC连接
这两天刚接触ecs,想搭建一个ubuntu的图形化界面和想试一下本地vnc连接,但在这过程中遇到了超多问题,下面就是我这两天遇到的问题和解决方法,解决方法均为网上搜索到的
4632 0
新手入门ECS——ubuntu 20.04安装图形化界面和本地VNC连接
|
2月前
|
运维 算法 机器人
阿里云AnalyticDB具身智能方案:破解机器人仿真数据、算力与运维之困
本文将介绍阿里云瑶池旗下的云原生数据仓库AnalyticDB MySQL推出的全托管云上仿真解决方案,方案采用云原生架构,为开发者提供从开发环境、仿真计算到数据管理的全链路支持。
|
存储 传感器 缓存
Nvidia Isaac Sim安装与配置 入门教程 2024(2)
本文是Nvidia Isaac Sim安装与配置的入门教程,指导用户如何检查系统配置、安装Omniverse环境、配置Nucleus服务器、安装Isaac Sim软件包、设置命令行环境和编辑器环境,以及如何启动Isaac Sim仿真和加载机器人与环境。
3913 0
|
2月前
|
并行计算 机器人 网络安全
阿里云服务器上部署ROS2+Isaac-Sim4.5实现LeRobot机械臂操控
本文介绍了如何在阿里云上申请和配置一台GPU云服务器,并通过ROS2与Isaac Sim搭建机械臂仿真平台。内容涵盖服务器申请、系统配置、远程连接、环境搭建、仿真平台使用及ROS2操控程序的编写,帮助开发者快速部署机器人开发环境。
931 4
|
6月前
|
机器人 数据安全/隐私保护
基于PID控制器的六自由度串联机器人控制系统的simulink建模与仿真
本课题基于MATLAB2022a的Simulink环境,对六自由度串联机器人控制系统进行建模与仿真,采用PID控制器实现关节的位置、速度或力矩控制。PID控制器通过比例、积分、微分三种策略有效减小系统误差,提高响应速度和稳定性。仿真结果显示系统运行良好,无水印。尽管PID控制简单实用,但在复杂动力学环境下,常结合其他控制策略以增强鲁棒性。
|
传感器 机器学习/深度学习 算法
Isaac Sim教程01 Isaac Sim介绍
这篇文章是Isaac Sim的入门教程,介绍了NVIDIA Omniverse平台上的Isaac Sim机器人仿真工具包。内容包括Isaac Sim的背景、特点、应用场景、架构和工作流程,以及近期的更新情况。Isaac Sim支持物理精确的仿真和合成数据集的创建,与ROS/ROS2兼容,并能模拟多种传感器数据,适用于机器人导航、操作应用、计算机视觉研究和数据集生成等多种场景。
1723 2
Isaac Sim教程01 Isaac Sim介绍
|
算法 机器人 API
Nvidia Isaac Sim代码编程 入门教程 2024(7)
Nvidia Isaac Sim 2024年的代码编程入门教程,涵盖了Isaac Sim环境的配置、核心API的使用以及如何利用Python API搭建基本仿真demo。
2219 0
|
算法 数据可视化 机器人
Nvidia Isaac Sim搭建仿真环境 入门教程 2024(4)
本文是Nvidia Isaac Sim搭建仿真环境的入门教程,详细讲解了如何在Isaac Sim中创建物理场景、添加地面和光照、创建和配置仿真对象的物理属性、使用USD文件进行仿真场景的保存和引用,以及个人练习和相关物理概念的介绍。
2134 0
|
传感器 机器学习/深度学习 算法
Nvidia Isaac Sim介绍 入门教程 2024(1)
Nvidia Isaac Sim是一个为NVIDIA Omniverse平台开发的机器人仿真工具包,提供高保真度的物理仿真和多传感器RTX渲染,支持ROS2并能够生成合成数据集,用于机器人的设计、调试、训练和部署。
1733 0
|
传感器 机器人 测试技术
Nvidia Isaac Sim组装机器人和添加传感器 入门教程 2024(5)
本文是Nvidia Isaac Sim组装机器人和添加传感器的入门教程,介绍了在Isaac Sim中组装一个简单的两轮差速机器人的步骤,包括创建3D模型部件、组建关节、创建关节树、添加关节驱动,以及如何添加和配置传感器,特别是相机传感器。
1440 0