ROS2 Development
📄️ ROS2 Installation
📄️ ROS2 Quick Start (Turtlesim)
📄️ 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.
📄️ Basic OCR
Demonstrates OCR (Optical Character Recognition) service. It subscribes to image topics from the ROS system and publishes OCR recognition results.
📄️ System Resource Monitor
Monitors system resources via ROS 2 nodes, including CPU, memory, temperature, disk, swap space, and battery monitors.
📄️ ROS 2 Interface Communication Verification
Verifies custom message, service, and action type communication interfaces within the QRB ROS ecosystem.
📄️ ROS Message Zero-Copy Transport
QRB ROS Transport implements DMA-BUF zero-copy transport based on REP 2007 — passing file descriptors between ROS nodes instead of copying image data. Supports Image, IMU, and PointCloud2 types.
📄️ Model Inference
Demonstrates how to run TensorFlow Lite model inference on the DSP using the QRB ROS NN Inference node, including image preprocessing, inference, and result visualization.
📄️ Color Space Conversion
Convert between NV12 and RGB888 color space formats. Qualcomm smart devices use NV12 as the default format, while RGB888 is the common image processing format. This sample supports DMA-BUF input/output and QRB ROS Transport zero-copy transfer, with both GPU (OpenGL ES) and CPU (OpenCV) backends.
📄️ Video Codec
Uses Q900's VPU for hardware H.264/H.265 video encoding and decoding. Transfers frames via DMA-BUF: the encoder compresses raw NV12 frames into MP4, and the decoder reconstructs raw frames from the compressed stream.
📄️ ROS Component Performance Benchmark
Evaluate the performance of ROS components on Q900, supporting standard ROS message types and QRB Transport DMA-BUF zero-copy types.
📄️ AMR Simple Motion Control
Keyboard-controlled motion of a simulated AMR (Autonomous Mobile Robot) in Gazebo. The control node publishes Twist commands to /qrbrobotbase/cmdvel, forwarded through rosgz_bridge to the Gazebo differential-drive system, with odom feedback confirming actual robot motion.
📄️ Pick and Place
Simulate RML-63 robotic arm pick-and-place operations in Gazebo. Uses MoveIt2 for motion planning, OMPL for joint trajectory generation, and gzros2control to drive the simulated arm and gripper.
📄️ Simulated Remote Assistant
Simulate an AMR remote assistant task in a Gazebo office scene. The robot maps and relocalizes with Cartographer, navigates to a specified room with Nav2, and uses YOLOv8 to detect target objects, completing the end-to-end "go to office to check person" workflow.
📄️ 2D LiDAR SLAM
Use QCOM Cartographer for 2D LiDAR SLAM in a Gazebo simulation. Control mapping, freeze, save, map loading, and relocalization through Cartographer service commands.
📄️ Follow Me Person Tracking
FastestDet NCNN-based person detection and depth tracking. The simulated RGB-D camera continuously detects a person, and the controller publishes /cmd_vel based on depth and horizontal angle to drive the robot towards the moving target.
📄️ Hand Detection
Run the MediaPipe hand detection pipeline with the preinstalled image. The sample uses the QNN HTP backend on the DSP for palm detection followed by hand landmark inference, then publishes an annotated image with a detection box and 21-point hand skeleton on /handlandmark_result.
📄️ Monocular Depth Estimation
Run Depth Anything V2 monocular depth estimation with the preinstalled RGB image. The sample uses the QNN HTP backend on the DSP, normalizes the result, converts it to an Inferno color map, and publishes it on /samplecontainer/depthmap.
📄️ HRNet Human Pose Estimation
Run HRNet human pose estimation with the preinstalled image. The sample uses the QNN HTP backend on the DSP and publishes both an image with the rendered skeleton and human keypoints in the original image coordinate system.
📄️ ResNet101 Image Classification
Run ResNet101 image classification with the glasses.jpg image supplied by Qualcomm. The sample resizes the input to 224 x 224, runs inference on the DSP through the QNN HTP backend, and publishes the highest-scoring class as a text message.
📄️ YOLOv8 Object Detection
Run YOLOv8-N object detection with the official Ultralytics bus.jpg. The sample runs inference on the DSP through the QNN HTP backend and publishes both structured detections and an image with rendered bounding boxes.
📄️ YOLOv8 Object Segmentation
Run YOLOv8-N instance segmentation with the official Ultralytics bus.jpg. The sample runs inference on the CPU through the TFLite XNNPACK delegate and publishes structured detections, instance masks, and an image with rendered segmentation overlays.