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