一、环境说明
-
系统:Ubuntu + ROS(Melodic / Noetic 均适用)
-
相机型号:
-
Orbbec Dabai DW2
-
Orbbec Dabai Max Pro
-
-
驱动包:orbbec_camera 官网有ROS1和ROS2的驱动包,下载即可
-
连接方式:USB
本文记录一次实际调试 两台 Orbbec 相机同时工作 的过程,包含单相机验证、多相机启动、话题检查、RViz 显示以及 USB 带宽相关问题的处理。
二、单相机分别启动测试
在进行多相机启动之前,必须确保每一台相机都可以单独正常工作。
1. 启动 Dabai DW2
roslaunch orbbec_camera dabai_dw2.launch
2. 启动 Dabai Max Pro
roslaunch orbbec_camera dabai_max_pro.launch
检查点:
-
ROS 节点是否正常启动
-
是否有 depth / image 相关话题
-
无 USB 或设备占用错误
三、同时启动双相机(multi_camera)
当单相机测试无问题后,使用多相机 launch 文件统一启动。
roslaunch orbbec_camera multi_camera.launch
四、检查 ROS 话题是否正确
启动后,查看系统中已发布的话题:
rostopic list
预期输出应包含类似如下结构(只展部分,输出包含ob_camera_01和02):
/ob_camera_01
/ob_camera_02
/ob_camera_01/depth/image_raw
/ob_camera_02/depth/image_raw
说明两台相机已经通过不同 namespace 成功区分。
五、使用 RViz 查看深度图像
1. 启动 RViz
rviz
2. 添加第一台相机深度图
Add → By topic → /ob_camera_01 → depth → image_raw → Image
3. 添加第二台相机深度图
Add → By topic → /ob_camera_02 → depth → image_raw → Image
此时可以同时看到两路深度画面,验证多相机数据是否正常发布。
六、查看相机型号及 USB 端口信息
在多相机场景中,USB 端口绑定是关键。通过以下命令查看当前连接的设备信息:
rosrun orbbec_camera list_device_node
输出内容通常包含:
-
相机型号
-
Serial Number
-
USB Port(如 5-1.1、2-1.1.1)
这些信息将用于 multi_camera.launch 中的参数配置。
七、multi_camera.launch 关键配置说明
1. 核心修改点
-
camera1_usb_port
-
camera2_usb_port
-
launch 文件需与具体相机型号匹配
2. 示例 launch 文件
<launch>
<arg name="camera_name" default="ob_camera"/>
<arg name="3d_sensor" default="gemini_330_series"/>
<arg name="camera1_prefix" default="01"/>
<arg name="camera2_prefix" default="02"/>
<arg name="camera1_usb_port" default="5-1.1"/>
<arg name="camera2_usb_port" default="2-1.1.1"/>
<arg name="device_num" default="2"/>
<include file="$(find orbbec_camera)/launch/dabai_dcw2.launch">
<arg name="camera_name" value="$(arg camera_name)_$(arg camera1_prefix)"/>
<arg name="usb_port" value="$(arg camera1_usb_port)"/>
<arg name="device_num" value="$(arg device_num)"/>
</include> <include file="$(find orbbec_camera)/launch/dabai_max_pro.launch">
<arg name="camera_name" value="$(arg camera_name)_$(arg camera2_prefix)"/>
<arg name="usb_port" value="$(arg camera2_usb_port)"/>
<arg name="device_num" value="$(arg device_num)"/>
</include>
</launch>
3. 注意事项
-
不同型号必须引用对应 launch 文件
-
USB 端口必须唯一且与 list_device_node 输出一致
-
camera_name + prefix 决定最终 ROS namespace
八、USB 带宽与缓存问题
在多相机高分辨率 / 高帧率场景下,USB 带宽和缓存可能成为瓶颈。
1. 查看当前 USB 缓存大小
cat /sys/module/usbcore/parameters/usbfs_memory_mb
示例输出:
16
2. 调整 USB 缓存大小
该值可以设置为 16 的倍数,例如:
sudo sh -c 'echo 64 > /sys/module/usbcore/parameters/usbfs_memory_mb'
调整后可有效缓解多相机同时工作时的丢帧或数据异常问题。
九、总结
本次双相机调试的关键点包括:
-
单相机先验证,再进行多相机整合
-
使用 USB port 而非 serial number 区分设备
-
launch 文件中 namespace 与型号必须明确
-
多相机场景下需关注 USB 带宽与缓存配置
网硕互联帮助中心




评论前必须登录!
注册