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

# 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 graph 上互操作。

## 代码仓库

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>
