Ubuntu ROS上同时使用两个D435i相机并发布话题

时光总嘲笑我的痴心妄想 提交于 2020-09-29 11:01:01

最近由于科研的需要,需要在Ubuntu 16.04(ROS)同时使用两个D435i相机,并使其各自发布各自的话题信息,供我不同算法的需要。
但是在网上找遍了也没有找到类似的教程,于是去了Intel官网去找找有没有解决办法,找到了一篇同时使用两个D400的教程,但是没有D435i的。
https://www.intelrealsense.com/how-to-multiple-camera-setup-with-ros/

所以只能自己摸索着去尝试了。现在我把两个D435i相机都接进Ubuntu系统里(均使用USB3.0接口),但是直接在终端上运行打开相机的指令:

roslaunch realsense2_camera rs_rgbd.launch

默认只会使用两个中的一个。在ROS中发布的话题也只有一个相机的话题信息,如下:
单相机时的 topic list

同时使用两个D435i相机并发布各自对应的话题:

第一步:查看相机的序列号

查看两个相机各自的serial number:

方法1:从各自的D435i盒子或相机机身上可以找到序列号。
方法2:通过运行相机来获取序列号。

1.1 查看第一个相机的序列号:

打开第一个终端,插入第一个相机,运行以下指令:

roslaunch realsense2_camera rs_rgbd.launch

查看第一个相机的serial number
图中所示serial number为843112070288,记录下这个number。

1.2 查看第二个相机的序列号:

把第一个终端ctrl c 掉,拔出第一个相机,插入第二个相机,重新打开另一个终端,再次输入指令:

roslaunch realsense2_camera rs_rgbd.launch

第二个相机的serial number
从图中可以看出,第二个相机的number为943222073327
记录好这个号码。

第二步:启动D435i相机

此时,将两个D435i相机都插到电脑上,注意:使用的USB线以及电脑的USB口都必须保证是USB 3.0,否则会出问题。

2.1 启动第一个相机

首先,打开一个终端,运行以下指令:

roslaunch realsense2_camera rs_rgbd.launch camera:=cam_1 serial_no:=843112070288

注意:camera = cam_1代表我将要启动第一个相机,且发布的话题以cam_1开头。最后面这串数字843112070288为我的第一个相机的serial number,即第一步中记录的第一个相机的号码,你在配置时要换成你自己对应的相机的号码。

运行完之后就已经启动了第一个D435i相机。

2.2 启动第二个相机

再另外打开一个终端,运行以下指令:

roslaunch realsense2_camera rs_rgbd.launch camera:=cam_2 serial_no:=943222073327

运行完之后就启动了第二个D435i相机。

此时两个相机已经同时运行在我们的ROS里面了,我们来查看一下此时的ROS上的话题发布情况:
重新打开一个终端,输入以下指令:

rostopic list

在这里插入图片描述
在这里插入图片描述

此时我们可以看到,发布的话题中分为cam_1和cam_2两种话题,我们就可以分别根据自己的需求进行订阅了。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!