Skip to content

Add ROS2 Jazzy Support with OpenVINO 2025.x and Intel NPU Acceleration#332

Merged
jouillet merged 14 commits intointel:ros2from
jb-balaji:ros2_jazzy
Jan 12, 2026
Merged

Add ROS2 Jazzy Support with OpenVINO 2025.x and Intel NPU Acceleration#332
jouillet merged 14 commits intointel:ros2from
jb-balaji:ros2_jazzy

Conversation

@jb-balaji
Copy link

@jb-balaji jb-balaji commented Jul 21, 2025

Summary

This PR introduces comprehensive support for ROS2 Jazzy with OpenVINO 2025.x, bringing modern AI acceleration capabilities including Intel NPU support to the ros2_openvino_toolkit. This work establishes a new ros2_jazzy branch following the repository's pattern of maintaining separate branches for different ROS2/OpenVINO combinations.

Motivation

ROS2 Jazzy (Ubuntu 24.04) is the latest LTS release requiring dedicated support
OpenVINO 2025.x introduces significant API improvements and new hardware support
Intel NPU (Neural Processing Unit) in Core Ultra processors enables efficient, low-power AI inference
Current ros2 branch targets older ROS2 distros (Galactic, Foxy, Humble) with OpenVINO 2022.x

Key Features

1. Intel NPU Hardware Acceleration 🚀
  • Native support for Intel Neural Processing Unit in Core Ultra processors
  • Simple configuration via engine: NPU in YAML files
  • Tested with face detection, semantic segmentation, and object detection models
  • Optimized for low-power, always-on inference workloads
2. Unified Path Management System 🔧
  • New placeholder-based path resolution: <OPENVINO_NODE_SHARE> and <OPENVINO_DATA>
  • Automatic path substitution at launch time via launch_helpers.py module
  • Makes configurations portable across different installations
  • All 78 launch files and 26 YAML configs updated
3. Enhanced Docker Support 🐳
  • Complete Dockerfile for ROS2 Jazzy + OpenVINO 2025.0/2025.4
  • Includes librealsense library building for Intel RealSense camera support
  • Comprehensive documentation in docker_instructions.md
  • Multi-stage build with optimized layer caching
4. Improved Visualization Pipeline 👁️
  • Fixed missing viewer launches in segmentation pipelines
  • Added conditional RViz2 and rqt_image_view launching
  • TimerAction delays for proper initialization
  • Viewer selection via launch arguments: viewer:=rviz2|rqt|none
5. Static Image Pipeline Support 🖼️
  • Fixed [CMakeLists.txt] to install sample images directory
  • 14 sample images now properly deployed to share directory
  • Enables out-of-the-box testing with static images
  • Image segmentation pipelines tested and working

--> Updated the docker file for ros2 humble and it can support OpenVINO 2023.3 LTS
--> Jazzy support added, for that librealsense library building inside docker, code is compiling without any error
--> ROS2 Jazzy docker - Refactoring of the dockerfile, add nano package
--> Created the README document to build, setup and run the docker container

Signed-off-by: Sathiyamoorthi, Jayabalaji <jayabalaji.sathiyamoorthi@intel.com>
@jb-balaji jb-balaji marked this pull request as ready for review July 22, 2025 09:10
@jb-balaji jb-balaji requested a review from Copilot October 7, 2025 13:53
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds support for ROS2 Jazzy distribution alongside updates to the existing ROS2 Humble Docker configuration. The changes update OpenVINO version references and add a complete Docker setup for ROS2 Jazzy.

  • Updates default OpenVINO version from 2025.0.0 to 2025.2.0 in ROS2 Humble configuration
  • Adds conditional repository configuration logic for OpenVINO 2025 versions
  • Creates complete ROS2 Jazzy Docker environment with OpenVINO 2025.2.0 support

Reviewed Changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
sample/param/pipeline_image.yaml Updates sample image path to specific test file
openvino_param_lib/CMakeLists.txt Adds explicit libyaml-cpp library linking
docker/ros2_ov202x/ros2_humble/docker_instructions.md Updates documentation to reflect OpenVINO 2025.2.0 as default
docker/ros2_ov202x/ros2_humble/Dockerfile Updates default OpenVINO version and adds conditional repository logic
docker/ros2_ov2025/ros2_jazzy/docker_instructions.md Adds comprehensive documentation for ROS2 Jazzy Docker setup
docker/ros2_ov2025/ros2_jazzy/Dockerfile Creates new Dockerfile for ROS2 Jazzy with OpenVINO 2025.2.0

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

…ent variables for model paths and labels (#12)

* Refactor pipeline configurations to use environment variables for model paths and labels

- Updated pipeline YAML files to replace hardcoded paths with environment variables (<OPENVINO_DATA> and <OPENVINO_NODE_SHARE>) for better flexibility and portability.
- Removed unnecessary output options in several pipelines to streamline the configuration.
- Enhanced launch files for testing by adding launch arguments for YAML configuration paths, improving test setup and execution.
- Ensured consistent labeling across various detection and segmentation models.

* Code quality improvements: remove trailing whitespace, add Python cache to .gitignore, update README with new features

* Remove unused RViz configuration launch argument from pipeline launch file
@jb-balaji jb-balaji requested a review from Copilot January 9, 2026 17:12
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 82 out of 95 changed files in this pull request and generated 4 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@jb-balaji jb-balaji changed the title Add ROS2 Jazzy support Add ROS2 Jazzy Support with OpenVINO 2025.x and Intel NPU Acceleration Jan 9, 2026
…ntu 22.04 and 2025.4 for Ubuntu 24.04; improve error message formatting in image processing servers
…d improve error message formatting in image processing servers
…and Dockerfile; improve logging format in inference modules
…commands and dynamically detect ROS distribution; enhance CI workflows for Ubuntu 22.04 and 24.04
- Update config.sh to detect workspace dir (ros2_ws vs catkin_ws) based on ROS distro
- Update run.sh to use WORKSPACE_DIR variable instead of hardcoded /root/catkin_ws
- Add --break-system-packages flag for pip install (Ubuntu 24.04 requirement)
- Add code_format.yml workflow description comment

Fixes test failures for Jazzy and Humble distros
@jb-balaji jb-balaji requested a review from jouillet January 9, 2026 23:02
@jb-balaji jb-balaji added the enhancement New feature or request label Jan 9, 2026
@jouillet jouillet merged commit 0976575 into intel:ros2 Jan 12, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants