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表示插入的摄像头。
1.5 打开usb_cam-test.launch文件,设置摄像头对应的设备号
usb_cam-test.launch文件默认如下图所示。
此文件可以设置视频设备号、图像大小、像素格式等参数,这里主要设置视频设备号。
一般情况下,/dev/video0表示笔记本电脑自带的摄像头,外接设备号为/dev/video1,依次递增。
特殊情况下,并不遵循这种规则,可以在/dev文件下搜索video进行验证,从插入摄像头后新增加的文件便可以得到设备号,如下图所示。
1.6 启动usb_cam节点
roslaunch usb_cam usb_cam-test.launch
1.7 摄像头开启成功
我自己的命令截图如下
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
2.2 运行单目节点
运行单目节点前要先将摄像头接入电脑,然后启动usb_cam节点。
$ rosrun ORB_SLAM2 Mono PATH_TO_VOCABULARY PATH_TO_SETTINGS_FILE
两个路径,一个词袋文件,一个.yaml文件(我跑的用的是EuRoC.yaml,应该自己标定相机参数,自己设置.yaml文件才好)