> ## 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 生态系统

**QRB ROS** 是 Qualcomm 面向机器人平台的上游 ROS 2 Jazzy 软件包集合——目前支持 Qualcomm Dragonwing™ IQ‑9075 EVK 和 IQ‑8（Beta）EVK。本页面向评估者和架构师提供一次导览：*Qualcomm + ROS 能为机器人开发提供什么，以及如何试用其中的每一部分？*

```mermaid theme={null}
flowchart LR
    EVAL(["<b>Qualcomm + ROS</b><br/>for robotics"])
    EVAL --> NPU["<b>NPU inference</b><br/>samples · nn_inference · npu-workflows"]
    EVAL --> ZC["<b>Zero-copy data plane</b><br/>qrb_ros_transport"]
    EVAL --> VAL["<b>Validation tooling</b><br/>benchmark · DDS optimizer"]
    EVAL --> SIM["<b>Try without hardware</b><br/>qrb_ros_simulation"]

    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="./qrb-ros-nn-inference">
    从 ROS 2 节点加载 `.tflite` / `.so` / `.bin` 模型并在 Hexagon HTP NPU 上运行。
  </Card>

  <Card title="零拷贝传输" icon="bolt" href="./qrb-ros-transport">
    传递 DMA-buf fd 而不是对负载执行 memcpy。支持 `Image` 和 `PointCloud2` 类型。
  </Card>

  <Card title="参考示例" icon="cubes" href="./qrb-ros-samples">
    可运行的 AI（检测、分割、姿态、深度）和机器人（Nav2、AprilTag、抓取放置）管线。
  </Card>

  <Card title="Gazebo 仿真" icon="computer" href="./qrb-ros-simulation">
    无需购买开发板即可评估 QRB ROS。提供预构建的 AMR 和机械臂配置。
  </Card>

  <Card title="基准测试框架" icon="gauge-high" href="./qrb-ros-benchmark">
    将零拷贝收益与标准 `sensor_msgs` 进行同等条件的对比测量。
  </Card>

  <Card title="DDS 自动调优器" icon="wand-magic-sparkles" href="./qrb-ros-dds-optimizer">
    由 LLM 驱动的 FastDDS QoS 调优器——适用于任何 ROS 2 环境，无需 Qualcomm 硬件。
  </Card>
</CardGroup>

## 与标准 ROS 2 的区别

* **Hexagon HTP NPU 访问。** 标准的 TFLite / ONNX ROS 节点只能在 CPU 或 OpenCL GPU 上运行推理。要面向 HTP NPU，需要 Qualcomm 的 **QNN delegate**（或 QNN SDK）——社区中没有等效方案。
* **DMA-buf 摄像头共享。** 标准的 `image_transport` + `sensor_msgs::Image` 总是在节点之间序列化并 memcpy 负载。[`qrb_ros_transport`](./qrb-ros-transport) 改为传递 DMA-buf 文件描述符，因此摄像头 ISP 写入的帧会留在原处，直到下一个硬件消费者读取它。
* **打包好的、正确使用加速器的管线。** [`qrb_ros_samples`](./qrb-ros-samples) 将摄像头采集、QNN 推理和前后处理捆绑到 launch 文件中，因此您无需自己连接这些管道。

## 选择您的抽象层级

您不必在"QRB 示例"和"标准 ROS"之间二选一——这些原语可以组合。选择适合您目标的接线层级：

| 层级            | 使用内容                                                                 | 本节中的示例                                                                                                                       |
| ------------- | -------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| **从零构建**      | QNN delegate + 标准 ROS 2 软件包 + AI Hub 模型，自行接线                         | [NPU 工作流程](./npu-workflows) — 手工构建的深度管线                                                                                      |
| **通用 NPU 节点** | [`qrb_ros_nn_inference`](./qrb-ros-nn-inference) + 您自己从 AI Hub 获取的模型 | 可直接在任何话题上进行 QNN 推理                                                                                                           |
| **参考管线**      | [`qrb_ros_samples`](./qrb-ros-samples) 目录条目，原样使用或轻度修改                | [`sample_depth_estimation`](https://github.com/qualcomm-qrb-ros/qrb_ros_samples/tree/main/ai_vision/sample_depth_estimation) |

这三种都是有效的生产路径。它们面向相同的芯片，并且可以在同一个 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)               | 通用 QNN 推理 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 AMR 和机械臂的 Gazebo 仿真        | BSD‑3‑Clause |
| [`qrb_ros_benchmark`](https://github.com/qualcomm-qrb-ros/qrb_ros_benchmark)                     | 面向 QRB 类型的 `ros2_benchmark` 扩展 | BSD‑3‑Clause |
| [`ROS2-DDSConfig-Optimizer`](https://github.com/qualcomm-qrb-ros/ROS2-DDSConfig-Optimizer)       | LLM 驱动的 FastDDS 自动调优器          | BSD‑3‑Clause |
| [`qrb_ros_tensor_process`](https://github.com/qualcomm-qrb-ros/qrb_ros_tensor_process)           | YOLO 前后处理节点                    | 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)               | EVA 加速的 NV12 降采样器              | BSD‑3‑Clause |

完整组织位于 [github.com/qualcomm-qrb-ros](https://github.com/qualcomm-qrb-ros) ——其中包括与特定机器人底盘、传感器子系统或设备服务相关的其他软件包，此处未一一列出。

<Note>
  QRB ROS 组织还贡献了可在任何具有 DMA heap 的 Linux SoC 上运行的上游软件包——[`dmabuf_transport`](https://github.com/qualcomm-qrb-ros/dmabuf_transport)（可移植的 REP 2007 适配类型）和 [`lib_mem_dmabuf`](https://github.com/qualcomm-qrb-ros/lib_mem_dmabuf)（用户空间 DMA-buf 辅助库）。`qrb_ros_transport` 构建于这两者之上，因此您无需直接接触它们——此处提供链接是为想了解完整技术栈的读者准备的。
</Note>

<Note>
  QRB ROS 面向 **Qualcomm® IoT 平台上的 Ubuntu** 及 **ROS 2 Jazzy**。这些软件包通过 Qualcomm IoT PPA（`ppa:ubuntu-qcom-iot/qcom-ppa` 和 `ppa:ubuntu-qcom-iot/qirp`）分发。对于 Qualcomm Linux，请改为参考 [QIRP SDK](https://docs.qualcomm.com/bundle/publicresource/topics/80-70018-265/introduction_1.html?vproduct=1601111740013072\&version=1.4\&facet=Qualcomm%20Intelligent%20Robotics%20Product%20\(QIRP\)%20SDK) 文档。
</Note>
