Skip to main content
qrb_ros_benchmark extends the upstream ros2_benchmark framework with first-class awareness of QRB transport types and dmabuf_transport types — so you can measure zero-copy wins apples-to-apples against stock sensor_msgs.
If you’re evaluating Qualcomm for robotics, this is how you verify the perf claims. Same harness, same methodology, three transport types — pick the one that tells you what you need.

What it measures

Out of the box, the package knows how to benchmark:
TransportTypes
qrb_ros_transportImage, Imu, PointCloud2, TensorList
dmabuf_transportImage, PointCloud2
Stock ROSsensor_msgs/Image, sensor_msgs/Imu, sensor_msgs/PointCloud2
The per-type awareness is what makes the apples-to-apples comparison possible — running ros2_benchmark against sensor_msgs::Image and then against qrb_ros::transport::type::Image with the same producer and consumer isolates the cost of serialization + memcpy from everything else.

Quick start

1

Install on Qualcomm Ubuntu

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
2

Run a benchmark

Usage follows the upstream ros2_benchmark conventions — see the upstream README for the full flow. The typical pattern is a launch file that wires your node under test + ros2_benchmark’s data-loader and monitor nodes, and a Python driver that runs the measurement sweep.

Why this helps

AlternativeShort take
Stock ros2_benchmark (NVIDIA Isaac ROS)The upstream baseline; knows nothing about QRB transport types or DMA-buf fds.
Hand-rolled latency / throughput loopsWorks, but doesn’t share methodology across projects or teams — every team reinvents the measurement.
ros2 topic hz / ros2 topic bwFine for spot-checking, not for structured multi-run reports or regression CI.
Extends ros2_benchmark with awareness of QRB transport types and DMA-buf types — measure zero-copy wins apples-to-apples against stock sensor_msgs. Pairs naturally with qrb-ros-dds-optimizer.mdx, which uses ros2_benchmark as its measurement harness.