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

[`qrb_ros_benchmark`](https://github.com/qualcomm-qrb-ros/qrb_ros_benchmark) 扩展了上游的 [`ros2_benchmark`](https://github.com/qualcomm-qrb-ros/ros2_benchmark) 框架，对 QRB 传输类型和 `dmabuf_transport` 类型提供一等支持——这样您就可以将零拷贝的优势与标准 `sensor_msgs` 进行**同等条件**的对比测量。

<Note>
  如果您正在评估 Qualcomm 用于机器人领域，这就是您验证性能声明的方法。相同的测试框架、相同的方法论、三种传输类型——选择能告诉您所需信息的那一种。
</Note>

## 它测量什么

开箱即用，该软件包能够对以下内容进行基准测试：

| 传输                                                                         | 类型                                                              |
| -------------------------------------------------------------------------- | --------------------------------------------------------------- |
| [`qrb_ros_transport`](./qrb-ros-transport)                                 | `Image`、`Imu`、`PointCloud2`、`TensorList`                        |
| [`dmabuf_transport`](https://github.com/qualcomm-qrb-ros/dmabuf_transport) | `Image`、`PointCloud2`                                           |
| 标准 ROS                                                                     | `sensor_msgs/Image`、`sensor_msgs/Imu`、`sensor_msgs/PointCloud2` |

对各类型的感知能力正是实现同等条件对比的关键——用相同的生产者和消费者，先针对 `sensor_msgs::Image`、再针对 `qrb_ros::transport::type::Image` 运行 `ros2_benchmark`，可以将序列化 + memcpy 的开销与其他一切因素隔离开来。

## 快速入门

<Steps>
  <Step title="在 Qualcomm® IoT 平台的 Ubuntu 上安装">
    ```bash theme={null}
    sudo add-apt-repository ppa:ubuntu-qcom-iot/qcom-ppa
    sudo add-apt-repository ppa:ubuntu-qcom-iot/qirp
    sudo apt update
    sudo apt install ros-jazzy-qrb-ros-benchmark
    ```
  </Step>

  <Step title="运行基准测试">
    用法遵循上游 `ros2_benchmark` 的约定——完整流程请参阅[上游 README](https://github.com/qualcomm-qrb-ros/qrb_ros_benchmark#-usage)。典型模式是一个 launch 文件，将您的被测节点与 `ros2_benchmark` 的数据加载器和监控节点连接起来，再加上一个运行测量扫描的 Python 驱动程序。
  </Step>
</Steps>

## 为什么这有帮助

| 替代方案                                  | 简评                                   |
| ------------------------------------- | ------------------------------------ |
| 标准 `ros2_benchmark`（NVIDIA Isaac ROS） | 上游基线；对 QRB 传输类型或 DMA-buf fd 一无所知。    |
| 手工编写的延迟/吞吐量循环                         | 可行，但无法在项目或团队之间共享方法论——每个团队都在重新发明测量方式。 |
| `ros2 topic hz` / `ros2 topic bw`     | 适合抽查，但不适合结构化的多次运行报告或回归 CI。           |

扩展 `ros2_benchmark` 以感知 QRB 传输类型和 DMA-buf 类型——将零拷贝的优势与标准 `sensor_msgs` 进行同等条件的测量。它与 [`qrb-ros-dds-optimizer.mdx`](./qrb-ros-dds-optimizer) 天然搭配，后者使用 `ros2_benchmark` 作为其测量框架。

## 相关内容

* [`qrb-ros-transport.mdx`](./qrb-ros-transport) — 被测量的传输。
* [`qrb-ros-dds-optimizer.mdx`](./qrb-ros-dds-optimizer) — 使用 `ros2_benchmark` 作为其测量循环，因此您在此处搭建的基准测试也可以驱动 DDS 优化器。
* 上游：[`qualcomm-qrb-ros/qrb_ros_benchmark`](https://github.com/qualcomm-qrb-ros/qrb_ros_benchmark)、[`ros2_benchmark`](https://github.com/qualcomm-qrb-ros/ros2_benchmark)。
