5.2.4. GMSL 相机

本节介绍如何在 OrbbecSDK_ROS2 中使用 GMSL 相机。目前仅支持 Gemini 335Lg 和 Gemini 345Lg 设备,其他 GMSL 设备将在不久的将来得到支持。

您可以在 example 中找到示例使用代码。

5.2.4.1. 单个 GMSL 相机

GMSL 相机在 OrbbecSDK_ROS2 中的使用与通过 USB 的 Gemini 330 系列相机相同。

ros2 launch orbbec_camera gemini_330_gmsl.launch.py

5.2.4.2. 多个 GMSL 相机

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

ros2 run orbbec_camera list_devices_node

例如,获得的 gmsl 相机 usb_portgmsl2-1

转到 multi_gmsl_camera.launch.py 文件并更改 usb_port

ros2 launch orbbec_camera multi_gmsl_camera.launch.py

注意:默认情况下,multi_gmsl_camera.launch.py 仅启动 color 和 depth。如果您想启动其他传感器,请转到 camera_secondary_params.yaml 进行修改。

5.2.4.3. 多个 GMSL 相机同步

首先,请查看如何使用 multi_camera_synced

此外,GMSL 多相机同步不需要 Multi-Camera Sync Hub Pro,因此无需设置 primary 模式。每个 GMSL 相机都是 secondary

额外的参数设置

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

  • enable_gmsl_trigger:启用硬件 soc 触发。

运行启动文件

请参考 multi_gmsl_camera_synced.launch.py 中的配置。

ros2 launch orbbec_camera multi_gmsl_camera_synced.launch.py

注意:默认情况下,multi_gmsl_camera_synced.launch.py 仅启动 color 和 depth。如果您想启动其他传感器,请转到 camera_secondary_params.yaml 进行修改。

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 相机的使用限制