ORB_SLAM2功能包的构建和在ROS中的应用

ORB_SLAM2简介

ORB_SLAM2官方给出的简介是Real-Time SLAM for Monocular, Stereo and RGB-D Cameras, with Loop Detection and Relocalization Capabilities。
利用单目,双目和RGB-D深度摄像头的实时SLAM,具有环路检测和重定位功能

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

安装构建

  1. ORB_SLAM2源码包下载
mkdir orb_slam2
cd orb_slam2
git clone https://github.com/raulmur/ORB_SLAM2.git

2.安装依赖库

sudo apt-get install libboost-all-dev libblas-dev liblapack-dev

接下来需要安装Eigen3,可以从官网选择下载,也可以直接点击此处给出的源码包链接直接下载。下载后解压源码包并且安装。

tar -xzvf eigen-eigen-b3f3d4950030.tar.gz -C ./
cd eigen-eigen-b3f3d4950030
mkdir build
cd build
cmake .. & make
sudo make install
  1. 编译g2o
cd ~/orb_slam2/ORB_SLAM2/Thirdparty/g2o
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make
  1. 编译DBoW2
cd ~/orb_slam2/ORB_SLAM2/Thirdparty/DBoW2
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make
  1. 编译Pangolin
mkdir pangolin
cd pangolin
git clone https://github.com/stevenlovegrove/Pangolin.git
cd Pangolin
mkdir build
cd build
cmake ..
cmake --build .
  1. 编译ORB_SLAM2
cd ~/orb_slam2/ORB_SLAM2
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make

注意在编译过程中可能会遇到图片中的这种错误,大家只要在ORM_SLAM2的源码目录下使用命令grep -rn "usleep",将列出的文件中在头文件的地方加入#include <unistd.h>就不会出现这种问题了


报错信息
  1. 编译功能包
export ROS_PACKAGE=${ROS_PACKAGE_PATH}:~/orb_slam2/ORB_SLAM2/Examples/ROS
./build_ros.sh
source Examples/ROS/ORB_SLAM2/build/devel/setup.bash

在编译过程中会出现如下报错


报错信息

需要我们在Examples/ROS/ORB_SLAM2目录下修改CMakeLists.txt文件,添加依赖库-lboost_system,再次进行编译,就正常了。


添加依赖库

ORB_SLAM2功能包使用

  1. 配置环境变量
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:~/orb_slam2/ORB_SLAM2/Examples/ROS
source ~/orb_slam2/ORB_SLAM2/Examples/ROS/ORB_SLAM2/build/devel/setup.bash
  1. 启动功能包
    可以通过下载录制好的数据包来进行测试,下载地址。在启动Mono节点时,还应该输入两个必要的参数:
    (1)PATH_TO_VOCABULARY:算法参数文件。在ORB_SLAM2/Vocabulary中,将其中的压缩包解压即可。
    (2)PATH_TO_SETTINGS_FILE:相机参数设置文件,需要对camera进行标定,或者使用用例的配置文件,
    Examples/ROS/ORB_SLAM2/Asus.yaml。
roscore
rosrun ORB_SLAM2 Mono Vocabulary/ORBvoc.txt Examples/ROS/ORB_SLAM2/Asus.yaml
rosbag play rgbd_dataset_freiburg1_desk.bag /camera/rgb/image_color:=/camera/image_raw
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 导语 毫无疑问,SLAM是当前最酷炫的技术.在这里,我给大家分享一些在学习SLAM的过程中的一些资料与方法(不断更...
    飞天小小猫阅读 2,708评论 1 38
  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AGI阅读 16,019评论 3 119
  • 个人为了看的方便没有广告,转载自泡泡机器人:https://www.sohu.com/a/161346283_71...
    Maxsium阅读 39,094评论 0 8
  • 周一得到消息:同事L的父亲去世,下午大家同去殡仪馆进行悼唁。殡仪馆大厅的屏幕上都是逝者们的信息,L的父亲是最高...
    文小溪阅读 413评论 0 1
  • 有你的季节, 我用眺望把心情摊开, 让夕阳点燃未来的热情。 有你的季节, 我用登高来充实自己, 让枕边有快乐的闭眼...
    海红果阅读 301评论 0 1