# Evaluating performance of ROS2 components with `qrb_ros_benchmark` [qrb_ros_benchmark](https://github.com/qualcomm-qrb-ros/qrb_ros_benchmark) is a benchmarking tool designed for evaluating the performance of ROS components on Qualcomm robotics platforms. It provides reusable components for benchmarking various message types and ROS nodes, with a focus on zero-copy transport mechanisms. - `qrb_ros_benchmark` builds on [ros2_benchmark](https://github.com/NVIDIA-ISAAC-ROS/ros2_benchmark) and extends it with specialized components for benchmarking QRB ROS transport types, including: - - QRB transport types (Image, IMU, PointCloud2) - DMABuf transport types (Image, PointCloud2) - Standard ROS message types Note For information about the `qrb_ros_benchmark` pipeline flow and the topics it uses, see [ros2_benchmark](https://github.com/NVIDIA-ISAAC-ROS/ros2_benchmark). ## Prerequisites - You have **Set up the device** according to [Set up the environment for running sample applications](https://docs.qualcomm.com/doc/80-70030-265/topic/quick_start.html#setup-demo-qs). - Prepare the benchmark scripts for evaluating your custom ROS2 application. For details, see [Creating custom benchmark](https://github.com/NVIDIA-ISAAC-ROS/ros2_benchmark?tab=readme-ov-file#creating-custom-benchmark). ## Run out-of-the-box `qrb_ros_benchmark` **Steps** 1. Start two terminals, and run the following commands in each terminal to set up QIR SDK and ROS2 environment on the device. Value range of `ROS_DOMAIN_ID`: [0, 232] ssh root@[ip-addr] (ssh) mount -o remount,rw /usr (ssh) source /usr/share/qirp-setup.sh (ssh) export ROS_DOMAIN_ID=xx Copy to clipboard 2. In terminal 1, run your custom ROS2 application. (ssh) ros2 launch my_application.launch.py Copy to clipboard 3. In terminal 2, run your benchmark script for evaluating your custom ROS2 application. (ssh) launch_test my_benchmark_scripts.py Copy to clipboard > > > The script outputs the evaluation result in your terminal. ## Build and run `qrb_ros_benchmark` **Steps** 1. Build `qrb_ros_benchmark` provided by the QIR SDK on the host. cd source setup.sh cd qirp-samples/platform/qrb_ros_benchmark colcon build --merge-install --cmake-args ${CMAKE_ARGS} Copy to clipboard 2. Push `qrb_ros_benchmark` to the device. cd qirp-samples/platform/qrb_ros_benchmark/install tar czvf qrb_ros_benchmark.tar.gz include lib share scp qrb_ros_benchmark.tar.gz root@[ip-addr]:/opt/ ssh root@[ip-addr] (ssh) mount -o remount,rw /usr (ssh) tar --no-overwrite-dir --no-same-owner -zxf /opt/qrb_ros_benchmark.tar.gz -C /usr/ Copy to clipboard 3. Start two terminals, and run the following commands in each terminal to set up QIR SDK and ROS2 environment on the device. Value range of `ROS_DOMAIN_ID`: [0, 232] ssh root@[ip-addr] (ssh) source /usr/share/qirp-setup.sh (ssh) export ROS_DOMAIN_ID=xx Copy to clipboard 4. In terminal 1, run your custom ROS2 application. (ssh) ros2 launch my_application.launch.py Copy to clipboard 5. In terminal 2, run your benchmark scripts for evaluating your custom ROS2 application. (ssh) launch_test my_benchmark_scripts.py Copy to clipboard ## Limitation `qrb_ros_benchmark` supports the following ROS2 message types: - ROS2 standard message type - QRB transport types (Image, IMU, PointCloud2) - DMABuf transport types (Image, PointCloud2) Last Published: Jul 23, 2026 [Previous Topic Enable core audio with qrb\_ros\_audio\_service](https://docs.qualcomm.com/bundle/publicresource/80-70030-265/topics/qrb-ros-audio-service.md) [Next Topic Execute AI model inference with qrb\_ros\_nn\_inference](https://docs.qualcomm.com/bundle/publicresource/80-70030-265/topics/qrb_ros_nn_inference.md)