本文在前文已经安装好ORB_SLAM2后,开始尝试在Ubuntu16.04虚拟机上使用USB 摄像头运行ORB_SLAM2,从而对现实场景建立特征点地图。
此处默认为ORB_SLAM2已经可以成功编译并运行
1.进入文件夹编译
cd ORB_SLAM2
chmod +x build.sh
./build.sh
2.如果要用 ROS 模式跑 demo,还要额外编译 ROS 文件
首先将 ROS 所在目录加入 ROS_PACKAGE_PATH 环境变量中,具体操作是将下述命令添加到 .bashrc 文件末尾(别忘了替换下述命令中的 ):
sudo gedit ~/.bashrc
#在最后一行输入
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:(ORB_SLAM的存放目录)/ORB_SLAM2/Examples/ROS
#完了后刷新bash:
source ~/.bashrc
chmod +x build_ros.sh
./build_ros.sh
3.整个系统的编译部分就完成了,下边在普通模式和 ROS 模式下分别运行 demo.
如果编译过程中出现了报错,则可查看如下链接:
乌班图安装ORB-SLAM2并使用USB摄像头运行
在虚拟机的可移动设备处连接电脑的USB摄像头
cd catkin_ws/src
git clone https://github.com/bosch-ros-pkg/usb_cam.git
cd ..
catkin_make
mkdir build
cd build
cmake ..
make
#编译好之后,添加编译好的文件到环境变量
source devel/setup.bash
输入下方指令,即可测试USB摄像头是否安装成功:
roscore
roslaunch usb_cam usb_cam-test.launch
输入指令后的Linux截图后,USB摄像头安装成功如下图所示:
ORB-SLAM2默认订阅的话题为/camera/image_raw,而usb_cam节点发布的话题为/usb_cam/image_raw,因此需要在ORB_SLAM2/src/ros_mono.cc中修改订阅的话题
cd catkin_ws/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2/src
gedit ros_mono.cc
做如下的修改:
此时因为源文件的更改必须要重新编译文件,首先要删除掉ORB_SLAM2中的build文件夹,Thirdparty中两个库的build文件夹,之后再运行下方代码重新编译,否则会一直显示 waiting for image。
chmod +x build.sh
./build.sh
chmod +x build_ros.sh
./build_ros.sh
运行单目节点前要先将摄像头接入电脑,然后启动usb_cam节点。
roslaunch usb_cam usb_cam-test.launch
在ORB_SLAM2文件夹下另开终端运行:
rosrun ORB_SLAM2 Mono Vocabulary/ORBvoc.txt Examples/Monocular/TUM1.yaml