摘要(假装这是论文):由于最近在做orb_slam2相关,将这几天的实验过程总结记录,本文主要为傻瓜式记录运行代码的过程,以及中间遇到的问题及解决方法,截止至发文前,只是把单目Mono的功能实现,暂时还未对其进行细致的分析.其实CSDN中已经有很多其他大神对ORB SLAM的程序运行进行了解读,本次实验也是在众多资料的帮助下完成的.
准备工作
硬件准备
1.装有ROS Indigo和装有OpenCv的ubuntu 14.04
3.USB 摄像头,TB来的,100度广角,640*480,30帧
环境准备
安装几个依赖项和库
Boost
sudo apt-get install libboost-all-dev
General Graph Optimization :g2o
关于g2o的详细解释可以看高博的blog:http://www.cnblogs.com/gaoxiang12/p/5304272.html
为了编译g2o需要安装如下三个库
sudo apt-get install libblas-dev
sudo apt-get install liblapack-dev
sudo apt-get install libeigen3-dev
代码准备
1.由于使用USB摄像头作为图像输入,需要将图像信息作为topic发送出去,ROS官网提供了usb_cam的package代码,从github上下usb_cam的代码,下载链接:https://github.com/bosch-ros-pkg/usb_cam
2.ORB_SLAM的代码下载: https://github.com/raulmur/ORB_SLAM2
工程建立
建立一个catkin_ws 工程
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/
catkin_make
将代码拷到src中
编译usb_cam
mkdir build
cd build
cmake ..
make
编译成功后可先测试一下usb摄像头
首先开个新的终端,运行roscore(如果显示命令没有找到就说明的你没有source source /opt/ros/indigo/setup.bash 我是直接添加到了根目录文件中的.bashrc中了,详情请下载<机器人操作系统浅析>百度文库中可搜到,见Page16)
在运行该节点之前,需要先配置一下节点参数,打开src/usb_cam-develop/launch文件中的的launch文件,我这里只需要该设备号即可,笔记本电脑的video0一般是网络摄像头,插入usb摄像头一般是video1,若想看usb摄像头是哪个端口号,可cd到根目录中的dev文件夹下查看.
完成之后再开一个终端, 运行
roslaunch usb_cam usb_cam-test.launch
运行后,正常的情况下可打开摄像头,看到新建窗口将