最近由于科研的需要,需要在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中发布的话题也只有一个相机的话题信息,如下:
同时使用两个D435i相机并发布各自对应的话题:
第一步:查看相机的序列号
查看两个相机各自的serial number:
方法1:从各自的D435i盒子或相机机身上可以找到序列号。
方法2:通过运行相机来获取序列号。
1.1 查看第一个相机的序列号:
打开第一个终端,插入第一个相机,运行以下指令:
roslaunch realsense2_camera rs_rgbd.launch
图中所示serial number为843112070288,记录下这个number。
1.2 查看第二个相机的序列号:
把第一个终端ctrl c 掉,拔出第一个相机,插入第二个相机,重新打开另一个终端,再次输入指令:
roslaunch realsense2_camera rs_rgbd.launch
从图中可以看出,第二个相机的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两种话题,我们就可以分别根据自己的需求进行订阅了。