3.7 KiB
Other Tools
firmware_update_tool
firmware_update_tool upgrades device firmware or writes preset files from the ROS 2 command line. Before upgrading, make sure the device connection is stable. When multiple devices are connected, specify the serial number to avoid updating the wrong device.
Show help:
ros2 run orbbec_camera firmware_update_tool -- --help
Upgrade firmware for one device:
ros2 run orbbec_camera firmware_update_tool -- \
--serial_number <SN> \
--firmware_path /path/to/firmware.bin
Write a preset file:
ros2 run orbbec_camera firmware_update_tool -- \
--serial_number <SN> \
--preset_path /path/to/preset.bin
For batch updates, --serial_number accepts comma-separated values. Add --continue_on_error if later devices should still be processed after one device fails.
ros2 run orbbec_camera firmware_update_tool -- \
--serial_number SN1,SN2 \
--firmware_path /path/to/firmware.bin \
--continue_on_error
Frame Timestamp CSV Logging
When enable_frame_timestamp_csv is enabled, the camera node records Color and Depth frame timestamp data to a CSV file. This is useful for frame synchronization, publish latency, and timestamp debugging.
ros2 launch orbbec_camera gemini_330_series.launch.py \
enable_frame_timestamp_csv:=true \
frame_timestamp_csv_file:=/tmp/frame_timestamp.csv
The CSV includes SDK frame index, hardware frame number, sensor timestamp, device/global/system timestamp, arrival timestamp, publish timestamp, inter-frame delta values, and SDK delay fields.
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.
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 to300means the configuration will switch every 300 seconds.test_cycle: The testing cycle, in seconds. For example, setting it to1means 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 to30means that the first 30 data points will be ignored.
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.
Running the ob_benchmark tool
To run the tool, use the following commands:
source install/setup.bash
ros2 run orbbec_camera ob_benchmark_node
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.csvcontains data from theob_benchmark_0.launch.pyconfiguration.1.csvcontains data from theob_benchmark_1.launch.pyconfiguration.