Isaac ROS Nitros - No data publishing

Hi Team,

Setup:
Platform: Jetson Thor AGX
Hardware: Zed Mini
Software: ZED SDK 5.1

I have the above setup and I have a docker container running with ZED cameras. RGB, Depth and PCL works perfectly. I saw the doc recently which says nitros support for Thor is still in progress. I was just wondering because, I tried building zed wrapper with Isaac Nitros enabled. It built the rapper successfully with nitros and I was able to run the cameras with nitros enabled. I can see the following topics.

[component_container_isolated-2] [INFO]: === PUBLISHED TOPICS ===
[component_container_isolated-2] [INFO]: * Advertised on topic: /face_downward/zed/status/health
[component_container_isolated-2] [INFO]: * Advertised on topic: /face_downward/zed/status/heartbeat
[component_container_isolated-2] [INFO]: [NitrosContext] Loading extension: gxf/lib/std/libgxf_std.so
[component_container_isolated-2] [INFO]: [NitrosContext] Loading extension: gxf/lib/cuda/libgxf_cuda.so
[component_container_isolated-2] [INFO]: [NitrosContext] Loading extension: gxf/lib/libgxf_isaac_gxf_helpers.so
[component_container_isolated-2] [INFO]: [NitrosContext] Loading extension: gxf/lib/libgxf_isaac_sight.so
[component_container_isolated-2] [INFO]: [NitrosContext] Loading extension: gxf/lib/libgxf_isaac_atlas.so
[component_container_isolated-2] 2026-01-27 11:43:26.580 WARN external/com_nvidia_gxf/gxf/std/program.cpp@538: No GXF scheduler specified.
[component_container_isolated-2] [INFO]: [NitrosContext] Successfully allocated 3 CUDA streams
[component_container_isolated-2] [INFO]: [NitrosContext] Loading extension: gxf/lib/multimedia/libgxf_multimedia.so
[component_container_isolated-2] [INFO]: Starting Managed Nitros Publisher
[component_container_isolated-2] [INFO]: * Advertised on topic: /face_downward/zed/rgb/color/rect/image
[component_container_isolated-2] [INFO]: * Advertised on topic: /face_downward/zed/rgb/color/rect/image/nitros
[component_container_isolated-2] [INFO]: Starting Managed Nitros Publisher
[component_container_isolated-2] [INFO]: * Advertised on topic: /face_downward/zed/depth/depth_registered
[component_container_isolated-2] [INFO]: * Advertised on topic: /face_downward/zed/depth/depth_registered/nitros
[component_container_isolated-2] [INFO]: * Advertised on topic: /face_downward/zed/rgb/color/rect/camera_info
[component_container_isolated-2] [INFO]: * Advertised on topic: /face_downward/zed/rgb/color/rect/image/camera_info
[component_container_isolated-2] [INFO]: * Advertised on topic: /face_downward/zed/depth/camera_info
[component_container_isolated-2] [INFO]: * Advertised on topic: /face_downward/zed/depth/depth_registered/camera_info
[component_container_isolated-2] [INFO]: * Advertised on topic: /face_downward/zed/point_cloud/cloud_registered
[component_container_isolated-2] [INFO]: * Advertised on topic: /face_downward/zed/pose
[component_container_isolated-2] [INFO]: * Advertised on topic: /face_downward/zed/pose/status
[component_container_isolated-2] [INFO]: * Advertised on topic: /face_downward/zed/odom
[component_container_isolated-2] [INFO]: * Advertised on topic: /face_downward/zed/imu/data
[component_container_isolated-2] [INFO]: Camera-IMU Translation:
[component_container_isolated-2] -0.002 -0.015238 -0.001706
[component_container_isolated-2] [INFO]: Camera-IMU Rotation:
[component_container_isolated-2] FFFD6D523D18
[component_container_isolated-2] 0.999876 0.008157 0.013509
[component_container_isolated-2] -0.008108 0.999960 -0.003664
[component_container_isolated-2] -0.013538 0.003554 0.999902
[component_container_isolated-2]
[component_container_isolated-2] [INFO]: ===Subscribers ===
[component_container_isolated-2] [INFO]: * Plane detection: ‘/clicked_point’
[component_container_isolated-2] [WARN]: POSITIONAL TRACKING disabled in the parameters, but forced to ENABLE because required by pos_tracking.publish_tf: true
[component_container_isolated-2] [INFO]: === Starting Positional Tracking ===
[component_container_isolated-2] [INFO]: * Waiting for valid static transformations…
[component_container_isolated-2] [INFO]: Static transform ref. CMOS Sensor to Base [face_downward_left_camera_frame → face_downward_camera_link]
[component_container_isolated-2] [INFO]: * Translation: {0.000,-0.032,-0.013}
[component_container_isolated-2] [INFO]: * Rotation: {0.000,-0.000,0.000}
[component_container_isolated-2] [INFO]: Static transform ref. CMOS Sensor to Camera Center [face_downward_left_camera_frame → face_downward_camera_center]
[component_container_isolated-2] [INFO]: * Translation: {0.000,-0.032,0.000}
[component_container_isolated-2] [INFO]: * Rotation: {0.000,-0.000,0.000}
[component_container_isolated-2] [INFO]: Static transform Camera Center to Base [face_downward_camera_center → face_downward_camera_link]
[component_container_isolated-2] [INFO]: * Translation: {0.000,0.000,-0.013}
[component_container_isolated-2] [INFO]: * Rotation: {0.000,-0.000,0.000}
[component_container_isolated-2] [INFO]: Initial ZED left camera pose (ZED pos. tracking):
[component_container_isolated-2] [INFO]: * T: [0,0.0315,0.01325]
[component_container_isolated-2] [INFO]: * Q: [0,0,0,1]
[component_container_isolated-2] [2026-01-27 11:43:27 UTC][ZED][WARNING] [Positional Tracking] GEN 2 is deprecated; consider updating to a GEN 3 instead.

Sorry for my ignorance here. But I could not subscribe to it or work with it in any way. If I try to echo the topic, nothing is being published. Let me know if I am doing something wrong here or if the Nitros support for Thor is still in development.

kinisi@kinisi-dev:~$ ros2 topic info /face_downward/zed/rgb/color/rect/image/nitros
Type: negotiated_interfaces/msg/NegotiatedTopicsInfo
Publisher count: 1
Subscription count: 0
kinisi@kinisi-dev:~$ ros2 topic echo /face_downward/zed/rgb/color/rect/image/nitros
kinisi@kinisi-dev:~$

Hi @snknitheesh
You must not subscribe to the nitros topic to receive the image, but to the image topic.
Nitros will automatically handle the communication via GPU or standard ROS2 middleware according to how the subscriber is created.

I recommend you read the detailed documentarion:

This example explains how to create subscribers:

1 Like

Thanks @Myzhar for the prompt response. I will keep this in mind and work on it. So that mean Isaac Nitros can be used on Thor with Zed Mini cameras ?

Normally you can.
Please note that we have not yet tested the integration with Isaac ROS 4

Noted. I will test it and get back. Thank you.

1 Like

Hi @Myzhar ,

Thank you for the support. I have tested Nitros with Thor, and it works perfectly.

However, I noticed that the ZED publishes NitrosImage in the C++ NITROS format. Python cannot consume NitrosImage directly because it requires type adaptation (CPU copy). PyNITROS expects NitrosBridgeImage, which is a different format.

Are there any plans to support PyNITROS natively in the zed_ros2_wrapper ?

Regards,
Nitheesh

This is a question that you should ask to NVIDIA because it’s provided by the isaac_ros_managed_nitros package:

You should be able to create a subscriber in Python that can automatically handle Nitros conversion like you can do in C++