Skip to main content
qrb_ros_samples is a catalog of reference examples that wire QNN inference and — where applicable — zero‑copy transport into ready‑to‑run ROS 2 launch files. The repo is licensed under BSD‑3‑Clause. The main branch is active development; for stable releases track the jazzy-rel branch.
These are starting points and references — not the only supported way to use Qualcomm robotics platforms. The same primitives (the QNN delegate, qrb_ros_transport, and models from Qualcomm AI Hub) compose directly with stock ROS 2 / community packages. NPU Workflows is an example of that from‑scratch approach, targeting the same NPU.

AI samples

Vision and audio pipelines — depth, pose, segmentation, detection, speech recognition. Inference runs on the NPU via QNN.

Robotics samples

AMR motion, 2D lidar SLAM, Nav2, AprilTag, follow-me, pick-and-place. A mix of on-device and Gazebo simulation.

Reading the support matrix

The upstream README does not define a legend for its support columns, and per‑sample READMEs sometimes disagree with the top‑level table. Here is how this page interprets the data:
ColumnMeaning
IQ‑9075 / IQ‑8 Beta EVK = upstream has validated the sample on this kit. = not validated by upstream — this collapses “won’t work” and “merely untested” together. Upstream provides no signal to distinguish them.
AcceleratorThe primary compute block the sample targets: NPU (Hexagon HTP via QNN), CPU (Gazebo simulation or pure‑CPU pipeline), or GPU.
Every sample listed in this catalog is buildable from source on the Qualcomm Ubuntu image. Samples that are only available through the Qualcomm Linux / QIRP SDK toolchain are excluded.
An empty checkbox does not mean “unsupported” — only “unvalidated by upstream.” Before committing time to a sample on a given kit, check the sample’s own README (linked from the Sample column) for the authoritative per‑kit support list. Where the per‑sample README and this catalog disagree, trust the per‑sample README.

AI samples

Most vision samples ingest from qrb_ros_camera (Qualcomm CSI/GMSL). To run these with a USB webcam instead, swap the camera node for v4l2_camera — see NPU Workflows for an end-to-end example.
Rows are ordered by ease of getting started — least additional hardware first.
SampleHardware requiredAcceleratorIQ‑9075 EVKIQ‑8 Beta EVKDescription
Speech recognition (RT rosnode)USB microphoneNPUReal‑time speech‑to‑text over USB mic using Whisper‑Tiny‑En.
sample_object_detectionAny compatible CSI/GMSL camera (or USB via v4l2_camera)NPUReal‑time object detection via YOLOv8‑Detection.
sample_object_segmentationAny compatible CSI/GMSL camera (or USB via v4l2_camera)NPUReal‑time instance segmentation via YOLOv8‑Segmentation.
sample_resnet101Any compatible CSI/GMSL camera (or USB via v4l2_camera)NPUImage classification on ImageNet via ResNet101Quantized.
sample_depth_estimationAny compatible CSI/GMSL camera (or USB via v4l2_camera)NPUPer‑pixel depth via Depth Anything V2.
sample_hrnet_pose_estimationAny compatible CSI/GMSL camera (or USB via v4l2_camera)NPUHigh‑precision human pose estimation via HRNetPose.
Face detectionAny compatible CSI/GMSL camera (or USB via v4l2_camera)NPUBounding boxes and keypoints using MediaPipe‑Face‑Detection.
Hand detectionAny compatible CSI/GMSL camera (or USB via v4l2_camera)NPUBounding boxes and pose skeletons using MediaPipe‑Hand‑Detection.
Want to build an inference pipeline from scratch on the same primitives these samples wrap? See NPU Workflows for a hand‑rolled depth estimation example using the QNN TFLite delegate directly.

Robotics samples

Rows are ordered by ease of getting started — simulation first, then camera-based, then vendor-specific peripherals.
SampleHardware requiredAcceleratorIQ‑9075 EVKIQ‑8 Beta EVKDescription
simulation_sample_amr_simple_motionNone (simulation)CPU (sim)Python node that commands simple AMR movements by publishing to /qrb_robot_base/cmd_vel.
simulation_sample_pick_and_placeNone (simulation)CPU (sim)C++ pick‑and‑place with MoveIt2 motion planning and Gazebo physics.
sample_apriltagAny compatible cameraCPUAprilTag pipeline — NV12 camera → color convert → rectify → tag detection → /tf.
sample_followmeOrbbec depth cameraNPUReal‑world AMR that detects, tracks, and follows a moving person.

System requirements

Per upstream: Canonical Ubuntu for Qualcomm IoT Platforms. See Install Ubuntu on Qualcomm IoT Platforms and Install ROS Jazzy. For Qualcomm Linux targets, use the QIRP SDK instead.