Version

5.2.4. GMSL 多相机同步

本节介绍如何在 OrbbecSDK_ROS2 中同步多台通过 GMSL 连接的 Gemini 330 系列相机。

示例代码位于 gmsl_multi_camera_sync。

5.2.4.1. 配置设备文件权限

启动相机前,先为相机同步设备授予访问权限:

sudo chmod 777 /dev/camsync

5.2.4.2. 配置相机

要获取 GMSL 相机的 usb_port,插入相机并在终端中运行以下命令:

ros2 run orbbec_camera list_devices_node

例如,系统报告的 GMSL 相机 usb_port 可能为 gmsl2-1。

根据系统报告的 GMSL 链路,修改 multi_gmsl_camera_synced.launch.py 中的 usb_port。该示例为两台相机复用标准的 gemini_330_series.launch.py。

5.2.4.3. 同步配置

GMSL 多相机同步不需要 Multi-Camera Sync Hub Pro。当前示例中两台相机均使用 secondary_synced 模式。接收触发信号的相机先启动,启用主机端 GMSL 触发的相机在两秒后启动。

5.2.4.3.1. GMSL 链路触发模式

当前示例通过 GMSL 链路使用主机 SoC 产生的 PWM 触发源进行同步,支持以下两种触发模式。具体可用模式以相机型号、固件和 SDK 版本为准。同一组相机中仅需在一台相机上将 enable_gmsl_trigger 设置为 true,其他相机接收相同的触发信号。

模式 配置及行为
secondary_synced 所有相机设置为 secondary_synced。相机启动数据流后立即采集,并根据 PWM 触发信号调整采集时刻;触发信号停止后仍继续采集。PWM 触发频率应与数据流帧率一致。当前示例使用此模式。
hardware_triggering 所有相机设置为 hardware_triggering。相机仅在收到 PWM 硬件触发信号后采集图像,每次触发的帧数由 frames_per_trigger 设置。对于 GMSL 链路,PWM 触发频率不应超过数据流帧率的一半;例如数据流为 30 FPS 时,触发频率不应超过 15 FPS。

注意:通过 GMSL 相机的 8 针同步接口进行同步时,支持的同步模式与 USB 相机相同,请参考多相机同步。本节的 gmsl_trigger_fps 和 /dev/camsync 适用于 GMSL 链路触发方式。

额外的参数设置

  • gmsl_trigger_fps:设置硬件 SoC 触发源帧率。

  • enable_gmsl_trigger:启用硬件 SoC 触发,同一组相机中仅在一台相机上启用。

运行启动文件

ros2 launch orbbec_camera multi_gmsl_camera_synced.launch.py

注意:两台相机均加载 camera_secondary_params.yaml,默认启用 color 和 depth。如需配置其他数据流,请修改该文件。

5.2.4.4. GMSL 相机的使用限制

GMSL 相机与各种反序列化器芯片(如 MAX9296 和 MAX92716)接口。Orbbec GMSL 相机支持多个流,包括深度、彩色、IR 和 IMU 数据,但存在某些使用限制:

  • GMSL 仅支持 V4L2 和 YUYV 格式;不支持 MJPG 格式。RGB 输出源自 YUYV 格式转换。

  • Gemini-335Lg 的元数据通过单独的节点提供,而其他型号的元数据嵌入在视频帧中,这对用户保持透明。

  • 当使用 Max96712 作为反序列化器芯片时,由于 Max96712 芯片的特性,在 secondary_synced 模式下必须提供多机同步触发信号。否则,在切换数据流时会发生数据流中断。

  • 连接在同一个 MAX9296、MAX96712 LinkA/B 或 MAX96712 LinkC/D 上的两个相机有以下限制:

    • 在驱动程序版本 v1.2.02 之前,存在一个限制,即一个相机的 RGB 和另一个相机的右 IR 不能同时流式传输。在驱动程序版本 v1.2.02 之后,限制修改为一个相机的 RGB 和另一个相机的左 IR 不能同时流式传输。

    • 在驱动程序版本 v1.2.02 之前,存在一个限制,即一个相机的 DEPTH 和另一个相机的左 IR 不能同时流式传输。在驱动程序版本 v1.2.02 之后,限制修改为一个相机的 DEPTH 和另一个相机的右 IR 不能同时流式传输。

    • 两个相机的活动流的组合最大数量限制为四个(满足上述两个条件即可确保合规)。

有关更多已知限制,请参考 Orbbec GMSL 相机的使用限制