mirror of
https://github.com/orbbec/OrbbecSDK_ROS2.git
synced 2026-10-09 06:17:46 +08:00
docs: update multi-camera synchronization guidance
This commit is contained in:
@@ -6,7 +6,6 @@
|
||||
ros2 run orbbec_camera list_devices_node
|
||||
```
|
||||
|
||||
- Set the `device_num` parameter to the number of cameras you have.
|
||||
- Go to the `OrbbecSDK_ROS2/orbbec_camera/launch/multi_xxx.launch.py` file and change the `usb_port`.
|
||||
- Don't forget to put the `include` tag inside the `group` tag.
|
||||
Otherwise, the parameter values of different cameras may become contaminated.
|
||||
@@ -31,7 +30,6 @@ def generate_launch_description():
|
||||
launch_arguments={
|
||||
'camera_name': 'camera_01',
|
||||
'usb_port': '6-2.4.4.2', # replace your usb port here
|
||||
'device_num': '2'
|
||||
}.items()
|
||||
)
|
||||
|
||||
@@ -42,11 +40,10 @@ def generate_launch_description():
|
||||
launch_arguments={
|
||||
'camera_name': 'camera_02',
|
||||
'usb_port': '6-2.4.1', # replace your usb port here
|
||||
'device_num': '2'
|
||||
}.items()
|
||||
)
|
||||
|
||||
# If you need more cameras, just add more launch_include here, and change the usb_port and device_num
|
||||
# If you need more cameras, just add more launch_include here and change the usb_port
|
||||
|
||||
# Launch description
|
||||
ld = LaunchDescription([
|
||||
|
||||
@@ -27,13 +27,11 @@ Open multi_camera_synced.launch.py, and configure the camera settings as shown b
|
||||
|
||||
3. Set `usb_port` to `2-2`, indicating that the camera device on port `2-2` is being used. This value can be found in the output of the `ros2 run orbbec_camera list_devices_node` command.
|
||||
|
||||
4. Set `device_num` to `2`, meaning two cameras will be used.
|
||||
4. Set `sync_mode` to `primary` to indicate that the `2-7` camera device is in primary mode. The multi-camera sync mode options can be found in the figure below.
|
||||
|
||||
5. Set `sync_mode` to `primary` to indicate that the `2-7` camera device is in primary mode. The multi-camera sync mode options can be found in the figure below.
|
||||
5. Parameters from the `config_file_path` can override the parameters set in `gemini_330_series.launch.py` (optional).
|
||||
|
||||
6. Parameters from the `config_file_path` can override the parameters set in `gemini_330_series.launch.py` (optional).
|
||||
|
||||
7. For slave cameras, set `trigger_out_enabled` to false.
|
||||
6. For slave cameras, set `trigger_out_enabled` to false.
|
||||
|
||||
| **Pattern Nam**e | **Setting effect description** |
|
||||
| ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
|
||||
+5
-11
@@ -2,8 +2,8 @@
|
||||
|
||||
**File path:** [image_sync_example_node.cpp](https://github.com/orbbec/OrbbecSDK_ROS2/blob/v2-main/orbbec_camera/examples/multi_camera_time_sync/image_sync_example_node.cpp)
|
||||
|
||||
This example node is designed for **synchronized capture and timestamp verification** across **four Orbbec cameras**.
|
||||
It can be used to validate frame alignment accuracy under the multi-camera **Primary / Secondary Synced** mode.
|
||||
This example node performs synchronized capture and timestamp verification across multiple Orbbec cameras and supports **1 to 8 image topics** at a time.
|
||||
At startup, it automatically discovers published color/depth image topics and can be used to validate frame alignment accuracy under the multi-camera **Primary / Secondary Synced** mode.
|
||||
|
||||
---
|
||||
|
||||
@@ -11,7 +11,7 @@ It can be used to validate frame alignment accuracy under the multi-camera **Pri
|
||||
|
||||
### **Modify `multi_camera_synced.launch.py` as follows**
|
||||
|
||||
- Add `launch_include` to support four cameras.
|
||||
- Adjust `launch_include` according to the number of cameras participating in synchronization.
|
||||
|
||||
- Select the appropriate launch file based on your camera model.
|
||||
For example, use `gemini_330_series.launch.py` for the Gemini 330 series.
|
||||
@@ -19,8 +19,6 @@ It can be used to validate frame alignment accuracy under the multi-camera **Pri
|
||||
- Naming convention:
|
||||
`camera_name` should follow the format `camera_01`, `camera_02`, `camera_03`, ...
|
||||
|
||||
- Set `device_num` to **4**.
|
||||
|
||||
- Configure the USB ports using:
|
||||
|
||||
`ros2 run orbbec_camera list_devices_node`
|
||||
@@ -61,11 +59,11 @@ It can be used to validate frame alignment accuracy under the multi-camera **Pri
|
||||
|
||||
`ros2 run orbbec_camera image_sync_example_node`
|
||||
|
||||
This node outputs timestamp differences between multiple camera streams for synchronization validation.
|
||||
The node automatically discovers color/depth image topics from the running cameras, displays synchronized images, and outputs timestamp differences and FPS statistics for synchronization validation.
|
||||
|
||||
---
|
||||
|
||||
### **Reference Launch File**
|
||||
### **Four-Camera Reference Launch File**
|
||||
|
||||
```
|
||||
import os
|
||||
@@ -93,7 +91,6 @@ def generate_launch_description():
|
||||
launch_arguments={
|
||||
"camera_name": "camera_01",
|
||||
"usb_port": "2-2.3",
|
||||
"device_num": "4",
|
||||
"sync_mode": "primary",
|
||||
"config_file_path": config_file_path,
|
||||
"trigger_out_enabled": "true"
|
||||
@@ -107,7 +104,6 @@ def generate_launch_description():
|
||||
launch_arguments={
|
||||
"camera_name": "camera_02",
|
||||
"usb_port": "2-1",
|
||||
"device_num": "4",
|
||||
"sync_mode": "secondary_synced",
|
||||
"config_file_path": secondary_config_file_path,
|
||||
"trigger_out_enabled": "false"
|
||||
@@ -121,7 +117,6 @@ def generate_launch_description():
|
||||
launch_arguments={
|
||||
"camera_name": "camera_03",
|
||||
"usb_port": "2-3",
|
||||
"device_num": "4",
|
||||
"sync_mode": "secondary_synced",
|
||||
"config_file_path": secondary_config_file_path,
|
||||
"trigger_out_enabled": "false"
|
||||
@@ -135,7 +130,6 @@ def generate_launch_description():
|
||||
launch_arguments={
|
||||
"camera_name": "camera_04",
|
||||
"usb_port": "2-4",
|
||||
"device_num": "4",
|
||||
"sync_mode": "secondary_synced",
|
||||
"config_file_path": secondary_config_file_path,
|
||||
"trigger_out_enabled": "false"
|
||||
|
||||
Reference in New Issue
Block a user