Skip to content

Holoscan ROS2 Bridge Extension#

Authors: NVIDIA (NVIDIA)
Supported platforms: x86_64, aarch64
Language: C++, Python
Last modified: September 2, 2025
Latest version: 1.0
Minimum Holoscan SDK version: 3.0.0
Tested Holoscan SDK versions: 3.0.0
Contribution metric: Level 1 - Highly Reliable

Overview#

The Holoscan ROS2 Bridge extension provides interoperability between NVIDIA Holoscan and ROS2 (Robot Operating System 2) applications. It consists of: - A C++ header-only library for seamless integration with ROS2 rclcpp-based applications - A Python package for integration with ROS2 rclpy-based applications

Both implementations enable seamless data and message exchange between Holoscan SDK operators and ROS2 nodes. You can use either implementation depending on your preferred programming language. Example applications can be found under the applications/holoscan_ros2 directory.

Table of Contents#

Prerequisites#

  • NVIDIA Holoscan SDK v3.0 or later
  • ROS2 Jazzy (tested with Jazzy; other distributions may work but are not tested)

For development: - C++ compiler with C++17 support (for C++ bridge) - Python 3.8+ (for Python bridge) - CMake (for building C++ applications)

For examples and testing: - Docker (with NVIDIA Container Toolkit) - NVIDIA GPU drivers (suitable for your hardware and Holoscan SDK)

Note: Example applications are available in the applications/holoscan_ros2/ directory. Refer to their respective README files for specific requirements and instructions.

Architecture#

The Holoscan ROS2 Bridge provides two main components:

C++ Bridge (holoscan::ros2)#

  • Header-only library for easy integration
  • Bridge class manages ROS2 node lifecycle and communication
  • Operator base class simplifies creating ROS2-aware Holoscan operators
  • Type conversion between Holoscan and ROS2 message types

Python Bridge (holoscan_ros2)#

  • Python package for rclpy-based applications
  • Bridge resource manages ROS2 node within Holoscan Python operators
  • Automatic message conversion between Holoscan tensors and ROS2 messages
  • Threading support for non-blocking ROS2 operations

Both implementations provide: - Automatic ROS2 node management - Message type conversion - Publisher/Subscriber abstractions - Integration with Holoscan's data flow architecture

Additional Resources#

Documentation#

Community and Support#

Development#

  • C++ API Reference: See operators/holoscan_ros2/cpp/holoscan/ros2/ for headers
  • Python API Reference: See operators/holoscan_ros2/python/holoscan_ros2/ for implementation
  • Contributing: Follow standard Holoscan SDK contribution guidelines