# 多相机同步说明

> 本文档的目的是说明如何在 OrbbecSDK_ROS2 中使用多相机同步

### 设置说明

* 请阅读多相机同步设置指南：[多相机同步设置](https://www.orbbec.com/docs/set-up-cameras-for-external-synchronization_v1-2/)
* 确保相机正确连接到多相机同步器。

![深度点云可视化](../../image/multi_camera_synced/multi_camera_synced1.png)

### 使用 OrbbecSDK_ROS2 检查相机端口

```bash
ros2 run orbbec_camera list_devices_node
```

### OrbbecSDK_ROS2 多相机同步配置

打开 multi_camera_synced.launch.py，并按照下面所示配置相机设置：

![深度点云可视化](../../image/multi_camera_synced/multi_camera_synced2.png)

1. `gemini_330_series.launch.py` 是用于启动相机的启动文件。

2. 将 `camera_name` 设置为 `G330_0`。例如，发布的彩色图像话题将是 `/G330_0/color/image_raw`。

3. 将 `usb_port` 设置为 `2-2`，表示正在使用端口 `2-2` 上的相机设备。此值可以在 `ros2 run orbbec_camera list_devices_node` 命令的输出中找到。

4. 将 `device_num` 设置为 `2`，表示将使用两个相机。

5. 将 `sync_mode` 设置为 `primary`，表示 `2-7` 相机设备处于主模式。多相机同步模式选项可以在下图中找到。

6. 来自 `config_file_path` 的参数可以覆盖在 `gemini_330_series.launch.py` 中设置的参数（可选）。

7. 对于从属相机，将 `trigger_out_enabled` 设置为 false。

| **模式名称** | **设置效果说明**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| free_run               | - 支持不同的帧率设置<br />- 8 针同步接口不支持外部输出同步相关信号                                                                                                                                                                                                                                                                                                                 |
| standalone（默认）    | ● 默认与 Primary 相同<br />● 内置 RGBD 帧同步<br />● 8 针同步接口默认不向外部输出信号                                                                                                                                                                                                                                                                                                                                                                                                                 |
| primary                | ● 设置为主相机<br />● 8 针同步接口向外部设备输出信号                                                                                                                                                                                                                                                                                                                                                                                                          |
| secondary              | ● 设置为从属（被动同步；当外部有硬件连续触发信号输入且连续触发信号与当前设置的帧率匹配时，根据外部触发信号采集图像；当没有外部触发信号时，停止流）<br />● 8 针同步接口向外部设备输出信号                                                                                   |
| secondary_synced       | ● 设置为从属同步（被动同步；当外部有硬件连续触发信号输入且连续触发信号与当前设置的帧率匹配时，根据外部触发信号采集图像；当没有外部触发信号时，根据设置的帧率的内部触发信号采集图像）<br />● 8 针同步接口向外部设备输出信号 |
| hardware_triggering    | ● 设置为硬件触发（被动触发；当外部有硬件触发信号输入且触发信号时间间隔不小于当前上限时，根据外部触发信号采集图像；当没有外部触发信号时，不采集图像）<br />● 8 针同步接口向外部设备输出信号                                                                                 |
| software_triggering    | ● 设置为软件触发（被动触发；当主机有触发命令输入且触发命令时间间隔不小于当前上限时，根据触发命令采集图像；当没有触发命令时，不采集图像）<br />● 8 针同步接口向外部设备输出信号                                                                                                  |

* 主相机应该最后启动。
* 理想情况下，启动每个相机之间应该有 2 秒的延迟。

### 运行以下命令启动多相机同步

```bash
ros2 launch orbbec_camera multi_camera_synced.launch.py
```
