# Robotics layers specifications

Source: [https://docs.qualcomm.com/doc/80-70015-265/topic/robotics-layers.html](https://docs.qualcomm.com/doc/80-70015-265/topic/robotics-layers.html)

Provides the detailed information for the robotics layers used in QIRP
        SDK.

The QIRP SDK includes both Qualcomm Linux layers and robotics layers. This information
            lists the details of all robotics layers.

- QIRP robotics layers
    - [meta-ros](https://docs.qualcomm.com/doc/80-70015-265/topic/robotics-layers.html#robotics-layers__section_meta_ros)
    - [meta-qcom-robotics-sdk](https://docs.qualcomm.com/doc/80-70015-265/topic/robotics-layers.html#robotics-layers__section_meta_qcom_robotics_sdk)
    - [meta-qcom-robotics](https://docs.qualcomm.com/doc/80-70015-265/topic/robotics-layers.html#robotics-layers__section_meta_qcom_robotics)
    - [meta-qcom-robotics-distro](https://docs.qualcomm.com/doc/80-70015-265/topic/robotics-layers.html#robotics-layers__section_meta_qcom_robotics_distro)
- Robotics extra layer
    [meta-qcom-robotics-extras](https://docs.qualcomm.com/doc/80-70015-265/topic/robotics-layers.html#robotics-layers__section_meta_qcom_robotics_extras)

## `meta-ros`

The `meta-ros` layer information is published to the [meta-ros
                    GitHub repository](https://github.com/ros/meta-ros).

## `meta-qcom-robotics-sdk`

- **BitBake classes**
    The following table lists the BitBake classes defined
                        in the metadata layer `meta-qcom-robotics-sdk`:

| BitBake class | Description |
    | --- | --- |
    | `psdk-package.bbclass` | <ul class="ul" id="robotics-layers__ul_gcj_cwf_vcc"><br>                                            <li class="li">Provides a packaging task to pack QIRP SDK artifacts<br>                                                into an archive. It is invoked by the<br>                                                  <code class="ph codeph">qirp-sdk</code> recipe.</li><br><br>                                            <li class="li">The easy-to-install artifact archives are available<br>                                                at the<br>                                                  &lt;<code class="ph codeph">workspace&gt;/build-qcom-wayland/tmp-glibc/deploy/qirpsdk_artifacts</code><br>                                                directory after the recipe build is complete.</li><br><br>                                        </ul> |
    | `psdk-base.bbclass` | <ul class="ul" id="robotics-layers__ul_icj_cwf_vcc"><br>                                            <li class="li">Provides base configurations to set the package name<br>                                                and disable the unused tasks for QIRP SDK.</li><br><br>                                            <li class="li">Invoked by the <code class="ph codeph">qirp-sdk</code> recipe<br>                                                during the build.</li><br><br>                                        </ul> |
    | `psdk-extract.bbclass` | <ul class="ul" id="robotics-layers__ul_kcj_cwf_vcc"><br>                                            <li class="li">Provides an extracting task to decompress function<br>                                                SDKs artifacts in various compression formats, and<br>                                                then provides the decompressed files to the<br>                                                  <code class="ph codeph">recipe-sysroot</code> directory of<br>                                                qirp-sdk for integration.</li><br><br>                                            <li class="li">Invoked by the<br>                                                  <code class="ph codeph">qti-qim-product-sdk/qti-qnn/qti-qirf</code><br>                                                recipe during the build.</li><br><br>                                        </ul> |
    | `psdk-pickup.bbclass` | <ul class="ul" id="robotics-layers__ul_mcj_cwf_vcc"><br>                                            <li class="li">Provides a pickup task that selects files in<br>                                                function SDKs based on the configuration file<br>                                                  (<code class="ph codeph">config_content.json</code> by default),<br>                                                moves all selected files to the<br>                                                  <code class="ph codeph">/opt/qcom/qirp-sdk</code> directory, and<br>                                                finally integrates them into the QIRP SDK<br>                                                package.</li><br><br>                                            <li class="li">Invoked by the <code class="ph codeph">qirp-sdk</code> recipe<br>                                                during the build.</li><br><br>                                        </ul> |
- **Distro configuration**

| `layer.conf` | Configures the project layers with the following<br>                                            information:<br><ul class="ul" id="robotics-layers__ul_qcj_cwf_vcc"><br>                                            <li class="li">Recipe file path</li><br><br>                                            <li class="li">Supported Yocto version</li><br><br>                                            <li class="li">Filename</li><br><br>                                        </ul> |
    | --- | --- |
- **Recipes**

| Recipe | Description |
    | --- | --- |
    | `recipes-sdk` | Consists of function SDK recipes and QIRP SDK recipe:<br><ul class="ul" id="robotics-layers__ul_ucj_cwf_vcc"><br>                                            <li class="li"><code class="ph codeph">qti-qim-sdk.bb</code></li><br><br>                                            <li class="li"><code class="ph codeph">qti-qim-product-sdk.bb</code></li><br><br>                                            <li class="li"><code class="ph codeph">qti-qirf.bb</code></li><br><br>                                            <li class="li"><code class="ph codeph">qti-qnn.bb</code></li><br><br>                                            <li class="li"><code class="ph codeph">qirp-sdk.bb</code></li><br><br>                                        </ul> |

## `meta-qcom-robotics`

- **BitBake classes**
    The following table lists the BitBake classes defined
                        in the metadata layer `meta-qcom-robotics-sdk`:

| BitBake class | Description |
    | --- | --- |
    | `fsdk-package.bbclass` | <ul class="ul" id="robotics-layers__ul_xcj_cwf_vcc"><br>                                            <li class="li">Provides a packaging task to pack the Robotics<br>                                                Function SDK artifacts into an archive. It is<br>                                                invoked by the <code class="ph codeph">qirf-sdk</code><br>                                                recipe.</li><br><br>                                            <li class="li">The easy-to-install artifact archives are available<br>                                                at the<br>                                                  <code class="ph codeph">&lt;workspace&gt;/build-qcom-wayland/tmp-glibc/deploy/qirfsdk_artifacts</code><br>                                                directory after the recipe build is complete.</li><br><br>                                        </ul> |
    | `psdk-base.bbclass` | <ul class="ul" id="robotics-layers__ul_ycj_cwf_vcc"><br>                                            <li class="li">Provides base configurations to set the package name<br>                                                and disables the unused tasks for the QIRF SDK.</li><br><br>                                            <li class="li">Invoked by <code class="ph codeph">qirf-sdk</code> recipe during<br>                                                the build.</li><br><br>                                        </ul> |
    | `robotics-package.bbclass` | <ul class="ul" id="robotics-layers__ul_zcj_cwf_vcc"><br>                                            <li class="li">Provides a task to move all robotics files to the<br>                                                  <code class="ph codeph">/opt/qcom</code> directory.</li><br><br>                                            <li class="li">Provides base configurations to set the package name<br>                                                and package file.</li><br><br>                                            <li class="li">Invoked by the robotics feature recipes during the<br>                                                build.</li><br><br>                                        </ul> |
- **Distro configuration**

| `layer.conf` | Configures the project layers with the following<br>                                            information:<br><ul class="ul" id="robotics-layers__ul_ddj_cwf_vcc"><br>                                            <li class="li">Recipe file path</li><br><br>                                            <li class="li">Supported Yocto version</li><br><br>                                        </ul> |
    | --- | --- |
- **Recipes**

| Recipe | Description |
    | --- | --- |
    | recipes | Consists of robotics feature recipes:<br><ul class="ul" id="robotics-layers__ul_gdj_cwf_vcc"><br>                                            <li class="li"><code class="ph codeph">auto-explore.bb</code></li><br><br>                                            <li class="li"><code class="ph codeph">follow-me.bb</code></li><br><br>                                            <li class="li"><code class="ph codeph">libqrc-udriver.bb</code></li><br><br>                                            <li class="li"><code class="ph codeph">librealsense2.bb</code></li><br><br>                                            <li class="li"><code class="ph codeph">motorcontrol.bb</code></li><br><br>                                            <li class="li"><code class="ph codeph">ncnn.bb</code></li><br><br>                                            <li class="li"><code class="ph codeph">robot-battery.bb</code></li><br><br>                                            <li class="li"><code class="ph codeph">robot-camera.bb</code></li><br><br>                                            <li class="li"><code class="ph codeph">robot-control.bb</code></li><br><br>                                            <li class="li"><code class="ph codeph">robot-sensor.bb</code></li><br><br>                                            <li class="li"><code class="ph codeph">rplidar-ros2.bb</code></li><br><br>                                            <li class="li"><code class="ph codeph">sensor-service.bb</code></li><br><br>                                            <li class="li"><code class="ph codeph">tesseract.bb</code></li><br><br>                                            <li class="li"><code class="ph codeph">vio.bb</code></li><br><br>                                            <li class="li"><code class="ph codeph">vslam.bb</code></li><br><br>                                        </ul> |
    | recipes-sdk | Consists of QIRP SDK recipe:<br><ul class="ul" id="robotics-layers__ul_hdj_cwf_vcc"><br>                                            <li class="li"><code class="ph codeph">qirf-sdk.bb</code></li><br><br>                                        </ul> |
    | recipes-bbappends | Consists of the recipe append files, which add extended<br>                                            configuration:<br><ul class="ul" id="robotics-layers__ul_idj_cwf_vcc"><br>                                            <li class="li"><code class="ph codeph">nav2-bringup.bbappend</code></li><br><br>                                            <li class="li"><code class="ph codeph">navigation2.bbappend</code></li><br><br>                                            <li class="li"><code class="ph codeph">realsense2-camera.bbappend</code></li><br><br>                                            <li class="li"><code class="ph codeph">realsense2-camera-msgs.bbappend</code></li><br><br>                                            <li class="li"><code class="ph codeph">rplidar-ros2.bbappend</code></li><br><br>                                            <li class="li"><code class="ph codeph">syslog-plumber.bbappend</code></li><br><br>                                            <li class="li"><code class="ph codeph">tensorflow-lite.bbappend</code></li><br><br>                                        </ul> |

## `meta-qcom-robotics-distro`

- **Distro configuration**

| `layer.conf` | Configures the project layers with the following<br>                                            information:<br><ul class="ul" id="robotics-layers__ul_ldj_cwf_vcc"><br>                                            <li class="li">Recipe file path</li><br><br>                                            <li class="li">Supported Yocto version</li><br><br>                                        </ul> |
    | --- | --- |
    | `qcom-robotics-ros2-humble.conf` | Configures the distro feature with the following<br>                                            information:<br><ul class="ul" id="robotics-layers__ul_mdj_cwf_vcc"><br>                                            <li class="li">ROS2 humble distro enablement</li><br><br>                                            <li class="li">Includes distro conf file of Qualcomm Linux</li><br><br>                                        </ul> |
- **Image recipe**

| Recipe | Description |
    | --- | --- |
    | `qcom-robotics-full-image` | Consists of these packages:<br><ul class="ul" id="robotics-layers__ul_qdj_cwf_vcc"><br>                                            <li class="li">ros-core</li><br><br>                                            <li class="li">qirp-sdk</li><br><br>                                            <li class="li">packagegroup-qcom-robotics</li><br><br>                                        </ul> |
- **Package groups**

| Package group | Description |
    | --- | --- |
    | `packagegroup-qcom-robotics` | Package group for upstream basic ROS2 packages, and<br>                                            packages needed for robotics:<br><ul class="ul" id="robotics-layers__ul_udj_cwf_vcc"><br>                                            <li class="li">ament-cmake</li><br><br>                                            <li class="li">ament-cmake-auto</li><br><br>                                            <li class="li">ament-cmake-core</li><br><br>                                            <li class="li">ament-cmake-export-definitions</li><br><br>                                            <li class="li">ament-cmake-export-dependencies</li><br><br>                                            <li class="li">ament-cmake-export-include-directories</li><br><br>                                            <li class="li">ament-cmake-export-interfaces</li><br><br>                                            <li class="li">ament-cmake-export-libraries</li><br><br>                                            <li class="li">ament-cmake-export-link-flags</li><br><br>                                            <li class="li">ament-cmake-export-targets</li><br><br>                                            <li class="li">ament-cmake-gen-version-h</li><br><br>                                            <li class="li">ament-cmake-gmock</li><br><br>                                            <li class="li">ament-cmake-google-benchmark</li><br><br>                                            <li class="li">ament-cmake-gtest</li><br><br>                                            <li class="li">ament-cmake-include-directories</li><br><br>                                            <li class="li">ament-cmake-libraries</li><br><br>                                            <li class="li">ament-cmake-nose</li><br><br>                                            <li class="li">ament-cmake-pytest</li><br><br>                                            <li class="li">ament-cmake-python</li><br><br>                                            <li class="li">ament-cmake-ros</li><br><br>                                            <li class="li">ament-cmake-target-dependencies</li><br><br>                                            <li class="li">ament-cmake-test</li><br><br>                                            <li class="li">ament-cmake-version</li><br><br>                                            <li class="li">ament-lint-auto</li><br><br>                                            <li class="li">foonathan-memory-staticdev</li><br><br>                                            <li class="li">opencv-staticdev</li><br><br>                                            <li class="li">dmabuf-transport</li><br><br>                                            <li class="li">image-transport</li><br><br>                                            <li class="li">yaml-cpp</li><br><br>                                            <li class="li">camera-info-manager</li><br><br>                                            <li class="li">rclcpp</li><br><br>                                            <li class="li">sensor-msgs</li><br><br>                                            <li class="li">nav-msgs</li><br><br>                                            <li class="li">std-msgs</li><br><br>                                            <li class="li">geometry-msgs</li><br><br>                                            <li class="li">tf2</li><br><br>                                            <li class="li">tf2-ros</li><br><br>                                            <li class="li">tf2-geometry-msgs</li><br><br>                                            <li class="li">cv-bridge</li><br><br>                                            <li class="li">rosidl-adapter</li><br><br>                                            <li class="li">ncnn-dev</li><br><br>                                            <li class="li">rclcpp-components</li><br><br>                                            <li class="li">rcutils</li><br><br>                                            <li class="li">libgpiod</li><br><br>                                            <li class="li">libgpiod-dev</li><br><br>                                        </ul> |

## `meta-qcom-robotics-extras`

**Recipes**

| Recipe | Description |
| --- | --- |
| recipes | The recipes in `meta-qcom-robotics-extras`<br>                                    override those in `meta-qcom-robotics`.<br>                                        `meta-qcom-robotics` uses the prebuilt<br>                                    binaries by default, while<br>                                        `meta-qcom-robotics-extras` builds the source<br>                                    from Qualcomm proprietary repositories.<br><br><br>                                <br>Consists of robotics feature recipes:<br><br><br>                                <br><br>    auto-explore<br>    sensor-service<br>    vio<br>    depth-vslam<br>    mono-vslam<br>    stereo-vslam<br>    voxel-mapCopy to clipboard |

**Parent Topic:** [Appendixes](https://docs.qualcomm.com/doc/80-70015-265/topic/references_a.html)

Last Published: Oct 15, 2024

[Previous Topic
Appendixes](https://docs.qualcomm.com/bundle/publicresource/80-70015-265/topics/references_a.md) [Next Topic
References](https://docs.qualcomm.com/bundle/publicresource/80-70015-265/topics/references.md)