Version

5.2.1. 在Orbbec ROS包中使用多个相机

本指南描述了如何在ROS 1环境中同时配置和使用多个Orbbec相机。

5.2.1.1. 前提条件

首先假设您已经安装了Orbbec ROS包。如果没有,请参考Orbbec ROS包安装指南

5.2.1.2. 增加usbfs_memory_mb值(关键步骤)

重要提示:这个步骤对于多相机设置至关重要。如果不增加usbfs_memory_mb值,您可能无法从相机接收任何数据。

对于多相机设置,增加usbfs_memory_mb值是必要的。将其设置为128MB(可根据系统需要调整):

echo 128 | sudo tee /sys/module/usbcore/parameters/usbfs_memory_mb

要使此更改永久生效,请参考此链接

如果您跳过此步骤或将值设置得太低,您的相机可能无法正常工作或根本无法提供任何数据。

5.2.1.3. 识别相机USB端口

列出已连接相机的脚本

使用此bash脚本列出所有已连接的Orbbec设备及其USB端口和序列号:

#!/bin/bash

VID="2bc5"

for dev in /sys/bus/usb/devices/*; do
  if [ -e "$dev/idVendor" ]; then
    vid=$(cat "$dev/idVendor")
    if [ "$vid" == "${VID}" ]; then
      port=$(basename $dev)
      product=$(cat "$dev/product" 2>/dev/null)
      serial=$(cat "$dev/serial" 2>/dev/null)
      echo "Found Orbbec device $product, usb port $port, serial number $serial"
    fi
  fi
done

保存并执行此脚本,或使用ROS命令:

rosrun orbbec_camera list_ob_devices.sh

5.2.1.4. 启动多相机

多相机启动设置

创建一个启动文件(例如,multi_camera.launch),为每个相机配置单独的设置:

<launch>
    <include file="$(find orbbec_camera)/launch/gemini_330_series.launch">
        <arg name="camera_name" value="camera_01"/>
        <arg name="usb_port" value="2-3.4.4.4.1"/>
        <arg name="device_num" value="2"/>
        <arg name="sync_mode" value="free_run"/>
    </include>

    <include file="$(find orbbec_camera)/launch/gemini_330_series.launch">
        <arg name="camera_name" value="camera_02"/>
        <arg name="usb_port" value="2-3.4.4.4.3"/>
        <arg name="device_num" value="2"/>
        <arg name="sync_mode" value="free_run"/>
    </include>
</launch>

运行启动文件

使用以下命令执行启动配置:

roslaunch orbbec_camera multi_camera.launch

5.2.1.5. 为多相机配置TF树

为您的标定相机设置创建TF配置文件(例如,multi_camera_tf.launch):

<launch>
    <node pkg="tf" type="static_transform_publisher" name="camera_01_tf" args="0 0 0 0 0 0 base_link camera_01_link" />
    <node pkg="tf" type="static_transform_publisher" name="camera_02_tf" args="0 0 0 0 0 0 base_link camera_02_link" />
</launch>

运行TF配置:

roslaunch orbbec_camera multi_camera_tf.launch

此设置允许您在ROS环境中同时使用多个Orbbec相机。请记住, 增加usbfs_memory_mb值的第一步对于确保您的相机在多相机设置中正常工作至关重要。