6.4. Other Tools

6.4.1. Ob_benchmark tool

The goal of this tool is to benchmark the performance of various OrbbecSDK_ROS2 camera configurations. The benchmark results depend on the camera and settings used.(Currently only works with ROS2 Humble)

You can find example usage code in the example.

6.4.1.1. Tool Configuration (start_benchmark_params.json)

{
    "start_benchmark_params": {
        "camera_name": [
            "camera_01",
            "camera_02",
            "camera_03",
            "camera_04"
        ],
        "process_name": "component_conta",
        "switch_cycle": 300,
        "test_cycle": 1,
        "skip_number": 30
    }
}
  • camera_name: Names of the cameras to be configured. Example: "camera_01", "camera_02", etc.

  • process_name: The name of the process to be monitored. For example, "component_conta" will monitor the data of the container process.

  • switch_cycle: The cycle time for switching configurations, in seconds. For example, setting it to 300 means the configuration will switch every 300 seconds.

  • test_cycle: The testing cycle, in seconds. For example, setting it to 1 means the tool will collect data for the monitored process every 1 second.

  • skip_number: The number of data points to skip. For example, setting it to 30 means that the first 30 data points will be ignored.

6.4.1.2. Camera configuration (launch files)

In the launch folder, there are multiple.launch.py files (ob_benchmark_0.launch.py, ob_benchmark_1.launch.py, …, ob_benchmark_19.launch.py). Each file corresponds to a different camera configuration.

6.4.1.3. Running the ob_benchmark tool

To run the tool, use the following commands:

source install/setup.bash
ros2 run orbbec_camera ob_benchmark_node

6.4.1.4. Output Data Files

The output data files will be stored in the ob_benchmark folder with filenames like 0.csv, 1.csv, …, 19.csv. For example:

  • 0.csv contains data from the ob_benchmark_0.launch.py configuration.

  • 1.csv contains data from the ob_benchmark_1.launch.py configuration.