Ubuntu18.04配置ORB_SLAM2框架


一、ORB_SLAM2

ORB_SLAM2是能够用于单目、双目、RGB-D相机的实时SLAM库,可计算相机轨迹和稀疏3D重建(在具有真实比例的双目数据和RGB-D情况下)。 它能够实时检测环路并重新定位摄像机。

ORB_SLAM2框架提供了基于真实道路的 KITTI数据集采用双目、单目摄像头进行SLAM;提供了基于室内的 TUM数据集采用用RGB-D、单目摄像头实现SLAM;也提供了基于四轴飞行器采集的EuRoC数据集采用双目、单目摄像头实现SLAM。

使用该框架需要进行下载全部内容并配置依赖,该项目的Github地址:https://github.com/raulmur/ORB_SLAM2

该框架可以在没有ROS的情况下进行编译,此处主要采用ROS进行配置。

二、配置环境和依赖

根据ORB_SLAM2的官方文档说明,需要现行安装Pangolin、OpenCV、Eigen3、DBoW2 和g2o以及ROS框架。

其中 DBoW2 和g2o两个库文件在ORB_SLAM2的GitHub主目录下的Thirdparty文件夹中自带。
在这里插入图片描述
而ROS框架(Melodic版本)内自带OpenCV-3.2.0库文件也无需另外下载。

1.Pangolin

Pangolin是一个用于3D视觉和导航的轻量级操作库。安装该库文件需要执行如下命令

# 安装boost编译依赖环境
sudo apt-get install libglew-dev
sudo apt-get install libboost-dev libboost-thread-dev libboost-filesystem-dev

# 下载源码
git clone https://github.com/stevenlovegrove/Pangolin.git

cd Pangolin
mkdir build
cd build
cmake -DCPP11_NO_BOOST=1 ..
# 执行编译,这里的参数根据cpu核心数来,8核的就是-j8
make -j4

# 编译完之后,执行安装
sudo make install

2.Eigen3

该库文件的安装直接下载即可:

sudo apt-get install libeigen3-dev

使用该库文件,只需要在CMakeLists.txt 文件中只要包含如下内容即可

include_directories("/usr/include/eigen3")

其中括号内填写该库文件的安装地址,可以采用如下指令进行查找

sudo updatedb
locate eigen3

3.编译ORB_SLAM2

# 下载源码
git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2
# 赋予可执行权限
cd ORB_SLAM2
chmod +x build.sh

由于ORB_SLAM2的官方仅在Ubuntu 12.04、14.04、16.04上进行过测试,所以作者未考虑18.04的兼容性问题。

如若此时直接进行编译会产生报错,因而需要手动在下载的源码内 include/System.h文件中添加一个include头#include <unistd.h>
在这里插入图片描述
在这里插入图片描述
之后再进行编译就不会出现报错。

# 源码目录下
./build.sh

注意:此处的报错是指红色的字句,如下图蓝色的警告可以忽略不计。下图显示编译为100%即表示编译成功。
在这里插入图片描述
如果正常编译完成,则lib目录下会生成libORB_SLAM2.so库,Examples目录下会生成对应的可执行程序 mono_tum、mono_kitti、mono_euroc、 stereo_kitti、 stereo_euroc、 rgbd_tum

在这里插入图片描述
在这里插入图片描述

4.配置编译

可以在执行cmake和make编译命令之前,在根目录的 CMakeLists.txt 文件中(12行)添加以下两行配置,来屏蔽大量的代码过时警告(对编译结果没有影响),方便编译出错时候排查问题。

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-declarations")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated")

三、编译ROS环境

在使用ROS来控制ORB_SLAM2之前,需要先对 mono、 monoAR、 stereo、RGB-D进行编译。这些节点分别针对于单目、单目+AR、双目、深度摄像头进行控制。编译ROS节点主要包括如下几步

1.添加节点路径

首先需要将上述节点的源码路径添加入ROS_PACKAGE_PATH中,具体方式为向主目录中的**.bashrc**文件中加入如下内容,其中 PATH/ORB_SLAM2 替换成你自己的源码路径。

# 编辑.bashrc文件
sudo vi ~/.bashrc

# 在文件最后添加如下内容
source /opt/ros/melodic/setup.bash
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:~/ORB_SLAM2/Examples/ROS

此处,由于我使用的命令行为zsh而非默认的bash,所以我实际进行添加时修改的文件为 .zshrc
在这里插入图片描述
随后,执行如下指令使得上述修改生效,同样此处由于我使用的为zsh,故而重载的为**.zshrc**。

# bash
source ~/.bashrc
# zsh
source ~/.zshrc

在这里插入图片描述

2.编译

完成第一步后即可进行编译了。

# 进入源码根目录
cd ~/ORB_SLAM2
# 赋予脚本可执行权限
chmod +x build_ros.sh
# 编译
./build_ros.sh

此处需要说明,若所用Ubuntu版本为18.04以及之后的,初次编译会产生如下错误,需要进行一些修改再进行编译。
在这里插入图片描述

解决此问题需要打开 源码根目录下的Examples/ROS/ORB_SLAM2/CMakeLists.txt文件,并在第58行添加如下内容

-lboost_system

在这里插入图片描述
随后就可以成功编译了。
在这里插入图片描述

总结

至此,有关Ubuntu18.04进行配置ORB_SLAM2环境的步骤就全部完成了。

  • 3
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值