> ## 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.

# QIR SDK sample applications

> The QIR SDK provides various sample applications for platform, robotics, and AI use cases that you can combine to implement different functionalities.

The QIR SDK provides various sample applications. You can use ROS2 to get the device CPU load, use the AI capabilities for gesture detection, and perform robot simulation. The robotics sample applications fall into different categories:

* Platform sample applications

* Robotics sample applications

* AI sample applications

By combining different sample applications, you can implement various functionalities.

<Note>
  Some sample applications require specific hardware peripherals. For the required hardware, see the following tables.
</Note>

## Summary of QIR SDK sample applications

Each sample name carries a tooltip with a short description. Hover over a sample to read what it
does, or select it to open the full topic. In the support columns, `Y` means the sample runs on that
development kit and `N` means it doesn't.

### Platform sample applications list

The following table lists the platform sample applications, the peripherals and mobile robot each one
requires, and the development kits each one supports.

<table>
  <thead>
    <tr>
      <th>Sample</th>
      <th>Peripherals</th>
      <th>Mobile robot</th>
      <th>IQ-9075 EVK</th>
      <th>VENTUNO™ Q</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td><Tooltip tip="Runs the Orbbec Gemini 335L camera in RGB or depth mode and publishes both streams as ROS topics."><a href="./enable-orbbec-gemini-335l-with-orbbec-camera">Enable Orbbec Gemini 335L handing</a> </Tooltip>
      <p>(<code>orbbec\_camera</code>)</p></td>
      <td>Gemini 335L</td>
      <td>N</td>
      <td>Y</td>
      <td>Y</td>
    </tr>

    <tr>
      <td><Tooltip tip="Provides basic device handling for the RPLIDAR A1, A2, A3, S1, S2, and S3 2D laser scanners."><a href="./enable-basic-rplidar-handling-with-rplidar-ros2">Enable basic RPLIDAR handling</a> </Tooltip>
      <p>(<code>rplidar-ros2</code>)</p></td>
      <td>RPLIDAR A3M1</td>
      <td>N</td>
      <td>Y</td>
      <td>Y</td>
    </tr>

    <tr>
      <td><Tooltip tip="Provides ROS nodes that publish system status information."><a href="./publish-system-status-with-qrb-ros-system-monitor">Run system monitor</a> </Tooltip>
      <p>(<code>qrb\_ros\_system\_monitor</code>)</p></td>
      <td>–</td>
      <td>N</td>
      <td>Y</td>
      <td>Y</td>
    </tr>

    <tr>
      <td><Tooltip tip="Provides a service for optical character recognition."><a href="./run-basic-ocr-with-ocr_service">Run OCR service</a> </Tooltip>
      <p>(<code>ocr\_service</code>)</p></td>
      <td>–</td>
      <td>N</td>
      <td>Y</td>
      <td>Y</td>
    </tr>

    <tr>
      <td><Tooltip tip="Publishes battery state data from the system node."><a href="./publish-the-battery-state-with-qrb_ros_battery">Publish the battery state</a></Tooltip>
      <p>(<code>qrb\_ros\_battery</code>)</p></td>
      <td>–</td>
      <td>N</td>
      <td>N</td>
      <td>N</td>
    </tr>

    <tr>
      <td><Tooltip tip="A collection of ROS 2 interface packages that define custom message, service, and action types."><a href="./explore-message-interfaces">Explore the shared message interfaces</a></Tooltip>
      <p>(<code>qrb\_ros\_interfaces</code>)</p></td>
      <td>–</td>
      <td>N</td>
      <td>Y</td>
      <td>Y</td>
    </tr>

    <tr>
      <td><Tooltip tip="Provides zero-copy transport of ROS messages on the Qualcomm Robotics Platform."><a href="./test-ros-message-transport-with-qrb_ros_transport">Test ROS message transport</a></Tooltip>
      <p>(<code>qrb\_ros\_transport</code>)</p></td>
      <td>–</td>
      <td>N</td>
      <td>Y</td>
      <td>Y</td>
    </tr>

    <tr>
      <td><Tooltip tip="Runs neural network models to provide AI-based perception for robotics applications."><a href="./implement-model-inference-with-qrb_ros_nn_inference">Implement AI model inference</a></Tooltip>
      <p>(<code>qrb\_ros\_nn\_interface</code>)</p></td>
      <td>–</td>
      <td>N</td>
      <td>Y</td>
      <td>Y</td>
    </tr>

    <tr>
      <td><Tooltip tip="Publishes inertial measurement unit data collected from the ICM-42688 hardware."><a href="./publish-the-imu-data-with-qrb_ros_imu">Publish the IMU data</a></Tooltip>
      <p>(<code>qrb\_ros\_imu</code>)</p></td>
      <td>–</td>
      <td>N</td>
      <td>N</td>
      <td>Y</td>
    </tr>

    <tr>
      <td><Tooltip tip="Publishes images from the Qualcomm CSI and GMSL cameras."><a href="./run-a-zero-copy-camera-with-qrb_ros_camera">Run a zero-copy camera</a> </Tooltip>
      <p>(<code>qrb\_ros\_camera</code>)</p></td>
      <td>–</td>
      <td>N</td>
      <td>Y</td>
      <td>Y</td>
    </tr>

    <tr>
      <td><Tooltip tip="Converts images between NV12 and RGB888 formats."><a href="./convert-between-nv12-and-rgb888-with-qrb_ros_colorspace_convert">Convert between NV12 and RGB888</a> </Tooltip>
      <p>(<code>qrb\_ros\_colorspace\_convert</code>)</p></td>
      <td>–</td>
      <td>N</td>
      <td>Y</td>
      <td>Y</td>
    </tr>

    <tr>
      <td><Tooltip tip="Provides core audio playback and capture functionalities."><a href="./test-core-audio-functionalities-with-qrb_ros_audio_service">Playback and record audio</a></Tooltip>
      <p>(<code>qrb\_ros\_audio\_service</code>)</p></td>
      <td>–</td>
      <td>N</td>
      <td>Y</td>
      <td>N</td>
    </tr>

    <tr>
      <td><Tooltip tip="Provides hardware-accelerated video encoding and decoding."><a href="./test-video-functionalities-with-qrb_ros_video">Encode and decode video</a></Tooltip><p>(<code>qrb\_ros\_video</code>)</p></td>
      <td>–</td>
      <td>N</td>
      <td>Y</td>
      <td>Y</td>
    </tr>

    <tr>
      <td><Tooltip tip="Measures the performance of ROS components on the Qualcomm Robotics Platform."><a href="./evaluate-ros-component-performance-with-qrb_ros_benchmark">Benchmark ROS components</a></Tooltip>
      <p>(<code>qrb\_ros\_benchmark</code>)</p></td>
      <td>–</td>
      <td>N</td>
      <td>Y</td>
      <td>Y</td>
    </tr>
  </tbody>
</table>

### Robotics sample applications list

<Warning>
  Robotics sample applications require the Host and the development kit to work together.
</Warning>

The following table lists the robotics sample applications, the peripherals and mobile robot each one
requires, and the development kits each one supports.

<table>
  <thead>
    <tr>
      <th>Sample</th>
      <th>Peripherals</th>
      <th>Mobile robot</th>
      <th>IQ-9075 EVK</th>
      <th>VENTUNO™ Q</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td><Tooltip tip="Python ROS node that controls simple AMR movements in the simulator by publishing to the /qrb_robot_base/cmd_vel topic."><a href="./control-amr-in-the-simulator-with-simulation_sample_amr_simple_motion">Control AMR in the simulator</a></Tooltip>
      <p>(<code>simulation\_sample\_amr\_simple\_motion</code>)</p></td>
      <td>N</td>
      <td>N</td>
      <td>Y</td>
      <td>Y</td>
    </tr>

    <tr>
      <td><Tooltip tip="C++ ROS 2 node that runs autonomous pick-and-place with the RML-63 robotic arm, using MoveIt2 for motion planning and Gazebo for physics."><a href="./enable-pick-and-place-in-the-simulator-with-simulation_sample_pick_and_place">Enable pick-and-place in the simulator</a></Tooltip>
      <p>(<code>simulation\_sample\_pick\_and\_place</code>)</p></td>
      <td>N</td>
      <td>N</td>
      <td>Y</td>
      <td>Y</td>
    </tr>

    <tr>
      <td><Tooltip tip="Uses an AMR as a remote assistant within a virtual office environment."><a href="./experience-remote-assistant-in-the-simulator-with-simulation_remote_assistant">Experience remote assistant in the simulator</a></Tooltip>
      <p>(<code>simulation\_remote\_assistant</code>)</p></td>
      <td>N</td>
      <td>N</td>
      <td>Y</td>
      <td>Y</td>
    </tr>

    <tr>
      <td><Tooltip tip="Builds an indoor map and localizes the robot from 2D lidar data."><a href="./enable-2d-lidar-slam-with-cartographer_node-and-cartographer_occupancy_grid_node">Enable 2D Lidar SLAM</a></Tooltip>
      <p>(<code>cartographer\_node</code> and <code>cartographer\_occupancy\_grid\_node</code>)</p></td>
      <td>RPLIDAR A3M1</td>
      <td>Y</td>
      <td>Y</td>
      <td>N</td>
    </tr>

    <tr>
      <td><Tooltip tip="ROS 2 package suite for path-following navigation on the Qualcomm Robotics Platform."><a href="./test-follow-path-with-the-qrb_ros_follow_path-service">Test follow-path</a> </Tooltip>
      <p>(<code>qrb\_ros\_follow\_path</code> service)</p></td>
      <td>N</td>
      <td>N</td>
      <td>Y</td>
      <td>N</td>
    </tr>

    <tr>
      <td><Tooltip tip="ROS 2 package suite that manages AMR behaviors on the Qualcomm Robotics Platform."><a href="./run-basic-amr-functionality-with-the-amr-service">Run basic AMR functionality</a></Tooltip>
      <p>(<code>qrb\_ros\_amr</code> service)</p></td>
      <td>N</td>
      <td>N</td>
      <td>Y</td>
      <td>N</td>
    </tr>

    <tr>
      <td><Tooltip tip="Runs the AprilTag detection pipeline on the Qualcomm Robotics Platform."><a href="./enable-apriltag-pipeline-with-sample-apriltag">Enable AprilTag Pipeline</a></Tooltip>
      <p>(<code>sample\_apriltag</code>)</p></td>
      <td>N</td>
      <td>N</td>
      <td>Y</td>
      <td>N</td>
    </tr>

    <tr>
      <td><Tooltip tip="Lightweight application that tracks and follows a person in real time."><a href="./followme">Enable people tracking</a></Tooltip>
      <p>(<code>follow-me</code>)</p></td>
      <td>Gemini 335L</td>
      <td>Y</td>
      <td>Y</td>
      <td>Y</td>
    </tr>

    <tr>
      <td><Tooltip tip="Simulated AMR that detects, tracks, and follows a moving person using sensor emulation and motion control."><a href="./enable-people-tracking-in-the-simulator-with-simulation_follow_me">Enable people tracking in the simulator</a></Tooltip>
      <p>(<code>simulation\_follow\_me</code>)</p></td>
      <td>N</td>
      <td>N</td>
      <td>Y</td>
      <td>Y</td>
    </tr>
  </tbody>
</table>

### AI sample applications list

The following table lists the AI sample applications, the peripherals and mobile robot each one
requires, and the development kits each one supports.

<table>
  <thead>
    <tr>
      <th>Sample</th>
      <th>Peripherals</th>
      <th>Mobile robot</th>
      <th>IQ-9075 EVK</th>
      <th>VENTUNO™ Q</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td><Tooltip tip="Machine learning pipeline that predicts bounding boxes and pose skeletons of hands in an image."><a href="./detect-hands-with-sample_hand_detection">Detect hands</a></Tooltip>
      <p>(<code>sample\_hand\_detection</code>)</p></td>
      <td>N</td>
      <td>N</td>
      <td>Y</td>
      <td>Y</td>
    </tr>

    <tr>
      <td><Tooltip tip="Runs depth inference on an RGB image or camera stream and publishes per-pixel depth values to the /depth_map topic."><a href="./estimate-image-depth-values-with-sample_depth_estimation">Estimate image depth values</a></Tooltip>
      <p>(<code>sample\_depth\_estimation</code>)</p></td>
      <td>N</td>
      <td>N</td>
      <td>Y</td>
      <td>Y</td>
    </tr>

    <tr>
      <td><Tooltip tip="Python ROS node that detects faces and locates facial features using QNN inference."><a href="./detect-faces-with-sample_face_detection">Detect faces</a></Tooltip>
      <p>(<code>sample\_face\_detection</code>)</p></td>
      <td>N</td>
      <td>N</td>
      <td>Y</td>
      <td>Y</td>
    </tr>

    <tr>
      <td><Tooltip tip="Provides high-precision human pose estimation."><a href="./estimate-human-poses-with-sample_hrnet_pose_estimation">Estimate human poses</a></Tooltip>
      <p>(<code>sample\_hrnet\_pose\_estimation</code>)</p></td>
      <td>N</td>
      <td>N</td>
      <td>Y</td>
      <td>Y</td>
    </tr>

    <tr>
      <td><Tooltip tip="Python ROS node that classifies images using QNN-based inference."><a href="./classify-images-with-sample_resnet101">Classify images</a></Tooltip>
      <p>(<code>sample\_resnet101</code>)</p></td>
      <td>N</td>
      <td>N</td>
      <td>Y</td>
      <td>Y</td>
    </tr>

    <tr>
      <td><Tooltip tip="Streams camera data, runs AI inference, and visualizes object detection results in real time."><a href="./detect-objects-with-sample_object_detection">Detect objects</a></Tooltip>
      <p>(<code>sample\_object\_detection</code>)</p></td>
      <td>N</td>
      <td>N</td>
      <td>Y</td>
      <td>Y</td>
    </tr>

    <tr>
      <td><Tooltip tip="Streams camera data, runs AI inference, and visualizes object segmentation results in real time."><a href="./segment-objects-with-sample_object_segmentation">Segment objects</a></Tooltip>
      <p>(<code>sample\_object\_segmentation</code>)</p></td>
      <td>N</td>
      <td>N</td>
      <td>Y</td>
      <td>Y</td>
    </tr>
  </tbody>
</table>

## Sample application categories

<CardGroup cols={2}>
  <Card title="Platform sample applications" icon="microchip" href="./platform-sample-applications">
    ROS samples for common platform types including OCR, Rplidar, Orbbec Camera, and IMU.
  </Card>

  <Card title="Robotics sample applications" icon="robot" href="./robotics-sample-applications">
    A robotics simulation platform where you can develop your own robotics applications, such as `simulation-sample-AMR-simple-motion`.
  </Card>

  <Card title="AI sample applications" icon="brain" href="./ai-sample-applications">
    AI-related sample applications, such as hand detection and image classification.
  </Card>
</CardGroup>
