isaac_ros_benchmark

Source code on GitHub.

Quickstart

Follow the steps below to run a sample benchmark for measuring performance of an Isaac ROS AprilTag node with ros2_benchmark. This process can also be used to benchmark the other Isaac ROS nodes, and the ros2_benchmark framework more generally supports benchmarking arbitrary graphs of ROS 2 nodes.

Set Up Development Environment

  1. Set up your development environment by following the instructions in getting started.

  2. Clone isaac_ros_common under ${ISAAC_ROS_WS}/src.

    cd ${ISAAC_ROS_WS}/src && \
       git clone https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_common.git
    
  3. (Optional) Install dependencies for any sensors you want to use by following the sensor-specific guides.

    Warning

    We strongly recommend installing all sensor dependencies before starting any quickstarts. Some sensor dependencies require restarting the Isaac ROS Dev container during installation, which will interrupt the quickstart process.

Datasets

Most benchmarks for Isaac ROS nodes use the standard r2b Dataset as input data. Download the datasets by following the instructions here or fetch just the rosbag used in this Quickstart with the following command.

mkdir -p ${ISAAC_ROS_WS}/src/ros2_benchmark/assets/datasets/r2b_dataset/r2b_storage && \
cd ${ISAAC_ROS_WS}/src/ros2_benchmark/assets/datasets/r2b_dataset/r2b_storage && \
wget 'https://api.ngc.nvidia.com/v2/resources/nvidia/isaac/r2bdataset2023/versions/2/files/r2b_storage/metadata.yaml' && \
wget 'https://api.ngc.nvidia.com/v2/resources/nvidia/isaac/r2bdataset2023/versions/2/files/r2b_storage/r2b_storage_0.db3'

Build isaac_ros_benchmark

  1. Launch the Docker container using the run_dev.sh script:

    cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \
    ./scripts/run_dev.sh
    
  2. Install the prebuilt Debian package:

    sudo apt-get install -y ros-humble-isaac-ros-apriltag-benchmark
    

Run Launch File

  1. Continuing inside the Docker container, run the following launch file to start benchmarking Isaac ROS AprilTag:

    launch_test $(ros2 pkg prefix isaac_ros_apriltag_benchmark)/share/isaac_ros_apriltag_benchmark/scripts/isaac_ros_apriltag_node.py
    
  2. Once the benchmark is finished, the final performance measurements are displayed in the terminal.

    Additionally, the final results and benchmark metadata (e.g., system information, benchmark configurations) are also exported as a JSON file whose path is printed in the terminal when the benchmark ends.

Troubleshooting

For solutions to problems with Isaac ROS, please check here.