[FEA] Utilize TypeAdaption and TypeNegotiation feature of ROS2 Humble to accelerate cuda/tensorrt-pipeline performance. #5396
-
descriptionIn 2022, ros2 humble release brings nvidia hardware support, https://www.openrobotics.org/blog/2022/5/24/ros-2-humble-hawksbill-release based on type adaptation (REP-2007) and type negotiation (REP-2009) which gives cuda/tensorrt ros2 pipeline huge performance improvement( on Jetson Devices, theorytically any devices with cuda/tensorrt too) From autoware docs, https://autowarefoundation.github.io/autoware-documentation/main/reference-hw/ad-computers/ , that the cuda/tensorrt is supported by autoware reference HW(including Jetson and other PC with Nvidia GPUs), so the ros2 humble feature can be used to accelerate the ros2 cuda/tensorrt pipeline. considerationthere are official REP-2007 and REP-2009 official example maintained by osra, https://github.com/ros2/examples/blob/rolling/rclcpp/topics/minimal_publisher/member_function_with_type_adapter.cpp Nvidia has launched ISAAC ROS https://developer.nvidia.com/isaac/ros and there is isaac_ros_nitros https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_nitros base class to use for Jetson Devices. extra contentI think there is possibility to port isaac_ros_nitros to x86 dGPU platform, which could reuse much work of nvidia. EDIT: there is official support to x86 platform from ISAAC ROS, https://nvidia-isaac-ros.github.io/getting_started/index.html#system-requirements |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment
-
@ZhenshengLee I am currently preparing a PR to adopt it into autoware.universe |
Beta Was this translation helpful? Give feedback.
@ZhenshengLee
Hi, I do not think autoware could easily addopt isaac nitros due to a plethora of reasons.
That being said, using adoptation and negotiation I previously implemented most of the sensing pipeline in CUDA:
https://github.com/knzo25/cuda_pointcloud_preprocessor
https://github.com/knzo25/cuda_blackboard
I am currently preparing a PR to adopt it into autoware.universe