openvslam开发(一)ubuntu1804安装openvslam

参考教程

官网安装

https://openvslam.readthedocs.io/en/master/installation.html

参考博客

https://blog.csdn.net/qianbin3200896/article/details/107894029

 

安装过程

安装前先到最后看下可能遇到的问题。

个人前提

已经装过显卡驱动,装过cuda10.1(非必要),装过opencv4(本版也可以是3)

电脑 联想y7000 

显卡 1050TI

系统 ubuntu18.04.5

依赖库

0.依赖安装

sudo apt upgrade -y --no-install-recommends
# basic dependencies
sudo apt install -y build-essential pkg-config cmake git wget curl unzip
# g2o dependencies
sudo apt install -y libatlas-base-dev libsuitesparse-dev
# OpenCV dependencies
sudo apt install -y libgtk-3-dev
sudo apt install -y ffmpeg
sudo apt install -y libavcodec-dev libavformat-dev libavutil-dev libswscale-dev libavresample-dev
# eigen dependencies
sudo apt install -y gfortran
# other dependencies
#请注意官网libyaml-cpp-dev 直接在这里安装了但是版本很低,需要用源码安装
#sudo apt install -y libyaml-cpp-dev libgoogle-glog-dev libgflags-dev
sudo apt install -y  libgoogle-glog-dev libgflags-dev

# (if you plan on using PangolinViewer)
# Pangolin dependencies
sudo apt install -y libglew-dev

# (if you plan on using SocketViewer)
# Protobuf dependencies
sudo apt install -y autogen autoconf libtool
# Node.js
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
sudo apt install -y nodejs

#官网到此结束了 下面是网友额外的安装,怕少东西自己也可以装下

sudo apt-get install -y libopenblas-dev
sudo apt-get install -y --no-install-recommends libboost1.58-all-dev 
sudo apt-get install -y libx11-dev 
sudo apt-get install -y libgl1-mesa-dev sudo apt-get install libglu1-mesa-dev 
sudo apt-get install -y freeglut3-dev 
sudo apt-get install -y 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

  

  

下面开始,每个库都要下在压缩包,自己找个地方存起来

1. Eigen安装(最新3.3.7)

wget -q https://gitlab.com/libeigen/eigen/-/archive/3.3.7/eigen-3.3.7.tar.bz2
tar xf eigen-3.3.7.tar.bz2
rm -rf eigen-3.3.7.tar.bz2
cd eigen-3.3.7
mkdir -p build && cd build
cmake 
    -DCMAKE_BUILD_TYPE=Release 
    -DCMAKE_INSTALL_PREFIX=/usr/local 
    ..
make -j4
make install

 

2 安装opencv

2-1 官网的opencv是3.2,在ubuntu18上编译不通过,因为cuda10兼容问题。

2-2 下面是网友安装的opencv3.4(简易版能用,没有cuda ,没有扩展库)

wget -q https://github.com/opencv/opencv/archive/3.4.5.zip
unzip -q 3.4.5.zip
rm -rf 3.4.5.zip
cd opencv-3.4.5
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

  

2-3 我直接从源码编译了最新的opencv4.5.1+扩展库+cuda10.1的依赖,需要一晚上。

你要是想从源码编译,可以有选择选择编译哪些模块。例如省去扩展库和cuda

教程

https://www.cnblogs.com/kekeoutlook/p/14232440.html

DBoW2

cd /path/to/working/dir
#安装作者自己的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 -j4
make install

  

  

4 g2o

强烈建议到官网手动下载源码最新压缩包代替git命令行下载。
#git clone https://github.com/RainerKuemmerle/g2o.git
cd g2o
git checkout 9b41a4ea5ade8e1250b9c1b279f3a9c098811b5a
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=OFF 
    -DG2O_USE_CSPARSE=ON 
    -DG2O_USE_OPENGL=OFF 
    -DG2O_USE_OPENMP=ON 
    ..
make -j4
make install

  

5安装yaml-cpp

手动到网页

https://github.com/jbeder/yaml-cpp/tags

 下载压缩包

这里需要在CMakeLists.txt开启fPIC选项,即需要把160行左右行改为:

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

  如图所显示

然后编译

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

  

6 如何可视化

有两种模式安装

6-1PangolinViewer 软件查看

cd /path/to/working/dir
git clone https://github.com/stevenlovegrove/Pangolin.git
cd Pangolin
git checkout ad8b5f83222291c51b4800d5a5873b0e90a0cf81
mkdir build && cd build
cmake 
    -DCMAKE_BUILD_TYPE=Release 
    -DCMAKE_INSTALL_PREFIX=/usr/local 
    ..
make -j4
make install

  

6-2 socket.io-client-cpp 网页模式查看

安装依赖 Protobuf.

# for Ubuntu 18.04 (or later)
sudo apt install -y libprotobuf-dev protobuf-compiler

或者源码编译安装

wget -q https://github.com/google/protobuf/archive/v3.6.1.tar.gz
tar xf v3.6.1.tar.gz
cd protobuf-3.6.1
./autogen.sh
./configure 
    --prefix=/usr/local 
    --enable-static=no
make -j4
make install

  

  

安装SocketViewer

强烈建议到官网手动下载源码最新压缩包代替git命令行下载。
cd /path/to/working/dir
git clone https://github.com/shinsumicco/socket.io-client-cpp.git
cd socket.io-client-cpp
git submodule init
git submodule update
mkdir build && cd build
cmake 
    -DCMAKE_BUILD_TYPE=Release 
    -DCMAKE_INSTALL_PREFIX=/usr/local 
    -DBUILD_UNIT_TESTS=OFF 
    ..
make -j4
make install

  

3编译OPENVSLAM

下载工程

git clone https://github.com/xdspacelab/openvslam

  

如果是 PangolinViewer,-DUSE_PANGOLIN_VIEWER=ON and -DUSE_SOCKET_PUBLISHER=OFF.

mkdir build && cd build
cmake 
    -DBUILD_WITH_MARCH_NATIVE=ON 
    -DUSE_PANGOLIN_VIEWER=ON 
    -DUSE_SOCKET_PUBLISHER=OFF 
    -DUSE_STACK_TRACE_LOGGER=ON 
    -DBOW_FRAMEWORK=DBoW2 
    -DBUILD_TESTS=ON 
    ..
make -j4

  

如果是SocketViewer  -DUSE_PANGOLIN_VIEWER=OFF and -DUSE_SOCKET_PUBLISHER=ON.

cd /path/to/openvslam
mkdir build && cd build
cmake 
    -DBUILD_WITH_MARCH_NATIVE=ON 
    -DUSE_PANGOLIN_VIEWER=OFF 
    -DUSE_SOCKET_PUBLISHER=ON 
    -DUSE_STACK_TRACE_LOGGER=ON 
    -DBOW_FRAMEWORK=DBoW2 
    -DBUILD_TESTS=ON 
    ..
make -j4

  

安装

sudo make install

  

安装成功测试

 ./run_kitti_slam -h

  

最后,如果工程

如果OpenVSLAM异常终止,请使用配置-DBUILD_WITH_MARCH_NATIVE=OFF选项重建g2o和cmakeOpenVSLAM。

等测试了再说。

问题

请先看这两个问题在开始后续安装 

问题0 git下载的代码不是最新的,导致版本问题

问题描述

很多库的源码使用命令行直接git来的,但是不是最新的源码,导致编译生成的库不是最新的带来版本问题。

例如:

G2O

git clone https://github.com/RainerKuemmerle/g2o.git

 用命令行下载的不是最新的,导致g2o版本不是最新的,后面openvslam编译时候找不到。

yaml-cpp

git clone https://github.com/jbeder/yaml-cpp

也是同样问题。

解决:

直接手动网页访问,手动下载最新源码压缩包。

问题1  yaml-cpp带来的问题

ymal在后期opencvslam编译时候报错,调库的问题

 官网要求本版

但是官网提供的安装方式

apt install -y libyaml-cpp-dev

默认最新也才是0.52不满足起码0.6的要求。

需要从源码自己编译

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

 

但是,直接命令行git下载的不是最新的代码 

git clone https://github.com/jbeder/yaml-cpp

需要手动到网页

https://github.com/jbeder/yaml-cpp/tags

 下载压缩包

  

这里需要在CMakeLists.txt开启fPIC选项,即需要把160行左右行改为:

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

  如图所显示

 重新编译即可。





下一篇讲解下基本使用



原文地址:https://www.cnblogs.com/kekeoutlook/p/14238636.html