’m trying to use isaac-ros-nitros in an existing ROS 2 node to leverage the zero-copy GPU capabilities of Nitros.
Currently, I’m running a basic experiment where:
-
A list of sensors is read.
-
Some data manipulation is performed in gpu
-
The results are published as a single stack message for another node to continue processing.
Both nodes run in the same process.
I see that TensorList and Tensor are designed for use with nitros_manager, but I cannot find a way to properly link the library in my code.
My CMakeLists.txt currently contains:
find_package(isaac_ros_nitros REQUIRED)
find_package(isaac_ros_tensor_list_interfaces REQUIRED)
find_package(isaac_ros_common REQUIRED)
find_package(isaac_ros_nitros REQUIRED)
set(dependencies
rclcpp
common
nav_msgs
geometry_msgs
sensor_msgs
autonomy_msgs
common_msgs
example_interfaces
data_transform_base
data_transform
isaac_ros_nitros
isaac_ros_tensor_list_interfaces
isaac_ros_common
)
ament_target_dependencies(${PROJECT_NAME}
${dependencies}
)
and include
#include <isaac_ros_nitros/nitros_tensor.hpp>
#include <isaac_ros_nitros/nitros_tensor_list.hpp>
#include <isaac_ros_nitros_tensor_list_type/nitros_tensor_list.hpp>
nvidia::isaac_ros::nitros::NitrosTensorList tensor_list;
This produces the following compilation error:
fatal error: isaac_ros_nitros_tensor_list_type/nitros_tensor_list.hpp: No such file or directory
53 | include <isaac_ros_nitros_tensor_list_type/nitros_tensor_list.hpp>
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
if I remove the nitros_Tensor_list.hpp include:
error: name followed by “::” must be a class or namespace name
nvidia::isaac_ros::nitros::NitrosTensorList tensor_list;
When I check the headers in /opt/ros/jazzy/include/isaac_ros_nitros/ and /opt/ros/jazzy/include/isaac_ros_tensor_list_interfaces/, I only find headers like:
>> find /opt/ros/${ROS_DISTRO}/include/isaac_ros_* -type f
/opt/ros/jazzy/include/isaac_ros_common/qos.hpp
/opt/ros/jazzy/include/isaac_ros_common/cuda_stream.hpp
/opt/ros/jazzy/include/isaac_ros_nitros/nitros_publisher_subscriber_group.hpp
/opt/ros/jazzy/include/isaac_ros_nitros/nitros_subscriber.hpp
/opt/ros/jazzy/include/isaac_ros_nitros/types/nitros_type_base.hpp
/opt/ros/jazzy/include/isaac_ros_nitros/types/nitros_empty.hpp
/opt/ros/jazzy/include/isaac_ros_nitros/types/nitros_type_message_filter_traits.hpp
/opt/ros/jazzy/include/isaac_ros_nitros/types/type_adapter_nitros_context.hpp
/opt/ros/jazzy/include/isaac_ros_nitros/types/nitros_type_manager.hpp
/opt/ros/jazzy/include/isaac_ros_nitros/types/type_utility.hpp
/opt/ros/jazzy/include/isaac_ros_nitros/types/nitros_format_agent.hpp
/opt/ros/jazzy/include/isaac_ros_nitros/types/nitros_type_view_factory.hpp
/opt/ros/jazzy/include/isaac_ros_nitros/nitros_publisher.hpp
/opt/ros/jazzy/include/isaac_ros_nitros/nitros_context.hpp
/opt/ros/jazzy/include/isaac_ros_nitros/nitros_node.hpp
/opt/ros/jazzy/include/isaac_ros_nitros/nitros_publisher_subscriber_base.hpp
/opt/ros/jazzy/include/isaac_ros_tensor_list_interfaces/isaac_ros_tensor_list_interfaces/msg/rosidl_typesupport_fastrtps_c__visibility_control.h
/opt/ros/jazzy/include/isaac_ros_tensor_list_interfaces/isaac_ros_tensor_list_interfaces/msg/detail/tensor_shape__rosidl_typesupport_introspection_cpp.hpp
/opt/ros/jazzy/include/isaac_ros_tensor_list_interfaces/isaac_ros_tensor_list_interfaces/msg/detail/tensor__description.c
/opt/ros/jazzy/include/isaac_ros_tensor_list_interfaces/isaac_ros_tensor_list_interfaces/msg/detail/tensor__traits.hpp
/opt/ros/jazzy/include/isaac_ros_tensor_list_interfaces/isaac_ros_tensor_list_interfaces/msg/detail/tensor_list__description.c
/opt/ros/jazzy/include/isaac_ros_tensor_list_interfaces/isaac_ros_tensor_list_interfaces/msg/detail/tensor__functions.h
/opt/ros/jazzy/include/isaac_ros_tensor_list_interfaces/isaac_ros_tensor_list_interfaces/msg/detail/tensor__type_support.cpp
/opt/ros/jazzy/include/isaac_ros_tensor_list_interfaces/isaac_ros_tensor_list_interfaces/msg/detail/tensor_shape__rosidl_typesupport_fastrtps_cpp.hpp
/opt/ros/jazzy/include/isaac_ros_tensor_list_interfaces/isaac_ros_tensor_list_interfaces/msg/detail/tensor_shape__description.c
/opt/ros/jazzy/include/isaac_ros_tensor_list_interfaces/isaac_ros_tensor_list_interfaces/msg/detail/tensor__type_support.hpp
/opt/ros/jazzy/include/isaac_ros_tensor_list_interfaces/isaac_ros_tensor_list_interfaces/msg/detail/tensor_shape__struct.hpp
/opt/ros/jazzy/include/isaac_ros_tensor_list_interfaces/isaac_ros_tensor_list_interfaces/msg/detail/tensor_shape__rosidl_typesupport_fastrtps_c.h
/opt/ros/jazzy/include/isaac_ros_tensor_list_interfaces/isaac_ros_tensor_list_interfaces/msg/detail/tensor_list__rosidl_typesupport_fastrtps_cpp.hpp
/opt/ros/jazzy/include/isaac_ros_tensor_list_interfaces/isaac_ros_tensor_list_interfaces/msg/detail/tensor_list__type_support.h
/opt/ros/jazzy/include/isaac_ros_tensor_list_interfaces/isaac_ros_tensor_list_interfaces/msg/detail/tensor__struct.h
/opt/ros/jazzy/include/isaac_ros_tensor_list_interfaces/isaac_ros_tensor_list_interfaces/msg/detail/tensor_shape__rosidl_typesupport_introspection_c.h
/opt/ros/jazzy/include/isaac_ros_tensor_list_interfaces/isaac_ros_tensor_list_interfaces/msg/detail/tensor_shape__type_support.cpp
/opt/ros/jazzy/include/isaac_ros_tensor_list_interfaces/isaac_ros_tensor_list_interfaces/msg/detail/tensor_list__traits.hpp
/opt/ros/jazzy/include/isaac_ros_tensor_list_interfaces/isaac_ros_tensor_list_interfaces/msg/detail/tensor_list__type_support.hpp
/opt/ros/jazzy/include/isaac_ros_tensor_list_interfaces/isaac_ros_tensor_list_interfaces/msg/detail/tensor__rosidl_typesupport_introspection_c.h
/opt/ros/jazzy/include/isaac_ros_tensor_list_interfaces/isaac_ros_tensor_list_interfaces/msg/detail/tensor__type_support.c
/opt/ros/jazzy/include/isaac_ros_tensor_list_interfaces/isaac_ros_tensor_list_interfaces/msg/detail/tensor__rosidl_typesupport_introspection_cpp.hpp
/opt/ros/jazzy/include/isaac_ros_tensor_list_interfaces/isaac_ros_tensor_list_interfaces/msg/detail/tensor_shape__builder.hpp
/opt/ros/jazzy/include/isaac_ros_tensor_list_interfaces/isaac_ros_tensor_list_interfaces/msg/detail/tensor_shape__type_support.h
/opt/ros/jazzy/include/isaac_ros_tensor_list_interfaces/isaac_ros_tensor_list_interfaces/msg/detail/tensor_list__functions.c
/opt/ros/jazzy/include/isaac_ros_tensor_list_interfaces/isaac_ros_tensor_list_interfaces/msg/detail/tensor__struct.hpp
/opt/ros/jazzy/include/isaac_ros_tensor_list_interfaces/isaac_ros_tensor_list_interfaces/msg/detail/tensor_shape__functions.c
/opt/ros/jazzy/include/isaac_ros_tensor_list_interfaces/isaac_ros_tensor_list_interfaces/msg/detail/tensor_list__type_support.c
/opt/ros/jazzy/include/isaac_ros_tensor_list_interfaces/isaac_ros_tensor_list_interfaces/msg/detail/tensor__rosidl_typesupport_fastrtps_cpp.hpp
/opt/ros/jazzy/include/isaac_ros_tensor_list_interfaces/isaac_ros_tensor_list_interfaces/msg/detail/tensor_list__struct.hpp
/opt/ros/jazzy/include/isaac_ros_tensor_list_interfaces/isaac_ros_tensor_list_interfaces/msg/detail/tensor_list__functions.h
/opt/ros/jazzy/include/isaac_ros_tensor_list_interfaces/isaac_ros_tensor_list_interfaces/msg/detail/tensor_list__builder.hpp
/opt/ros/jazzy/include/isaac_ros_tensor_list_interfaces/isaac_ros_tensor_list_interfaces/msg/detail/tensor_list__struct.h
/opt/ros/jazzy/include/isaac_ros_tensor_list_interfaces/isaac_ros_tensor_list_interfaces/msg/detail/tensor__functions.c
/opt/ros/jazzy/include/isaac_ros_tensor_list_interfaces/isaac_ros_tensor_list_interfaces/msg/detail/tensor_shape__type_support.hpp
/opt/ros/jazzy/include/isaac_ros_tensor_list_interfaces/isaac_ros_tensor_list_interfaces/msg/detail/tensor_list__rosidl_typesupport_introspection_c.h
/opt/ros/jazzy/include/isaac_ros_tensor_list_interfaces/isaac_ros_tensor_list_interfaces/msg/detail/tensor_shape__struct.h
/opt/ros/jazzy/include/isaac_ros_tensor_list_interfaces/isaac_ros_tensor_list_interfaces/msg/detail/tensor_shape__functions.h
/opt/ros/jazzy/include/isaac_ros_tensor_list_interfaces/isaac_ros_tensor_list_interfaces/msg/detail/tensor_list__type_support.cpp
/opt/ros/jazzy/include/isaac_ros_tensor_list_interfaces/isaac_ros_tensor_list_interfaces/msg/detail/tensor__type_support.h
/opt/ros/jazzy/include/isaac_ros_tensor_list_interfaces/isaac_ros_tensor_list_interfaces/msg/detail/tensor_shape__type_support.c
/opt/ros/jazzy/include/isaac_ros_tensor_list_interfaces/isaac_ros_tensor_list_interfaces/msg/detail/tensor_list__rosidl_typesupport_fastrtps_c.h
/opt/ros/jazzy/include/isaac_ros_tensor_list_interfaces/isaac_ros_tensor_list_interfaces/msg/detail/tensor__builder.hpp
/opt/ros/jazzy/include/isaac_ros_tensor_list_interfaces/isaac_ros_tensor_list_interfaces/msg/detail/tensor__rosidl_typesupport_fastrtps_c.h
/opt/ros/jazzy/include/isaac_ros_tensor_list_interfaces/isaac_ros_tensor_list_interfaces/msg/detail/tensor_list__rosidl_typesupport_introspection_cpp.hpp
/opt/ros/jazzy/include/isaac_ros_tensor_list_interfaces/isaac_ros_tensor_list_interfaces/msg/detail/tensor_shape__traits.hpp
/opt/ros/jazzy/include/isaac_ros_tensor_list_interfaces/isaac_ros_tensor_list_interfaces/msg/rosidl_generator_cpp__visibility_control.hpp
/opt/ros/jazzy/include/isaac_ros_tensor_list_interfaces/isaac_ros_tensor_list_interfaces/msg/tensor_shape.hpp
/opt/ros/jazzy/include/isaac_ros_tensor_list_interfaces/isaac_ros_tensor_list_interfaces/msg/rosidl_typesupport_fastrtps_cpp__visibility_control.h
/opt/ros/jazzy/include/isaac_ros_tensor_list_interfaces/isaac_ros_tensor_list_interfaces/msg/rosidl_typesupport_introspection_c__visibility_control.h
/opt/ros/jazzy/include/isaac_ros_tensor_list_interfaces/isaac_ros_tensor_list_interfaces/msg/tensor_shape.h
/opt/ros/jazzy/include/isaac_ros_tensor_list_interfaces/isaac_ros_tensor_list_interfaces/msg/tensor_list.hpp
/opt/ros/jazzy/include/isaac_ros_tensor_list_interfaces/isaac_ros_tensor_list_interfaces/msg/tensor.h
/opt/ros/jazzy/include/isaac_ros_tensor_list_interfaces/isaac_ros_tensor_list_interfaces/msg/tensor.hpp
/opt/ros/jazzy/include/isaac_ros_tensor_list_interfaces/isaac_ros_tensor_list_interfaces/msg/rosidl_generator_c__visibility_control.h
/opt/ros/jazzy/include/isaac_ros_tensor_list_interfaces/isaac_ros_tensor_list_interfaces/msg/tensor_list.h
But I cannot locate nitros_tensor_list.hpp or the corresponding NitrosTensorList class.
It seems the package isaac_ros_nitros_type is missing from the system installation, and I cannot link to it from my workspace.
Could you advise:
-
How to correctly include and use
NitrosTensorListin my ROS 2 node? -
Whether
isaac_ros_tensor_list_interfacesis CPU-only, or if it can be used to publish messages from GPU memory via zero-copy? -
Is there a recommended way to build or install
isaac_ros_nitros_typefor Jazzy so it’s available system-wide?
Thanks for your time