NVIDIA Isaac Sim 入门教程(一)(上)+https://developer.aliyun.com/article/1585248
四、工作站安装
4.1 工作站设置
- 确保您的本地工作站符合运行 Omniverse Isaac Sim 的系统要求和 Isaac Sim 驱动程序要求。
- 下载Omniverse启动器。
- 安装 Omniverse 启动器
- 从 "Omniverse 启动器 " 安装 "Cache"。
- 从 Omniverse 启动程序安装 Nucleus。
- 安装 Visual Studio Code 以查看和调试源代码。
在 Linux 系统上:
- 将 omniverse-launcher-linux.AppImage 文件移至文件夹或桌面,以防 -allow-root 意外删除。
- 运行 sudo chmod +x omniverse-launcher-linux.AppImage,允许用户执行应用程序。
- 双击 omniverse-launcher-linux.AppImage 文件,安装 Omniverse Launcher。
在工作站上运行 Isaac Sim 时,需要安装 Nucleus 和 Cache。
另请参阅 "系统监视器 "和 "清理工具"。
4.2 Omniverse Launcher
您可以在 "Omniverse Launcher "的 "Exchange "选项卡中找到并安装Omniverse Isaac Sim。为简化操作,请在搜索栏中输入 "isaac sim"。
安装完成后,进入 "库 "选项卡,在侧边栏中选择 Isaac Sim。
要运行 Isaac Sim 应用程序选择器,请单击 "启动 "按钮。
4.3 Isaac Sim 应用程序选择器
Isaac Sim 应用程序选择器是一款迷你窗口应用程序,可帮助您在不同模式下运行 Isaac Sim。
从 Omniverse Launcher 启动 Isaac Sim 时,Isaac Sim App Selector 将默认运行。
点击 "开始 "运行 Isaac Sim 主程序。
4.4 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 环境安装
可以通过 Python 本机运行 Isaac Sim,而不是将其作为独立的可执行文件。这为如何初始化、设置和管理 Omniverse 应用程序提供了更多底层控制。
5.1 默认 Python 环境
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 环境手册。
5.2 Jupyter 笔记本设置
使用 Isaac Sim 的 Jupyter 笔记本可按如下方式执行:
./jupyter_notebook.sh path/to/notebook.ipynb
注意
- 首次运行 jupyter_notebook.sh 时,会将 Jupyter Notebook 软件包安装到 Isaac Sim Python 环境中,这可能需要几分钟时间。
注意事项
- 目前,Jupyter 笔记本仅支持 Linux。
另请参见
- 更多详情,请参阅 Jupyter Notebooks 文档。
5.3 支持 Visual Studio Code
Isaac Sim 软件包提供了一个 .vscode 工作区,该工作区具有预配置环境,可提供以下功能:
- 以独立 Python 模式或交互式图形用户界面运行的启动配置
- Python 自动完成环境
在 Visual Studio Code (VSCode) 中打开 Isaac Sim 软件包主文件夹,即可打开该工作区。
注意
- 建议在学习教程和示例时使用 Visual Studio Code。
另请参见
- 有关 VSCode 工作区的详细信息,请参阅 Visual Studio Code (VSCode) 支持文档。
5.4 高级: 在 Docker 中运行
按照 "容器部署 "中第 8 步的说明启动 Docker 容器。
Isaac Sim 容器运行后,就可以运行上述章节中的 Python 脚本或 Jupiter Notebook。
注意
- 您可以通过 pip 安装其他软件包:
./python.sh -m pip install name_of_package_here
- 请参阅 "保存 Docker 镜像",以提交镜像并持久安装 Python 设置。
5.5 高级: 使用 Anaconda 运行
使用以下命令创建一个新环境:
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 运行示例。
六、ROS 和 ROS 2 安装
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 兼容。
6.1 运行本地 ROS
ROS noetic(Ubuntu 20.04)
按照官方网站上的说明下载 ROS:
- ROS Noetic Ubuntu 20.04
在终端中创建 ROS 环境。每次使用任何 ROS 命令前都必须执行此步骤。
source /opt/ros/noetic/setup.bash
确保在 ROS 源终端中启动 roscore。Isaac Sim 默认不运行 roscore,以便更灵活地将 Isaac Sim 与现有 ROS 工作流程集成。
6.2 启用 ROS 桥扩展
ROS
要启用 ROS 桥扩展,请进入扩展管理器菜单 Window->Extensions 并搜索 ROS bridge。任何时候都只能启用一个 ROS 桥扩展,因此如果在两个桥之间切换,请先禁用一个,然后再启用另一个。
6.3 在 isaac-sim.sh 中选择 ROS Bridge 版本
目前,ROS2 桥接器默认已启用。如果您正在运行 isaac-sim.sh,并希望禁用两个 ROS 桥接器,或切换到自动加载 ROS 桥接器,请按照以下步骤操作:
- 打开位于 <YOUR_PACKAGE_PATH>/apps/omni.isaac.sim.base.kit 的文件。将 <YOUR_PACKAGE_PATH> 替换为应用程序选择器("在文件浏览器中打开 "和 "在终端中打开 "按钮上方)中显示的软件包路径。
- 找到 isaac.startup.ros_bridge_extension = "omni.isaac.ros2_bridge" 一行,将其更改为 isaac.startup.ros_bridge_extension = "" 以禁用两个桥接器,或 isaac.startup.ros_bridge_extension = "omni.isaac.ros_bridge" 以自动加载 ROS 桥接器。
- 保存并关闭文件。
6.4 设置工作区
从 https://github.com/NVIDIA-Omniverse/IsaacSim-ros_workspaces 克隆 Isaac Sim ROS 工作空间库。
通过 Isaac Sim ROS / ROS 2 系列教程需要一些 ROS 软件包。为了方便学习,我们提供了包含必要软件包的整个 ROS 和 ROS2 工作区。
ROS Noetic (Ubuntu)
如果你想直接使用所提供的工作区,请按照以下步骤构建它,并为该软件包的覆盖层提供源代码。您也可以将各个软件包复制并粘贴到自己的工作区,然后在那里构建,并确保该工作区位于 ROS_PACKAGE_PATH 内。
- 如果你的本地 ROS 还没有源代码,请确保已经源代码化:source /opt/ros/noetic/setup.bash你可以通过检查 ROS_PACKAGE_PATH 环境变量来检查源代码是否成功。
echo $ROS_PACKAGE_PATH/opt/ros/noetic/share
- Isaac Sim ROS 工作区中的一个软件包 isaac_moveit 在弗兰卡-埃米卡 "熊猫 "臂上使用 MoveIt。为确保该软件包能编译成功,请先从预编译的二进制文件(Debian)中安装 MoveIt:
sudo apt install ros-$ROS_DISTRO-moveit
- 然后按照这里概述的步骤,在你的 ROS 工作区安装 panda_moveit_config 软件包。
- 在 ROS 工作区的根目录下运行以下命令,解决任何软件包依赖关系:
cd noetic_ws rosdep install -i --from-path src --rosdistro noetic -y
- 在 ROS 源终端中,构建 Isaac noetic_ws 文件夹,然后创建覆盖层。
catkin_make source devel/setup.bash
- 这将把 Isaac Sim ROS 工作区放入你的 ROS_PACKAGE_PATH。你可以再次使用
echo $ROS_PACKAGE_PATH
- 来查看 Isaac Sim ROS 工作区的路径是否已经添加到原来的路径前面。
- 或者,你也可以将 noetic_ws/src 文件夹中的各个 ROS 软件包移到自己的 ROS 工作区中,然后构建它。请访问 ROS 网站,查看构建自己的 ROS 软件包的教程。如果你想让 Isaac Sim 访问你现有的软件包,请确保在启动 Omniverse Isaac Sim 之前,在同一终端设置 ROS_PACKAGE_PATH 环境变量,使其包含所需的 ROS 工作区。
6.5 包含 ROS 软件包
ROS
以下是为 Omniverse Isaac Sim 创建的 ROS 软件包示例列表:
- carter_2dnav: 包含英伟达卡特机器人所需的启动文件和 ROS 导航参数。
- carter_description: 英伟达卡特机器人模型的描述。
- cortex_control: 用于在 Cortex 与控制器之间建立通信的工具。
- cortex_control_franka: 包含启动文件和 python 节点,用于使用 Cortex 控制物理弗兰卡机器人。
- isaac_moveit: 包含运行 ROS MoveIt 所需的启动和配置文件。
- isaac_ros_messages: 一组自定义的 2D/3D 边框和姿势服务信息。
- isaac_ros_navigation_goal: 用于在 ROS Navigation 中自动设置随机或用户自定义的目标姿势。
- isaac_tutorials: 包含启动文件、RViz 配置文件以及教程系列的脚本。
- isaac_vins: 包含与 Unitree A1 四足机器人一起运行 VINS Fusion 所需的启动、参数和配置文件。