ORB_SLAM安装以及运行实例

基于Ubuntu18.04的ORB_SLAM2包的安装以及运行实例

一、ORB_SLAM概念

ORB-SLAM是由Raul Mur-Artal,J. M. M. Montiel和Juan D. Tardos于2015年发表在IEEE Transactions on Robotics。ORB-SLAM是一个基于特征点的实时单目SLAM系统,在大规模的、小规模的、室内室外的环境都可以运行。该系统对剧烈运动也很鲁棒,支持宽基线的闭环检测和重定位,包括全自动初始化。该系统包含了所有SLAM系统共有的模块:跟踪(Tracking)、建图(Mapping)、重定位(Relocalization)、闭环检测(Loop closing)。由于ORB-SLAM系统是基于特征点的SLAM系统,故其能够实时计算出相机的轨线,并生成场景的稀疏三维重建结果。ORB-SLAM2在ORB-SLAM的基础上,还支持标定后的双目相机和RGB-D相机。

二、ORB_SLAM的安装过程

1、安装基础工具

sudo apt-get install gcc
sudo apt-get install git
sudo apt-get install g++
sudo apt-get install cmake

2、安装Pangolin

(1)、需要先安装依赖

 sudo apt-get install libpython2.7-dev
 sudo apt-get install libglew-dev
 sudo apt-get install libboost-dev libboost-thread-dev libboost-filesystem-dev

在这里插入图片描述
在这里插入图片描述
(2)、从github上下载Pangolin包,就会使用到前面安装的git工具

git clone https://github.com/stevenlovegrove/Pangolin.git

在这里插入图片描述
(3)、进入Pangolin包下面,进行编译(如果这么make -j卡死的话那就换成make吧!)

cd Pangolin
mkdir build
cd build
cmake ..
make -j

在这里插入图片描述

三、安装opencv

(1)、最好是从windows端下载了过后在复制到虚拟机中,之后在解压在/home目录下
在这里插入图片描述
(2)、编译opencv(几线程编译根据自己电脑情况吧,有些会卡死)

cd opencv-3.4.1
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
sudo make -j4(sudo make -j8)

(3)、安装opencv

sudo make install

在这里插入图片描述
(4)、配置opencv路径

sudo gedit /etc/ld.so.conf.d/opencv.conf

在这里插入图片描述

/usr/local/lib

在这里插入图片描述
使路径生效

sudo ldconfig  

(5)、添加到环境变量中

sudo gedit /etc/bash.bashrc

在这里插入图片描述
在文末加入以下代码

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig  
export PKG_CONFIG_PATH  

在这里插入图片描述
使环境变量生效

source /etc/bash.bashrc 

在这里插入图片描述

四、安装Eigen

sudo apt-get install libeigen3-dev

在这里插入图片描述

五、ORB_SLAM2的安装以及编译

(1)、从github上下载包(会很容易卡在252,卡在那里就ctrl+c停止在重新下载吧)

git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2

在这里插入图片描述
(2)、将ORB_SLAM2包放入ros空间下
在这里插入图片描述
(3)进行ORB_SLAM2包的编译

cd ORB_SLAM2
chmod +x build.sh
./build.sh

在这里插入图片描述
如果最后成功的话会是这样(会建立几个文件)
在这里插入图片描述
完成以上步骤就可以进行ORB_SLAM2的单目运行了,不过还需要去下载一个数据集才可,放在后面和采集摄像头信息一起说叭!

(4)在ROS环境下进行编译(为了后面采集摄像头做准备)

cd catkin_ws/src/ORB_SLAM2

添加环境变量

gedit ~/.bashrc
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:~/zz/catkin_ws/src/ORB_SLAM2/Examples/ROS

在这里插入图片描述
进行编译

chmod +x build_ros.sh
./build_ros.sh

编译成功过后会是这样(会生成几个文件,文末会有遇到的问题及解决方法)
在这里插入图片描述

六、数据集的下载

从这个网站下载http://vision.in.tum.de/data/datasets/rgbd-dataset/download
下载后解压在/home目录下
在这里插入图片描述
将其移动到ROS工作空间下的ORB_SLAM文件夹下去
在这里插入图片描述

七、单目实例的运行

cd catkin_ws/src/ORB_SLAM2
./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUM1.yaml Data/rgbd_dataset_freiburg1_xyz/

运行出来的效果
在这里插入图片描述

八、摄像头的单目仿真

首先需要安装摄像头奥,因为之前在做前面的时候摄像头就已经安装好了,因此此处就不做介绍奥!
首先启动摄像头

恩,注意这里是不用运行roscore的,运行roslaunch的时候会自动启动roscore节点

roslaunch usb_cam usb_cam-test.launch

在这里插入图片描述
查看摄像头启动过后发布了那些话题

rostopic list

在这里插入图片描述
然后需要修改.cc文件下订阅的摄像头
在这里插入图片描述
在这里插入图片描述
保存过后再次编译一下

cd catkin_ws/src/ORB_SLAM
./build_ros.sh

运行这段代码

 rosrun ORB_SLAM2 Mono /home/xx/catkin_ws/src/ORB_SLAM2/Vocabulary/ORBvoc.txt /home/xxx/catkin_ws/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2/Asus.yaml

会出现这样
在这里插入图片描述

九、遇到的问题

1、./build.sh编译的问题

在这里插入图片描述
打开LoopClosing.h将

typedef map<KeyFrame*,g2o::Sim3,std::less<KeyFrame*>,
        Eigen::aligned_allocator<std::pair<const KeyFrame*, g2o::Sim3> > > KeyFrameAndPose;

改为

typedef map<KeyFrame*,g2o::Sim3,std::less<KeyFrame*>,
        Eigen::aligned_allocator<std::pair<KeyFrame *const, g2o::Sim3> > > KeyFrameAndPose;

在这里插入图片描述
再重新编译即可

2、 error: ‘usleep’ was not declared in this scope

在这里插入图片描述
遇到这种错误的话,一般在对应的对应中加入头文件

#include <unistd.h>

遇到了这种错误都在对应的文件中加入头文件,在重新编译即可

  • 0
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值