Skip to main content
QRB ROS is Qualcomm’s upstream collection of ROS 2 Jazzy packages for robotics platforms — currently the Qualcomm Dragonwing™ IQ‑9075 EVK and IQ‑8 (Beta) EVK. This page is a tour for evaluators and architects: what does Qualcomm + ROS give you for robotics, and how do I try each piece?

NPU inference

Load a .tflite / .so / .bin model and run it on the Hexagon HTP NPU from a ROS 2 node.

Zero-copy transport

DMA-buf fd passing instead of payload memcpy. Image and PointCloud2 types.

Reference samples

Working AI (detection, segmentation, pose, depth) and robotics (Nav2, AprilTag, pick-and-place) pipelines.

Gazebo simulation

Evaluate QRB ROS without buying a board. Pre-built AMR and manipulator configs.

Benchmark harness

Measure zero-copy wins apples-to-apples against stock sensor_msgs.

DDS auto-tuner

LLM-driven FastDDS QoS tuner — works on any ROS 2 setup, no Qualcomm hardware required.

How this differs from stock ROS 2

  • Hexagon HTP NPU access. Stock TFLite / ONNX ROS nodes run inference on CPU or OpenCL GPU only. Targeting the HTP NPU requires the Qualcomm QNN delegate (or QNN SDK) — there is no community equivalent.
  • DMA-buf camera sharing. Stock image_transport + sensor_msgs::Image always serialize and memcpy the payload between nodes. qrb_ros_transport passes a DMA-buf file descriptor instead, so the frame the camera ISP wrote stays where it was until the next hardware consumer reads it.
  • Packaged accelerator-correct pipelines. qrb_ros_samples bundles camera ingest, QNN inference, and pre/post‑processing into launch files so you don’t have to wire the plumbing yourself.

Choosing your level of abstraction

You don’t have to pick “QRB samples” or “stock ROS” — the primitives compose. Pick the level of wiring that fits your goal:
LevelWhat you useExample in this section
From scratchQNN delegate + stock ROS 2 packages + AI Hub model, wired yourselfNPU Workflows — the hand‑rolled depth pipeline
Generic NPU nodeqrb_ros_nn_inference + your own model from AI HubDrop-in QNN inference on any topic
Reference pipelineqrb_ros_samples catalog entry, as‑is or lightly modifiedsample_depth_estimation
All three are valid production paths. They target the same silicon and can interoperate on the same ROS graph.

Repositories

RepoPurposeLicense
qrb_ros_transportZero-copy ROS 2 transport typesBSD‑3‑Clause
qrb_ros_nn_inferenceGeneric QNN inference ROS nodeBSD‑3‑Clause
qrb_ros_samplesAI + robotics sample pipelinesBSD‑3‑Clause
qrb_ros_simulationGazebo sim of QRB AMRs and armsBSD‑3‑Clause
qrb_ros_benchmarkros2_benchmark extension for QRB typesBSD‑3‑Clause
ROS2-DDSConfig-OptimizerLLM-driven FastDDS auto-tunerBSD‑3‑Clause
qrb_ros_tensor_processYOLO pre/post-processing nodesBSD‑3‑Clause
qrb_ros_color_space_convertNV12 ↔ RGB8 GPU-accelerated converterBSD‑3‑Clause
qrb_ros_image_resizeEVA-accelerated NV12 downscalerBSD‑3‑Clause
The full org is at github.com/qualcomm-qrb-ros — it includes additional packages tied to specific robot chassis, sensor subsystems, or device services that aren’t highlighted here.
The QRB ROS org also contributes upstream packages that work on any Linux SoC with a DMA heap — dmabuf_transport (portable REP 2007 adapted types) and lib_mem_dmabuf (userspace DMA-buf helper). qrb_ros_transport is built on top of both, so you don’t need to touch them directly — the pointers are here for readers who want the full stack.
QRB ROS targets Qualcomm Ubuntu for IoT with ROS 2 Jazzy. The packages are distributed through the Qualcomm IoT PPAs (ppa:ubuntu-qcom-iot/qcom-ppa and ppa:ubuntu-qcom-iot/qirp). For Qualcomm Linux, refer to the QIRP SDK documentation instead.