> ## Documentation Index
> Fetch the complete documentation index at: https://dragonwingdocs.qualcomm.com/llms.txt
> Use this file to discover all available pages before exploring further.

# QRB ROS Samples

[`qrb_ros_samples`](https://github.com/qualcomm-qrb-ros/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.

<Note>
  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`](./qrb-ros-transport), and models from [Qualcomm AI Hub](https://aihub.qualcomm.com)) compose directly with stock ROS 2 / community packages. [NPU Workflows](./npu-workflows) is an example of that from‑scratch approach, targeting the same NPU.
</Note>

<CardGroup cols={2}>
  <Card title="AI samples" icon="brain" href="#ai-samples">
    Vision and audio pipelines — depth, pose, segmentation, detection, speech recognition. Inference runs on the NPU via QNN.
  </Card>

  <Card title="Robotics samples" icon="robot" href="#robotics-samples">
    AMR motion, 2D lidar SLAM, Nav2, AprilTag, follow-me, pick-and-place. A mix of on-device and Gazebo simulation.
  </Card>
</CardGroup>

## Reading the support matrix

<AccordionGroup>
  <Accordion title="What do the checkboxes mean?" icon="circle-question">
    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:

    | Column                      | Meaning                                                                                                                                                                                                                                                                             |
    | --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
    | **IQ‑9075 / IQ‑8 Beta EVK** | <Icon icon="square-check" color="#10b981" /> = upstream has validated the sample on this kit. <Icon icon="square" color="#9ca3af" /> = **not validated by upstream** — this collapses "won't work" and "merely untested" together. Upstream provides no signal to distinguish them. |
    | **Accelerator**             | The 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.
  </Accordion>
</AccordionGroup>

<Warning>
  An empty checkbox <Icon icon="square" color="#9ca3af" /> **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.
</Warning>

## AI samples

<Tip>
  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](./npu-workflows) for an end-to-end example.
</Tip>

Rows are ordered by ease of getting started — least additional hardware first.

| Sample                                                                                                                                         | Hardware required                                         | Accelerator |                  IQ‑9075 EVK                 |                 IQ‑8 Beta EVK                | Description                                                                                                                        |
| ---------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------- | ----------- | :------------------------------------------: | :------------------------------------------: | ---------------------------------------------------------------------------------------------------------------------------------- |
| [Speech recognition (RT rosnode)](https://github.com/qualcomm-qrb-ros/qrb_ros_samples/tree/main/ai_audio/sample_speech_recognition_rt_rosnode) | USB microphone                                            | NPU         |    <Icon icon="square" color="#9ca3af" />    |    <Icon icon="square" color="#9ca3af" />    | Real‑time speech‑to‑text over USB mic using [Whisper‑Tiny‑En](https://aihub.qualcomm.com/iot/models/whisper_tiny_en?domain=Audio). |
| [`sample_object_detection`](https://github.com/qualcomm-qrb-ros/qrb_ros_samples/tree/main/ai_vision/sample_object_detection)                   | Any compatible CSI/GMSL camera (or USB via `v4l2_camera`) | NPU         | <Icon icon="square-check" color="#10b981" /> | <Icon icon="square-check" color="#10b981" /> | Real‑time object detection via [YOLOv8‑Detection](https://aihub.qualcomm.com/iot/models/yolov8_det).                               |
| [`sample_object_segmentation`](https://github.com/qualcomm-qrb-ros/qrb_ros_samples/tree/main/ai_vision/sample_object_segmentation)             | Any compatible CSI/GMSL camera (or USB via `v4l2_camera`) | NPU         | <Icon icon="square-check" color="#10b981" /> | <Icon icon="square-check" color="#10b981" /> | Real‑time instance segmentation via [YOLOv8‑Segmentation](https://aihub.qualcomm.com/iot/models/yolov8_seg).                       |
| [`sample_resnet101`](https://github.com/qualcomm-qrb-ros/qrb_ros_samples/tree/main/ai_vision/sample_resnet101)                                 | Any compatible CSI/GMSL camera (or USB via `v4l2_camera`) | NPU         | <Icon icon="square-check" color="#10b981" /> | <Icon icon="square-check" color="#10b981" /> | Image classification on ImageNet via [ResNet101Quantized](https://huggingface.co/qualcomm/ResNet101Quantized).                     |
| [`sample_depth_estimation`](https://github.com/qualcomm-qrb-ros/qrb_ros_samples/tree/main/ai_vision/sample_depth_estimation)                   | Any compatible CSI/GMSL camera (or USB via `v4l2_camera`) | NPU         | <Icon icon="square-check" color="#10b981" /> |    <Icon icon="square" color="#9ca3af" />    | Per‑pixel depth via [Depth Anything V2](https://aihub.qualcomm.com/iot/models/depth_anything_v2).                                  |
| [`sample_hrnet_pose_estimation`](https://github.com/qualcomm-qrb-ros/qrb_ros_samples/tree/main/ai_vision/sample_hrnet_pose_estimation)         | Any compatible CSI/GMSL camera (or USB via `v4l2_camera`) | NPU         | <Icon icon="square-check" color="#10b981" /> |    <Icon icon="square" color="#9ca3af" />    | High‑precision human pose estimation via [HRNetPose](https://aihub.qualcomm.com/iot/models/hrnet_pose).                            |
| [Face detection](https://github.com/qualcomm-qrb-ros/qrb_ros_samples/tree/main/ai_vision/sample_face_detection)                                | Any compatible CSI/GMSL camera (or USB via `v4l2_camera`) | NPU         | <Icon icon="square-check" color="#10b981" /> |    <Icon icon="square" color="#9ca3af" />    | Bounding boxes and keypoints using [MediaPipe‑Face‑Detection](https://huggingface.co/qualcomm/MediaPipe-Face-Detection).           |
| [Hand detection](https://github.com/qualcomm-qrb-ros/qrb_ros_samples/tree/main/ai_vision/sample_hand_detection)                                | Any compatible CSI/GMSL camera (or USB via `v4l2_camera`) | NPU         | <Icon icon="square-check" color="#10b981" /> |    <Icon icon="square" color="#9ca3af" />    | Bounding boxes and pose skeletons using [MediaPipe‑Hand‑Detection](https://huggingface.co/qualcomm/MediaPipe-Hand-Detection).      |

<Note>
  Want to build an inference pipeline from scratch on the same primitives these samples wrap? See [NPU Workflows](./npu-workflows) for a hand‑rolled depth estimation example using the QNN TFLite delegate directly.
</Note>

## Robotics samples

Rows are ordered by ease of getting started — simulation first, then camera-based, then vendor-specific peripherals.

| Sample                                                                                                                                              | Hardware required     | Accelerator |                  IQ‑9075 EVK                 |                 IQ‑8 Beta EVK                | Description                                                                                |
| --------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------- | ----------- | :------------------------------------------: | :------------------------------------------: | ------------------------------------------------------------------------------------------ |
| [`simulation_sample_amr_simple_motion`](https://github.com/qualcomm-qrb-ros/qrb_ros_samples/tree/main/robotics/simulation_sample_amr_simple_motion) | None (simulation)     | CPU (sim)   | <Icon icon="square-check" color="#10b981" /> | <Icon icon="square-check" color="#10b981" /> | Python node that commands simple AMR movements by publishing to `/qrb_robot_base/cmd_vel`. |
| [`simulation_sample_pick_and_place`](https://github.com/qualcomm-qrb-ros/qrb_ros_samples/tree/main/robotics/simulation_sample_pick_and_place)       | None (simulation)     | CPU (sim)   | <Icon icon="square-check" color="#10b981" /> | <Icon icon="square-check" color="#10b981" /> | C++ pick‑and‑place with MoveIt2 motion planning and Gazebo physics.                        |
| [`sample_apriltag`](https://github.com/qualcomm-qrb-ros/qrb_ros_samples/tree/main/robotics/sample_apriltag)                                         | Any compatible camera | CPU         | <Icon icon="square-check" color="#10b981" /> | <Icon icon="square-check" color="#10b981" /> | AprilTag pipeline — NV12 camera → color convert → rectify → tag detection → `/tf`.         |
| [`sample_followme`](https://github.com/qualcomm-qrb-ros/qrb_ros_samples/tree/main/robotics/sample_followme)                                         | Orbbec depth camera   | NPU         | <Icon icon="square-check" color="#10b981" /> | <Icon icon="square-check" color="#10b981" /> | Real‑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](https://ubuntu.com/download/qualcomm-iot) and [Install ROS Jazzy](https://docs.ros.org/en/jazzy/index.html). For Qualcomm Linux targets, use the [QIRP SDK](https://docs.qualcomm.com/bundle/publicresource/topics/80-70018-265/introduction_1.html?vproduct=1601111740013072\&version=1.4\&facet=Qualcomm%20Intelligent%20Robotics%20Product%20\(QIRP\)%20SDK) instead.
