# Architecture
Source: [https://docs.qualcomm.com/doc/80-65220-2/topic/architecture.html](https://docs.qualcomm.com/doc/80-65220-2/topic/architecture.html)
The figure shows the overall software architecture of the QIRP SDK.

The QIRP SDK integrates specialized components called functional SDKs, which are listed
as follows:
| Function SDK | Description |
| --- | --- |
| Qualcomm® Intelligent Multimedia SDK (IM SDK) | Provides Qualcomm hardware accelerated plugins for optimized
application development. |
| Qualcomm® Intelligent Robotics Function SDK | Provides robotics functional ROS nodes for Qualcomm robotics
platforms. The SDK is based on the ROS, which is an open-source,
meta-operating system. |
| Qualcomm® AI Engine Direct SDK | Provides a software architecture for AI/ML use cases on Qualcomm
chipsets and AI acceleration cores. It provides a unified API with
modular and extensible per-accelerator libraries, which form a reusable
basis for full-stack AI solutions. It supports runtimes such as Qualcomm
Neural Processing SDK and TensorFlow Lite AI Engine Direct
Delegate. |
## Component layers of the QIRP SDK
The QIRP SDK uses the same method as the Yocto community to arrange the source code
into the following layers.
- Basic layers: Including both robotics and Qualcomm Linux base layers, open to
all users.
- Extra layers: Available to registered users with verified organization accounts,
who have access to specified Qualcomm Linux firmware components and extra layer
and the robotics extra layer.
Note: For more about the unregistered users, registered users,
and licensed users, see the [Qualcomm® Linux Build Guide](https://docs.qualcomm.com/bundle/publicresource/topics/80-70014-254) .
**Basic layers**
| Layer | Category | Description |
| --- | --- | --- |
| `meta-ros` | Robotics layer | A series of OpenEmbedded layers designed to add support for the
Robot Operating System (ROS) for embedded Linux releases by the
Yocto project. |
| `meta-qcom-robotics-distro` | Robotics layer | Contains the configuration information needed to generate the ROS
image, including but not limited to the packagegroup and image
recipe. |
| `meta-qcom-robotics` | Robotics layer | Includes the recipes for all the robotics functions. |
| `meta-qcom-robotics-sdk` | Robotics layer | Contains the generation/pick-up mechanism of the Qualcomm
Intelligent Robotics Product SDK (QIRP). |
| `meta-qcom` | Qualcomm Linux layer | Contains Qualcomm hardware support metadata with upstream OSS
software components. |
| `meta-qcom-hwe` | Qualcomm Linux layer | Contains Qualcomm hardware support metadata with Qualcomm
value-added software components. |
| `meta-qcom-distro` | Qualcomm Linux layer | Contains the distro configuration needed to generate the base
image, including but not limited to the packagegroup and image
recipe. |
| `meta-qcom-qim-product-sdk` | Dependent SDK | Provides Qualcomm's multimedia and AI SDKs based on the GStreamer
framework. |
**Extra layers**
| `meta-qcom-robotics-extras` | Includes proprietary robotics functional recipes, which allow
building with source. |
| --- | --- |
| `meta-qcom-extras` | Enables source compilation of selective Qualcomm Linux components
and includes a few component binaries. |
## Samples list
**Open-source samples**
| Sample application | Description |
| --- | --- |
| nav2-bringup | Enables a ROS2 navigation framework and system. It provides
perception, planning, control, localization, visualization, and more
to build highly reliable autonomous systems. |
| librealsense2 | Generates the mono and depth information by topics. Librealsense2
and realsense2-camera are used to make RealSense™ camera D455 work
properly in RGB or depth mode. |
| rplidar-ros2 | Provides basic device handling for 2D laser scanner RPLIDAR
A1/A2/A3/S1/S2/S3. |
| qrb-ros-imu | Creates the `/imu` topic to publish the inertial
measurement unit (IMU) data. |
| qrb-ros-camera | Uses the camera-server to get the latest camera data. |
| qrb-ros-system-monitor | Contains various ROS nodes to publish system status information,
such as CPU loading, memory utilization, and disk spaces. |
| OCR-service | Enables a service that provides the Optical Character Recognition
(OCR) function. It captures the image topic from the ROS system and
publishes the result with the `ocr_topic`. |
**Proprietary samples**
| Sample application | Description |
| --- | --- |
| follow-me | Enables a wheeled robot to follow a walking person. |
| voxel-map | Generates a 2D navigation map using depth information and
odometry when running VSLAM. |
| mono-vslam | Implements the robot localization function with a mono-camera
while the robot is moving. |
| depth-vslam | Implements the robot localization function with a depth-camera
while the robot is moving. |
| auto-explore | Enables a wheeled robot to build a 2D map automatically. |
| Visual-inertial odometry (VIO) | Tracks the six degrees of freedom (6DOF) pose fusing camera,
accelerometer, and gyroscope, and continuously estimates the gravity
orientation and pose. |
Last Published: Jul 08, 2024
[Previous Topic
Run robotic samples](https://docs.qualcomm.com/bundle/publicresource/80-65220-2/topics/run-robotic-samples_3_4.md) [Next Topic
Build and install](https://docs.qualcomm.com/bundle/publicresource/80-65220-2/topics/advanced-usage.md)