Isaac ROS NITROS

https://media.githubusercontent.com/media/NVIDIA-ISAAC-ROS/.github/main/resources/isaac_ros_docs/repositories_and_packages/isaac_ros_nitros/image5-1.gif/

Overview

Isaac ROS NITROS contains NVIDIA’s implementation of type adaptation and negotiation in ROS 2. To learn more about NITROS, see here.

Isaac ROS NITROS is composed of a number of individual packages, each with either a functional or structural purpose:

isaac_ros_gxf:

This package serves as a container for precompiled GXF extensions used by other Isaac ROS packages. While a number of GXF extensions used by Isaac ROS are provided with source, the extensions contained in isaac_ros_gxf are license constrained and are thus shipped as .so binaries.

isaac_ros_managed_nitros:

This package contains the wrapper classes that enable developers to add NITROS-compatible publishers and subscribers to third-party CUDA-based ROS nodes. For more information about CUDA with NITROS, see here.

isaac_ros_nitros:

This package contains the base NitrosNode class and associated core utilities that serve as the foundation for all NITROS-based ROS nodes.

isaac_ros_nitros_interfaces:

This package contains the definitions of the custom ROS 2 interfaces that facilitate type negotiation between NITROS nodes.

isaac_ros_nitros_topic_tools:

This folder contains a NITROS based implementation of some of the nodes in the topic_tools package.

isaac_ros_nitros_type:

This folder contains a number of packages, each defining a specific NITROS type and the associated type adaptation logic to convert to and from a standard ROS type.

isaac_ros_pynitros:

This folder contains the implementation of Python NITROS.

Quickstarts

Packages

Supported Platforms

This package is designed and tested to be compatible with ROS 2 Humble running on Jetson or an x86_64 system with an NVIDIA GPU.

Note

Versions of ROS 2 other than Humble are not supported. This package depends on specific ROS 2 implementation features that were introduced beginning with the Humble release. ROS 2 versions after Humble have not yet been tested.

Platform

Hardware

Software

Notes

Jetson

Jetson Orin

JetPack 6.1

For best performance, ensure that power settings are configured appropriately.


Jetson Orin Nano 4GB may not have enough memory to run many of the Isaac ROS packages and is not recommended.

x86_64

Ampere or higher NVIDIA GPU Architecture with 8 GB RAM or higher

Ubuntu 22.04+

CUDA 12.6+

Docker

To simplify development, we strongly recommend leveraging the Isaac ROS Dev Docker images by following these steps. This streamlines your development environment setup with the correct versions of dependencies on both Jetson and x86_64 platforms.

Note

All Isaac ROS Quickstarts, tutorials, and examples have been designed with the Isaac ROS Docker images as a prerequisite.

Customize your Dev Environment

To customize your development environment, reference this guide.

Updates

Date

Changes

2024-12-10

Update to be compatible with JetPack 6.1

2024-09-26

Update for Isaac ROS 3.1

2024-05-30

Add support for NITROS message filters

2023-10-18

Introducing CUDA with NITROS

2023-05-25

CPU usage optimizations

2023-04-05

Update to be compatible with JetPack 5.1.1

2022-10-19

Minor updates and bugfixes

2022-08-31

Update to be compatible with JetPack 5.0.2

2022-06-30

Initial release