/isaac_camera_benchmark

Benchmark your camera with this simple tool

Primary LanguagePythonMIT LicenseMIT

isaac_camera_benchmark

This tool run a simple test to check the performance of your desktop on Isaac SIM.

Camera benchmark

You can run multiple test and read:

  • Camera performance from 1 to more
  • Change resolution
  • ROS2

This tool will plot on your bash the ROS topic frequency average and the FPS from Isaac SIM.

This tool will run a set of camera on your Isaac SIM environment and will start to rotate every camera autonomously.

Hardware required

Workstation:

  1. x86/64 machine
  2. Install Ubuntu 20.04 or Ubuntu 22.04
  3. NVIDIA Graphic card with RTX
  4. Display
  5. Keyboard and Mouse

Run demo

Clone this repository and move to repository folder

git clone https://github.com/nvidia_iot/isaac_camera_benchmark.git
cd isaac_camera_benchmark

Run the installer

./run_camera_benchmark.sh

NVIDIA Isaac SIM

Follow the documentation on NVIDIA Isaac SIM Workstation install

  1. Download the Omniverse Launcher
  2. Install Omniverse Launcher
  3. Install Cache from the Omniverse Launcher
  4. Install Nucleus from the Omniverse Launcher

Open Omniverse Launcher

Omniverse launcher

Move to Library and choice "Omniverse Isaac SIM" and download the latest 2023.1 version

Omniverse library

Setup Isaac Camera Benchmark

To add a new camera or change the benchmark simulation, you can simply create a new file config.json that override the default configuration.

Add a new camera

Make a new field called camera and for each camera add these fields:

  • translate position camera inside the environment
  • resolution Camera resolution, suggested
    • 640 x 480
    • 1024 x 768
    • FHD - 1920 x 1080
    • 2K - 2560 x 1440
    • 4K - 3840 x 2160

Example a json file can be composed in this way

{
    "camera": [
        {"translate": [-1, 5, 1], "resolution": [640, 480]},
        {"translate": [0, 0, 0], "resolution": [1024, 768]},
    ]
}

Change simulation type

On the simulation field you can change the simulation configuration, example make it headless like the example below

{
    "simulation": {"renderer": "RayTracedLighting", "headless": true}
}

Export benchmark to csv file

If you want to export the output in a csv file you can enable the option that automatically generate a file with name benchmark_camera_<CURRENT DATE>.csv

{
    "record": true
}

Record camera output

If you want to record in a ros2 bag file all camera you can simply run

./ros2record.sh

That simply export all camera in a rosbag2 folder, the output will be like the picture below.

ros2 bag record

All ros2bag file will be available on folder isaac_camera_benchmark/rosbag.