> ## Documentation Index
> Fetch the complete documentation index at: https://dragonwingdocs-staging.qualcomm.com/llms.txt
> Use this file to discover all available pages before exploring further.

# QRB ROS 生态系统

> QIR SDK 中的 QRB ROS 软件包导览:NPU 推理、零拷贝摄像头、色彩空间转换、音频、基准测试,以及 Qualcomm Linux 上的示例管线。

**QRB ROS** 是 Qualcomm 面向 Qualcomm 平台机器人开发的 ROS 2 软件包和硬件加速节点集合。在 Qualcomm Linux 上,这些软件包随机器人镜像一起发布,并在 [QIR SDK](/zh/SDKs/QIR-SDK-2.0/qir-sdk-overview) 中提供文档。本页面为评估人员和架构师提供导览:Qualcomm 加上 ROS 能为机器人开发带来什么,以及在哪里可以试用每个部分?

```mermaid theme={null}
flowchart LR
    EVAL(["<b>Qualcomm + ROS</b><br/>for robotics"])
    EVAL --> NPU["<b>NPU inference</b><br/>qrb_ros_nn_inference"]
    EVAL --> ZC["<b>Zero-copy camera</b><br/>qrb_ros_camera · colorspace"]
    EVAL --> VAL["<b>Validation tooling</b><br/>qrb_ros_benchmark"]
    EVAL --> SIM["<b>Robotics samples</b><br/>SLAM · Nav2 · pick-and-place"]

    classDef hero fill:#31017D,stroke:#31017D,color:#fff,stroke-width:1.5px;
    classDef pkg fill:#F4EFFA,stroke:#31017D,color:#31017D,stroke-width:1.5px;
    class EVAL hero;
    class NPU,ZC,VAL,SIM pkg;
```

<CardGroup cols={2}>
  <Card title="NPU 推理" icon="brain" href="/zh/SDKs/QIR-SDK-2.0/execute-ai-model-inference-with-qrb-ros-nn-inference">
    使用 `qrb_ros_nn_inference` 从 ROS 2 节点在 Hexagon NPU 上运行神经网络模型。
  </Card>

  <Card title="零拷贝摄像头" icon="bolt" href="/zh/SDKs/QIR-SDK-2.0/run-a-zero-copy-camera-with-qrb-ros-camera">
    从摄像头服务器以零拷贝方式发布摄像头帧,以降低节点间延迟。
  </Card>

  <Card title="色彩空间转换" icon="wand-magic-sparkles" href="/zh/SDKs/QIR-SDK-2.0/convert-between-nv-12-and-rgb-888-with-qrb-ros-colorspace-convert">
    使用 `qrb_ros_colorspace_convert` 在 NV12 和 RGB888 之间转换。
  </Card>

  <Card title="核心音频" icon="volume-high" href="/zh/SDKs/QIR-SDK-2.0/enable-core-audio-with-qrb-ros-audio-service">
    使用 `qrb_ros_audio_service` 为机器人添加播放和录音功能。
  </Card>

  <Card title="基准测试框架" icon="gauge-high" href="/zh/SDKs/QIR-SDK-2.0/evaluating-performance-of-ros-2-components-with-qrb-ros-benchmark">
    在 Qualcomm 平台上测量 ROS 2 组件的性能。
  </Card>

  <Card title="机器人示例" icon="robot" href="/zh/SDKs/QIR-SDK-2.0/run-robotics-sample-applications">
    模拟器中的 AMR 运动、SLAM、AprilTag、抓取放置(pick-and-place)和导航。
  </Card>
</CardGroup>

## 与标准 ROS 2 的区别

* \*\*访问 Hexagon NPU。\*\*标准的 TFLite 或 ONNX ROS 节点只能在 CPU 或 OpenCL GPU 上运行推理。要面向 Hexagon NPU,需要 Qualcomm QNN 后端,而社区中没有等效方案。[`qrb_ros_nn_inference`](/zh/SDKs/QIR-SDK-2.0/execute-ai-model-inference-with-qrb-ros-nn-inference) 可从 ROS 2 节点在 NPU 上运行模型。
* \*\*零拷贝摄像头共享。\*\*标准的 `image_transport` 和 `sensor_msgs::Image` 会在节点之间序列化并复制数据负载。而 QRB ROS 传输类型传递的是 DMA-buf 文件描述符,因此摄像头 ISP 写入的帧会保持原位,直到下一个硬件消费者读取它。
* \*\*打包好的、正确使用加速器的管线。\*\*QIR SDK 的[示例应用](/zh/SDKs/QIR-SDK-2.0/qir-sdk-sample-applications)将摄像头采集、推理以及前后处理捆绑在 launch 文件中,因此你无需自己搭建这些管道。

## 选择抽象层级

这些原语可以组合。选择适合你目标的接线层级:

| 层级        | 使用内容                              | 参考位置                                                                                    |
| --------- | --------------------------------- | --------------------------------------------------------------------------------------- |
| 通用 NPU 节点 | `qrb_ros_nn_inference` 搭配你自己的模型   | [执行 AI 模型推理](/zh/SDKs/QIR-SDK-2.0/execute-ai-model-inference-with-qrb-ros-nn-inference) |
| 平台节点      | 单个 `qrb_ros` 节点(摄像头、音频、色彩空间或基准测试) | [平台示例应用](/zh/SDKs/QIR-SDK-2.0/run-platform-sample-applications)                         |
| 参考管线      | 完整的机器人示例,按原样使用或稍作修改               | [机器人示例应用](/zh/SDKs/QIR-SDK-2.0/run-robotics-sample-applications)                        |

这三者面向相同的芯片,并且可以在同一 ROS 图上互操作。

## 代码仓库

QRB ROS 软件包在 [github.com/qualcomm-qrb-ros](https://github.com/qualcomm-qrb-ros) 上开放开发。

| 仓库                                                                                               | 用途                             | 许可证          |
| ------------------------------------------------------------------------------------------------ | ------------------------------ | ------------ |
| [`qrb_ros_transport`](https://github.com/qualcomm-qrb-ros/qrb_ros_transport)                     | 零拷贝 ROS 2 传输类型                 | BSD-3-Clause |
| [`qrb_ros_nn_inference`](https://github.com/qualcomm-qrb-ros/qrb_ros_nn_inference)               | 通用 NPU 推理 ROS 节点               | BSD-3-Clause |
| [`qrb_ros_samples`](https://github.com/qualcomm-qrb-ros/qrb_ros_samples)                         | AI 和机器人示例管线                    | BSD-3-Clause |
| [`qrb_ros_simulation`](https://github.com/qualcomm-qrb-ros/qrb_ros_simulation)                   | QRB 机器人的 Gazebo 仿真             | BSD-3-Clause |
| [`qrb_ros_benchmark`](https://github.com/qualcomm-qrb-ros/qrb_ros_benchmark)                     | 面向 QRB 类型的 `ros2_benchmark` 扩展 | BSD-3-Clause |
| [`qrb_ros_color_space_convert`](https://github.com/qualcomm-qrb-ros/qrb_ros_color_space_convert) | NV12 与 RGB8 之间的 GPU 加速转换器      | BSD-3-Clause |
| [`qrb_ros_image_resize`](https://github.com/qualcomm-qrb-ros/qrb_ros_image_resize)               | 硬件加速的 NV12 缩小器                 | BSD-3-Clause |

<Note>
  在 Qualcomm Linux 上,QRB ROS 软件包随机器人镜像交付,而不是安装到标准镜像上。专有节点(摄像头、视频、音频和色彩空间转换)包含在 `qcom-robotics-proprietary-image` 中。有关镜像的组成方式,参见[机器人镜像与 overlay](./robotics-image-and-overlays)。
</Note>

<Note>
  QRB ROS 组织还贡献了可在任何具有 DMA heap 的 Linux SoC 上工作的可移植上游软件包,例如 [`dmabuf_transport`](https://github.com/qualcomm-qrb-ros/dmabuf_transport) 和 [`lib_mem_dmabuf`](https://github.com/qualcomm-qrb-ros/lib_mem_dmabuf)。`qrb_ros_transport` 构建于这两者之上,因此你无需直接接触它们。
</Note>
