Files
OrbbecSDK_ROS2/docs/multi_camera_syned_CN.MD
T
2025-03-31 20:16:47 +08:00

107 lines
2.9 KiB
Markdown

## 多机同步存图及脚本解析
本节介绍如何在ROS 2环境中使用多个Orbbec摄像头同步存图,并使用脚本解析数据。
### 连接准备
请根据指导连接多个Orbbec摄像头和多机同步器。
* 有关多机同步器的详细指导,请参阅[设置相机进行外部同步](https://www.orbbec.com/docs/set-up-cameras-for-external-synchronization_v1-2/)。
* 多个Orbbec摄像头和多机同步器的连接示例。
![多机同步器连接示意图](./images/image7.jpg)
### 多机同步存图
#### 查看设备的USB端口
```bash
ros2 run orbbec_camera list_devices_node
```
![查看设备的USB端口](./images/image8.jpg)
#### 参数配置
##### multi_camera_synced.launch.py
1. `usb_port` 设置为设备的USB端口。
2. `device_num` 设置为2,说明启动了两个相机。
3. `sync_mode` 设置为 primary,说明相机设备设置为主机模式。
4. 从机设置 `trigger_out_enabled` 为 false。
![launch配置](./images/image9.jpg)
##### multi_save_rgbir_params.json
配置多个设备的USB端口和名称。
![json配置](./images/image10.jpg)
##### camera_params.yaml
启用左IR摄像头。
`enable_left_ir: true`
##### start_multi_sync.sh
`{data: 100}` 表示每台相机的每个流存储100张图片。
![脚本配置](./images/image11.jpg)
#### 启动多机同步存图
启动多个Orbbec摄像头(选择1)。
* 终端1
```bash
cd ~/ros2_ws/src/OrbbecSDK_ROS2/orbbec_camera/tools
sudo chmod +x start_multi_sync.sh
bash start_multi_sync.sh
```
![启动脚本](./images/image12.jpg)
同步保存图片(选择4)。
* 终端2
```bash
cd ~/ros2_ws/src/OrbbecSDK_ROS2/orbbec_camera/tools
bash start_multi_sync.sh
```
### 脚本解析
`multicamera_sync` - 保存图片以及解析脚本存放目录。
* `ouput` - 保存图片目录
* `Python` - 解析脚本目录
注意:`multicamera_sync` 需要复制到当前工作空间目录(与 `install` 目录同级)。
#### 配置文件
* `Config.ini` 配置相机实际帧率和最大误差时间戳阈值。
* `DevicesInfo.txt` 配置相机数量以及相机的pid、vid、SN号等参数。
* `StreamProfileInfo.txt` 配置相机分辨率、帧率以及编码格式。
注意:`DevicesInfo.txt` 和 `StreamProfileInfo.txt` 是解析脚本所需要的文件,需要复制到 `TotalModeFrames` 文件夹同级目录( `TotalModeFrames` 目录由存图脚本创建,用于存储多相机同步采集的图像数据)。
#### 运行脚本
运行解析脚本解析多机同步存储的图片。
```bash
cd ~/ros2_ws/multicamera_sync/Python
python3 SyncFramesMain.py
```
#### 输出结果
* `matchFrames`:同一组摄像头不完整的数据集,存在摄像头图片信息缺失。
* `notMatchFrames`:同一组摄像头完整的数据集。
* `abnormal`:同一组摄像头完整的数据集,且相机同步时间超过 `Config.ini` 设置的参数 `tspRangeThreshold`。