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主页面

扫描二维码关注公众号,回复: 16533980 查看本文章

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

猜你喜欢

转载自blog.csdn.net/m0_56661101/article/details/131474389
今日推荐