Tutorial for NITROS Bridge with Isaac Sim

Overview

This tutorial will walk you through how to use isaac_ros_nitros_bridge to move images on the GPU while avoiding CPU memory copies from Isaac Sim.

Tutorial Walkthrough

  1. Clone isaac_ros_common repository under a new workspace:

mkdir -p ~/isaac_sim_workspaces && \
cd ~/isaac_sim_workspaces && \
git clone -b release-3.1 https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_common.git isaac_ros_common
  1. Install and launch Isaac Sim under the Isaac Sim workspace following the steps in the Isaac ROS Isaac Sim Setup Guide

  2. Press Play to start publishing data from the Isaac Sim.

Note

You should be able to see, using the command ros2 topic list, two topics under the same main name, one for the standard ROS 2 sensor_msgs/Image (e.g.: /front_stereo_camera/left/image_rect_color) and another for isaac_ros_nitros_bridge_interfaces/NitrosBridgeImage (e.g.: /front_stereo_camera/left/image_rect_color/nitros_bridge).

  1. Complete the step 3 & 4 from Set Up Development Environment section and Build from Source section following the isaac_ros_nitros_bridge_ros2 quickstart here.

  2. Inside the container, change the ptrace scope to be able to run the NITROS Bridge:

echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
  1. Inside the container, edit the isaac_ros_nitros_bridge_image_converter.launch.py ROS 2 launch file to remap the ros2_input_bridge_image to the Isaac Sim’s NITROS Bridge topic name (e.g.: /front_stereo_camera/left/image_rect_color/nitros_bridge). Then, run the following command to start the NITROS Bridge.

cd /workspaces/isaac_ros-dev && \
  source install/setup.bash && \
  ros2 launch isaac_ros_nitros_bridge_ros2 isaac_ros_nitros_bridge_image_converter.launch.py pub_image_name:=nitros_pub sub_image_name:=nitros_sub
  1. The converted NITROS image will be available under the nitros_pub topic.