// the find
dusty-nv/ros_deep_learning
Deep learning inference nodes for ROS / ROS2 with support for NVIDIA Jetson and TensorRT
ROS/ROS2 nodes that wrap NVIDIA's jetson-inference library to expose image classification, object detection, and semantic segmentation as standard ROS topics. Targets Jetson hardware specifically — the TensorRT dependency means this is not a general-purpose computer vision package. If you're building a robot on Jetson hardware and want inference results on a topic without writing the glue code yourself, this is that glue code.
The ROS1/ROS2 dual-support in a single codebase via ros_compat.h is done cleanly — same node logic, one compatibility shim rather than two diverging codebases. The video_source/video_output nodes abstract over MIPI CSI, V4L2, RTP, RTSP, and file inputs behind a URI scheme, which is more flexible than most camera packages. Topic interfaces use standard vision_msgs types (Detection2DArray, Classification2D) rather than custom messages, so downstream nodes don't need to depend on this package to consume the data. Containerized setup via docker/run.sh actually works as advertised — getting ROS plus TensorRT plus custom inference code to coexist is painful to do from scratch.
Hard dependency on jetson-inference means you cannot use this on x86 dev machines without significant workarounds — the entire dev/test loop requires Jetson hardware or a Jetson container, which slows iteration. Last pushed July 2024 and the legacy install docs reference ROS Melodic and ROS2 Eloquent (both EOL), suggesting the non-containerized path is essentially abandoned. No support for tracking or pose estimation — the three node types (classify, detect, segment) cover the basics but anything beyond that requires leaving this package entirely. The class_labels_HASH parameter naming is a footgun: the actual parameter name is model-dependent and you have to inspect the vision_info topic at runtime to discover it, which is confusing for anyone not already familiar with the jetson-inference internals.