跑自己的摄像头ORB-SLAM2

2019年5月15日
买的罗技c270摄像头回来了,测试一下ORB-SLAM2

1 开启ROS下的摄像头

1.1 创建工作空间

$ mkdir -p ~/usb_cam_catkin_ws/src
$ cd ~/usb_cam_catkin_ws/src

(注:符号 $之后的命令均在Ubuntu系统的终端下输入)

1.2 下载usb_cam包

$ git clone https://github.com/bosch-ros-pkg/usb_cam.git usb_cam

1.3 编译工作空间

$ cd ..
$ catkin_make
$ source devel/setup.bash

1.4 将摄像头的连接线插入电脑的USB接口

如果摄像头上的指示灯呈黄色,并常亮几秒后熄灭,表明连接成功。

此外,可以在终端输入命令 lsusb,查询是否有新设备接入。如下图所示,Bus001 Device 006: ID 046d:082b Logitech, Inc. Webcam C170表示插入的摄像头。
跑自己的摄像头ORB-SLAM2_第1张图片

1.5 打开usb_cam-test.launch文件,设置摄像头对应的设备号

usb_cam-test.launch文件默认如下图所示。
跑自己的摄像头ORB-SLAM2_第2张图片
此文件可以设置视频设备号、图像大小、像素格式等参数,这里主要设置视频设备号。

一般情况下,/dev/video0表示笔记本电脑自带的摄像头,外接设备号为/dev/video1,依次递增。
跑自己的摄像头ORB-SLAM2_第3张图片
特殊情况下,并不遵循这种规则,可以在/dev文件下搜索video进行验证,从插入摄像头后新增加的文件便可以得到设备号,如下图所示。

1.6 启动usb_cam节点

跑自己的摄像头ORB-SLAM2_第4张图片

roslaunch usb_cam usb_cam-test.launch

1.7 摄像头开启成功

我自己的命令截图如下
跑自己的摄像头ORB-SLAM2_第5张图片

2.编译ROS下的ORB-SLAM2

2.1

ORB-SLAM默认订阅的话题为/camera/image_raw,而usb_cam节点发布的话题为/usb_cam/image_raw,因此需要在ros_mono.cc中修改订阅的话题,这点要特别注意。因为源文件的更改必须要重新编译,这非常耗时。
这里修改了catkin_ws/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2/src里的ros_mono.cc文件,以后跑数据集的话要改回来

$ chmod +x build_ros.sh
$ ./build_ros.sh

跑自己的摄像头ORB-SLAM2_第6张图片

2.2 运行单目节点

运行单目节点前要先将摄像头接入电脑,然后启动usb_cam节点。

$ rosrun ORB_SLAM2 Mono PATH_TO_VOCABULARY PATH_TO_SETTINGS_FILE

两个路径,一个词袋文件,一个.yaml文件(我跑的用的是EuRoC.yaml,应该自己标定相机参数,自己设置.yaml文件才好)
跑自己的摄像头ORB-SLAM2_第7张图片
跑自己的摄像头ORB-SLAM2_第8张图片

你可能感兴趣的:(跑自己的摄像头ORB-SLAM2)