# Robotics层规范

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

提供了 QIRP SDK 中所用机器人层的详细信息。

QIRP SDK 包括 Qualcomm Linux 层和机器人层。此信息列出了所有机器人层的详细信息。

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

## `meta-ros`

`meta-ros` 层信息发布到 [meta-ros GitHub 存储库](https://github.com/ros/meta-ros)。

## `meta-qcom-robotics-sdk`

- **BitBake 类**
    下表列出了元数据层中定义的 `meta-qcom-robotics-sdk` BitBake 类：

| BitBake 类 | 说明 |
    | --- | --- |
    | `psdk-package.bbclass` | <ul class="ul" id="robotics-layers__ul_gcj_cwf_vcc"><br>                                            <li class="li">提供打包任务，以将 QIRP SDK 文件打包到存档中。通过 <code class="ph codeph">qirp-sdk</code> recipe 调用。</li><br><br>                                            <li class="li">recipe 编译完成后，易于安装的 artifact 存档位于<code class="ph codeph">workspace&gt;/build-qcom-wayland/tmp-glibc/deploy/qirpsdk_artifacts</code> 目录中。</li><br><br>                                        </ul> |
    | `psdk-base.bbclass` | <ul class="ul" id="robotics-layers__ul_icj_cwf_vcc"><br>                                            <li class="li">提供了基本配置，用于设置软件包名称和禁用 QIRP SDK 的未使用任务。</li><br><br>                                            <li class="li">在编译期间通过 <code class="ph codeph">qirp-sdk</code> recipe 调用。</li><br><br>                                        </ul> |
    | `psdk-extract.bbclass` | <ul class="ul" id="robotics-layers__ul_kcj_cwf_vcc"><br>                                            <li class="li">提供提取任务，对各种压缩格式的功能 SDK 文件进行解压，然后将解压后的文件提供给 <code class="ph codeph">recipe-sysroot</code> qirp-sdk 目录进行集成。</li><br><br>                                            <li class="li">在编译期间通过 <code class="ph codeph">qti-qim-product-sdk/qti-qnn/qti-qirf</code> recipe 调用。</li><br><br>                                        </ul> |
    | `psdk-pickup.bbclass` | <ul class="ul" id="robotics-layers__ul_mcj_cwf_vcc"><br>                                            <li class="li">提供拾取任务，可根据配置文件（默认<code class="ph codeph">config_content.json</code> ）选择功能 SDK 中的文件，将所有选中的文件移动到 <code class="ph codeph">/opt/qcom/qirp-sdk</code> 目录下，最后集成到 QIRP SDK 包中。</li><br><br>                                            <li class="li">在编译期间通过 <code class="ph codeph">qirp-sdk</code> recipe 调用。</li><br><br>                                        </ul> |
- **Distro 配置**

| `layer.conf` | 使用以下信息配置项目层：<br><ul class="ul" id="robotics-layers__ul_qcj_cwf_vcc"><br>                                            <li class="li">recipe 文件路径</li><br><br>                                            <li class="li">支持的 Yocto 版本</li><br><br>                                            <li class="li">文件名</li><br><br>                                        </ul> |
    | --- | --- |
- **Recipe**

| Recipe | 说明 |
    | --- | --- |
    | `recipes-sdk` | 由功能 SDK recipe 和 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 类**
    下表列出了元数据层中定义的 `meta-qcom-robotics-sdk` BitBake 类：

| BitBake 类 | 说明 |
    | --- | --- |
    | `fsdk-package.bbclass` | <ul class="ul" id="robotics-layers__ul_xcj_cwf_vcc"><br>                                            <li class="li">提供打包任务，以将机器人功能 SDK 文件打包到存档中。通过 <code class="ph codeph">qirf-sdk</code> recipe 调用。</li><br><br>                                            <li class="li">recipe 编译完成后，易于安装的 artifact 存档位于 <code class="ph codeph">&lt;workspace&gt;/build-qcom-wayland/tmp-glibc/deploy/qirfsdk_artifacts</code> 目录中。</li><br><br>                                        </ul> |
    | `psdk-base.bbclass` | <ul class="ul" id="robotics-layers__ul_ycj_cwf_vcc"><br>                                            <li class="li">提供了基本配置，用于设置软件包名称和禁用 QIRF SDK 的未使用任务。</li><br><br>                                            <li class="li">在编译期间通过 <code class="ph codeph">qirf-sdk</code> recipe 调用。</li><br><br>                                        </ul> |
    | `robotics-package.bbclass` | <ul class="ul" id="robotics-layers__ul_zcj_cwf_vcc"><br>                                            <li class="li">提供了将所有机器人文件移至 <code class="ph codeph">/opt/qcom</code> 目录的任务。</li><br><br>                                            <li class="li">提供用于设置软件包名称和软件包文件的基本配置。</li><br><br>                                            <li class="li">在编译期间通过机器人功能 recipe 调用。</li><br><br>                                        </ul> |
- **Distro 配置**

| `layer.conf` | 使用以下信息配置项目层：<br><ul class="ul" id="robotics-layers__ul_ddj_cwf_vcc"><br>                                            <li class="li">recipe 文件路径</li><br><br>                                            <li class="li">支持的 Yocto 版本</li><br><br>                                        </ul> |
    | --- | --- |
- **Recipe**

| Recipe | 说明 |
    | --- | --- |
    | recipe | 由机器人功能 recipe 组成：<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 | 包括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 | 包括recipe append文件，增加了扩展配置：<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 配置**

| `layer.conf` | 使用以下信息配置项目层：<br><ul class="ul" id="robotics-layers__ul_ldj_cwf_vcc"><br>                                            <li class="li">recipe 文件路径</li><br><br>                                            <li class="li">支持的 Yocto 版本</li><br><br>                                        </ul> |
    | --- | --- |
    | `qcom-robotics-ros2-humble.conf` | 使用以下信息配置发行版本功能：<br><ul class="ul" id="robotics-layers__ul_mdj_cwf_vcc"><br>                                            <li class="li">ROS2 humble 发行版本支持</li><br><br>                                            <li class="li">包括 Qualcomm Linux 的发行版本conf文件</li><br><br>                                        </ul> |
- **镜像 recipe**

| recipe | 说明 |
    | --- | --- |
    | `qcom-robotics-full-image` | 包括以下软件包：<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> |
- **软件包组**

| 软件包组 | 说明 |
    | --- | --- |
    | `packagegroup-qcom-robotics` | 上游基本 ROS2 软件包组和机器人所需的软件包：<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`

**Recipe**

| Recipe | 说明 |
| --- | --- |
| recipe | `meta-qcom-robotics-extras` recipe 会覆写 `meta-qcom-robotics` 中的 recipe。`meta-qcom-robotics` 默认使用预编译的二进制文件，而 `meta-qcom-robotics-extras` 从 Qualcomm 专有存储库编译源代码。<br><br><br>                                <br>由机器人功能 recipe 组成：<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:** [附录](https://docs.qualcomm.com/doc/80-70015-265Y/topic/references_a.html)

Last Published: Dec 05, 2024

[Previous Topic
附录](https://docs.qualcomm.com/bundle/publicresource/80-70015-265Y/topics/references_a.md) [Next Topic
参考资料](https://docs.qualcomm.com/bundle/publicresource/80-70015-265Y/topics/references.md)