Skip to main content

QIR SDK Development Guide

The Qualcomm Intelligent Robotics SDK (QIR SDK) is a collection of ROS 2 development components for Qualcomm robotics platforms. It provides zero-copy transport, platform sensor drivers, robot simulation environments, and AI inference samples, helping developers quickly build robotics applications on Ubuntu.

QIR SDK is distributed as two meta-packages: qirp-sdk (server) and qirp-sdk-desktop (desktop). Installation automatically pulls in ROS 2 Jazzy and 70+ Qualcomm robotics packages.

Relationship with QAIRT / QIM SDK

LayerContentsStatus on Q900
QAIRT RuntimeQNN / SNPE / LiteRT runtime librariesInstalled via apt (qairt-libs)
QIM SDKGStreamer ML inference plugins and CLI toolsInstalled via apt
QIR SDKROS 2 robotics framework, sensor drivers, simulation & samplesInstalled via apt

QIR SDK depends on QAIRT and QIM SDK, stacked in the order above. Lower-layer dependencies are installed automatically when installing QIR SDK.

Prerequisites

  • Radxa AIRbox Q900
  • Ubuntu 24.04 with network connectivity

Installation

Step 1: Configure apt repositories

Add ROS 2 and Qualcomm official PPAs:

radxa@airbox$
# Add ROS 2 repository
sudo apt update && sudo apt install -y software-properties-common
sudo add-apt-repository -y universe
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key \
-o /usr/share/keyrings/ros-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] \
http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | \
sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null

# Add Qualcomm PPAs
sudo add-apt-repository -y ppa:ubuntu-qcom-iot/qcom-ppa
sudo add-apt-repository -y ppa:ubuntu-qcom-iot/qirp

sudo apt update

Step 2: Install QIR SDK

  • Radxa OS:
radxa@airbox$
sudo apt install -y qirp-sdk-desktop
Server (headless)
radxa@airbox$
sudo apt install -y qirp-sdk

Installation takes approximately 5-10 minutes, automatically installing ROS 2 Jazzy base and all Qualcomm robotics packages.

Step 3: Fix and run post-install setup script

The official QIR SDK package hardcodes the user directory as /home/ubuntu, while the Radxa official image uses the radxa user. Modify the script before running:

radxa@airbox$
sudo sed -i 's|DIR=/home/ubuntu|DIR=/home/radxa|' /usr/share/qirp-setup.sh
bash /usr/share/qirp-setup.sh

This script performs the following:

  • Installs Python dependencies (typing_extensions, pytesseract)
  • Auto-detects USB camera device path
  • Configures ROS 2 environment variables

Step 4: Verify installation

radxa@airbox$
source /opt/ros/jazzy/setup.bash
ros2 pkg list | grep -E 'qrb|sample|simulation' | sort

Expected output includes at least the following packages:

qrb_amr_manager
qrb_inference_manager
qrb_ros_imu
qrb_ros_camera
rplidar_ros
sample_depth_estimation
sample_face_detection
sample_hand_detection
sample_object_detection
simulation_sample_amr_simple_motion
simulation_sample_pick_and_place
...

Package Categories

QIR SDK provides the following ROS 2 packages by category:

Platform Samples

PackageDescription
ros-jazzy-ocr-serviceOCR text recognition service
ros-jazzy-rplidar-rosRPLIDAR LiDAR driver
ros-jazzy-orbbec-cameraOrbbec depth camera driver
ros-jazzy-qrb-ros-imuIMU inertial measurement
ros-jazzy-qrb-ros-batteryBattery status monitoring
ros-jazzy-qrb-ros-cameraCamera capture and publishing
ros-jazzy-qrb-ros-videoVideo encoding/decoding
ros-jazzy-qrb-ros-system-monitorSystem resource monitoring
ros-jazzy-ros2-benchmarkROS 2 performance benchmark

Robotics Samples

PackageDescription
ros-jazzy-simulation-sample-amr-simple-motionAMR simple motion simulation
ros-jazzy-simulation-sample-pick-and-placePick and place simulation
ros-jazzy-simulation-remote-assistantRemote assistant simulation
ros-jazzy-qrb-amr-managerAMR manager
ros-jazzy-qrb-follow-path-managerPath following manager
ros-jazzy-follow-mePerson following
ros-jazzy-qcom-cartographer-rosCartographer SLAM

AI Samples

PackageDescriptionInference Backend
ros-jazzy-sample-hand-detectionHand detectionDSP
ros-jazzy-sample-face-detectionFace detectionDSP
ros-jazzy-sample-object-detectionObject detectionDSP
ros-jazzy-sample-hrnet-pose-estimationHRNet pose estimationDSP
ros-jazzy-sample-object-segmentationSemantic segmentationDSP
ros-jazzy-sample-depth-estimationMonocular depth estimationDSP
ros-jazzy-sample-resnet101ResNet-101 classificationDSP
ros-jazzy-sample-apriltagAprilTag detectionDSP

Infrastructure

PackageDescription
ros-jazzy-dmabuf-transportDMA-BUF zero-copy ROS message transport
ros-jazzy-qrb-ros-transport-image-typeImage type zero-copy transport
ros-jazzy-qrb-ros-transport-imu-typeIMU type zero-copy transport
ros-jazzy-qrb-ros-transport-point-cloud2-typePoint cloud type zero-copy transport
ros-jazzy-qrb-inference-managerAI inference manager
ros-jazzy-qrb-ros-nn-inferenceNeural network inference node
ros-jazzy-qrb-ros-yolo-processYOLO object detection processing
ros-jazzy-qrb-ros-audio-serviceAudio service

For a complete package list, refer to the official Qualcomm document Qualcomm Intelligent Robotics SDK for Ubuntu User Guide (80-90441-2).

Verified Samples

The following samples have been verified on Q900:

Platform Samples

Robotics Samples

AI Samples

For samples requiring external hardware (RPLIDAR, Orbbec camera, USB camera, etc.), refer to Chapter 3 of the official Qualcomm user guide.

Troubleshooting

ros2 command not found

ROS 2 environment not sourced:

radxa@airbox$
source /opt/ros/jazzy/setup.bash

Add to ~/.bashrc for automatic sourcing:

radxa@airbox$
echo "source /opt/ros/jazzy/setup.bash" >> ~/.bashrc

No display output after launching sample

Check if Weston is running:

radxa@airbox$
ps aux | grep weston

If Weston is not running, ensure you are using a desktop image and have logged into the desktop session.

DSP inference fails

Verify FastRPC device nodes exist:

radxa@airbox$
ls /dev/fastrpc-cdsp*

If no output, refer to Enable NPU on board.

USB camera not detected

Check camera devices:

radxa@airbox$
v4l2-ctl --list-devices

References

    You need to be logged into GitHub to post a comment. If you are already logged in, please ignore this message.

    Radxa-docs © 2026 by Radxa Computer (Shenzhen) Co.,Ltd. is licensed under CC BY 4.0