Ubuntu16/18.04下编译安装OpenVSLAM(最新版)

您所在的位置:网站首页 orbslam3安装 Ubuntu16/18.04下编译安装OpenVSLAM(最新版)

Ubuntu16/18.04下编译安装OpenVSLAM(最新版)

2023-09-16 20:36| 来源: 网络整理| 查看: 265

文章参考本文链接:https://blog.csdn.net/xiangxianghehe/article/details/90600396

由于版本原因略有改动

简介

5月20日,日本先进工业科技研究所(National Institute of Advanced Industrial Science and Technology )开源了一套视觉SLAM算法:OpenVSLAM。

开源地址: https://github.com/xdspacelab/openvslam

开源才一周star数目已逾800。博主在自己的Ubuntu18.04虚拟机下尝试了一下,无论是代码风格还是运行效果,感觉比ORB-SLAM2优秀很多,感觉会是以后初学者入门视觉SLAM的首选框架,墙裂推荐。

OpenVSLAM是一套单目、立体、RGB-D视觉SLAM系统,其主要特点:

兼容多种相机类型,并可以轻松定制兼容其他类型相机; 可以存储和加载创建的地图,然后OpenVSLAM可以基于预先构建的地图定位新图像; 系统完全模块化的; 提供了一些代码片段来理解该系统的核心功能。

OpenVSLAM基于具有稀疏特征的间接SLAM算法构建的,例如ORB-SLAM,ProSLAM和UcoSLAM。

OpenVSLAM的最引人注意的特性是系统可以处理使用多种相机模型捕获的图像,例如透视相机、鱼眼相机和equirectangular相机(环绕平行多相机系统)。如果需要,用户可以轻松实现支持其他的相机模型(例如双鱼眼、catadioptric等)。

官方提供了较详细的文档: https://openvslam.readthedocs.io/en/master/

简单的教程: https://openvslam.readthedocs.io/en/master/simple_tutorial.html

以及使用范例: https://openvslam.readthedocs.io/en/master/example.html

它可以帮助研究SLAM算法的同学很方便地在三大数据集:

    KITTI Odometry dataset、     EuRoC MAV dataset、     TUM RGBD dataset     进行算法性能评测。

该库使用 BSD 2-Clause License,也就是允许商用,但要声明版权方。

感谢开发者~ 欢迎大家参考、贡献代码。 依赖

GCC >= 4.8 (必须支持C++11特性) Eigen >= 3.3.0 g2o SuiteSparse DBoW2 : 必须使用作者的修改版 https://github.com/shinsumicco/DBoW2. yaml-cpp >= 0.6.0 OpenCV >= 3.4.0 0.依赖安装

sudo apt-get update sudo apt-get --no-install-recommends sudo apt-get build-essential pkg-config cmake git wget curl unzip sudo apt-get libatlas-base-dev libsuitesparse-dev sudo apt-get libgtk-3-dev sudo apt-get ffmpeg sudo apt-get libavcodec-dev libavformat-dev libavutil-dev libswscale-dev libavresample-dev sudo apt-get  libgoogle-glog-dev libgflags-dev sudo apt-get install libopenblas-dev sudo apt-get install --no-install-recommends libboost1.58-all-dev sudo apt-get install libx11-dev sudo apt-get install libgl1-mesa-dev sudo apt-get install libglu1-mesa-dev sudo apt-get install freeglut3-dev sudo apt-get install doxygen wget https://nchc.dl.sourceforge.net/project/glew/glew/2.1.0/glew-2.1.0.tgz --no-check-certificate tar -xzvf glew-2.1.0.tgz cd glew-2.1.0/ make -j2 sudo make install sudo ln -s /usr/lib64/libGLEW.so.2.1 /usr/lib/libGLEW.so.2.1 sudo ldconfig -v

1. Eigen安装(最新3.3.7)

wget https://github.com/eigenteam/eigen-git-mirror/archive/3.3.7.tar.gz tar -xzvf 3.3.7.tar.gz mv eigen-git-mirror-3.3.7/ eigen-3.3.7/ cd eigen-3.3.7/ mkdir build && cd build cmake \     -DCMAKE_BUILD_TYPE=Release \     -DCMAKE_INSTALL_PREFIX=/usr/local \     .. make -j2 sudo make install sudo ldconfig -v

2. 安装g2o

git clone https://github.com/RainerKuemmerle/g2o.git cd g2o mkdir build && cd build cmake \     -DCMAKE_BUILD_TYPE=Release \     -DCMAKE_INSTALL_PREFIX=/usr/local \     -DCMAKE_CXX_FLAGS=-std=c++11 \     -DBUILD_SHARED_LIBS=ON \     -DBUILD_UNITTESTS=OFF \     -DBUILD_WITH_MARCH_NATIVE=ON \     -DG2O_USE_CHOLMOD=ON \     -DG2O_USE_CSPARSE=ON \     -DG2O_USE_OPENGL=OFF \     -DG2O_USE_OPENMP=ON \     .. make -j2 sudo make install sudo ldconfig -v

3.安装OpenCV3

wget -q https://github.com/opencv/opencv/archive/4.1.0.zip unzip -q 4.1.0.zip rm -rf 4.1.0.zip cd opencv-4.1.0 mkdir -p build && cd build cmake \     -DCMAKE_BUILD_TYPE=Release \     -DCMAKE_INSTALL_PREFIX=/usr/local \     -DENABLE_CXX11=ON \     -DBUILD_DOCS=OFF \     -DBUILD_EXAMPLES=OFF \     -DBUILD_JASPER=OFF \     -DBUILD_OPENEXR=OFF \     -DBUILD_PERF_TESTS=OFF \     -DBUILD_TESTS=OFF \     -DWITH_EIGEN=ON \     -DWITH_FFMPEG=ON \     -DWITH_OPENMP=ON \     .. make -j2 sudo make install sudo ldconfig -v

4.安装Pangolin

git clone https://github.com/stevenlovegrove/Pangolin.git cd Pangolin mkdir build && cd build cmake \     -DCMAKE_BUILD_TYPE=Release \     -DCMAKE_INSTALL_PREFIX=/usr/local \     .. make -j sudo make install sudo ldconfig -v

5.安装作者自己的DBoW2

git clone https://github.com/shinsumicco/DBoW2.git cd DBoW2 mkdir build && cd build cmake \     -DCMAKE_BUILD_TYPE=Release \     -DCMAKE_INSTALL_PREFIX=/usr/local \     .. make -j2 sudo make install sudo ldconfig -v

6.安装yaml-cpp

注意yaml-cpp可能安装出错,这里需要在CMakeLists.txt开启fPIC选项,即需要把174行改为:

set(yaml_cxx_flags "-Wall ${GCC_EXTRA_OPTIONS} -fPIC -pedantic -Wno-long-long ${yaml_cxx_flags}")

我发现在新版本的 代码中应该是搜索和改为

 $

然后依次执行以下命令:

git clone https://github.com/jbeder/yaml-cpp cd yaml-cpp mkdir build && cd build cmake \     -DCMAKE_BUILD_TYPE=Release \     -DCMAKE_INSTALL_PREFIX=/usr/local \     .. make -j2 sudo make install sudo ldconfig -v

  7.目前的代码需要 安装cuda-9.0

至此依赖已经安装完毕,编译安装主项目即可:

8. 编译主项目

https://github.com/xdspacelab/openvslam cd openvslam git submodule init git submodule update mkdir build && cd build cmake \     -DBUILD_WITH_MARCH_NATIVE=OFF \     -DUSE_PANGOLIN_VIEWER=ON \     -DUSE_STACK_TRACE_LOGGER=ON \     -DBOW_FRAMEWORK=DBoW2 \     -DBUILD_TESTS=OFF \     .. make -j2

demo 运行示例

这里以EuRoC数据集为例跑下demo: 文件准备

一. 首先下载orb_vocab.zip,解压得到字典文件orb_vocab.dbow2。

二. 下载EuRoC数据集,解压得到mav0文件夹。

三. 进入到openvslam主项目的build文件夹下,执行命令:

 ./run_euroc_slam \     -v /path/to/orb_vocab/orb_vocab.dbow2 \     -d /path/to/EuRoC/MAV/mav0/ \     -c ../example/euroc/EuRoC_mono.yaml

我的是

 ./run_euroc_slam \ -v /home/amax/openvslam_tools/orb_vocab/orb_vocab.dbow2 \ -d /home/amax/openvslam_tools/V1_03_difficult/mav0 \ -c ../example/euroc/EuRoC_stereo.yaml

其中把/path/to/orb_vocab/orb_vocab.dbow2和/path/to/EuRoC/MAV/mav0/换成你本机上orb_vocab.dbow2和mav0文件夹的绝对路径即可。然后就可以看到如下可视化效果:slam

   



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3