《视觉SLAM 十四讲:从理论到实践》第二版,Ubuntu20.04系统中视觉SLAM各种库的安装

Ubuntu20.04系统中视觉SLAM各种库的安装

——《视觉SLAM十四讲:从理论到实践》第二版

对于某些cmake工程,使用cmake-make方式进行编译安装,先建立build文件夹,再使用 cmake .. 对安装包进行分析,当找不到合适的安装教程类帮助时,可以根据分析的结果,看看缺少那些依赖,就装哪些,一直到没有缺少,或根据需要安装相应依赖,可能有些依赖库是非必要的,注意cmake时有的可能需要设置某些参数或root权限,接着make编译与make install安装。

mkdir build -> cd build -> cmake .. -> make -> sudo make install

CMake 指定安装目录,

方法一:使用 CMAKE_INSTALL_PREFIX 来指定 cmake -DCMAKE_INSTALL_PREFIX=/usr/local ..

方法二:修改cmake文件,加入:SET(CMAKE_INSTALL_PREFIX < install_path >)  ,要加在 PROJECT(< project_name>)

1.Eigen3安装

Ubuntu20.04系统中,直接在终端输入以下命令即可安装Eigen最新版本(模板类Sophus要求Eigen3.3以上,笔者使用该命令安装的Eigen的版本是3.3.7-2,其它Ubuntu版本的系统,也可参考博客:视觉SLAM学习中各种库安装,通过在Eigen官网下载源码,使用cmake安装Eigen最新版。

sudo apt-get install libeigen3-dev

2.Sophus安装

Sophus,李代数库,由Strasdat维护,可通过以下命令从Github获取源码,默认是模板类,可直接通过cmake方式进行安装。

git clone http://github.com/strasdat/Sophus
cd Sophus
mkdir build
cd build
cmake ..
make
suod make install

在《视觉SLAM十四讲:从理论到实践》第一版中,使用的是非模板类Sophus,需在Sophus目录下使用以下命令回到非模板类Sophus的版本,再通过cmake方式安装。

git checkout a621ff

3.OpenCV3

OpenCV中文官方文档

首先在终端运行以下命令,安装OpenCV库的依赖项。其中前两条命令用于添加编码工具jasper( libjasper-dev)的软件源。

sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"

sudo apt update

sudo apt-get install build-essential qt5-default ccache libv4l-dev libavresample-dev  libgphoto2-dev libopenblas-base libopenblas-dev doxygen  openjdk-8-jdk pylint libvtk6-dev python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev libopenexr-dev 

然后从官网Github下载OpenCV3系列安装包编译安装,(在Github下载对应版本的opencv_contrib扩展模块,笔者在Github上下载的opencv3.4.11和对应版本的opencv_contrib),分别进行解压,注意需要将opencv_contrib-3.4.11移动到opencv-3.4.11文件夹,在终端打开opencv-3.4.11q文件夹,通过cmake方式安装OpenCV。其中cmake命令的OPENCV_EXTRA_MODULES_PATH参数是opencv_contrib扩展模块的modules目录。

mkdir build
cd build
sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/opencv3 -D OPENCV_EXTRA_MODULES_PATH=/home/xvshilin/opencv-3.4.11/opencv_contrib-3.4.11/modules/ ..
sudo make -j4
sudo make install


sudo gedit ~/.bashrc

//切换成 opencv3,根据安装路径,在文件末尾加上:
export PKG_CONFIG_PATH=/usr/local/opencv3/lib/pkgconfig  
export LD_LIBRARY_PATH=/usr/local/opencv3/lib

//切换成 opencv2,则在文件末尾加上:
export PKG_CONFIG_PATH=/usr/local/opencv2/lib/pkgconfig  
export LD_LIBRARY_PATH=/usr/local/opencv2/lib

// 也可参考下面 DBoW3 的 CMakeLists.txt 配置,使用cmake语句 set()
set(OpenCV_DIR /usr/local/opencv2/share/OpenCV)
find_package(OpenCV 2.4 REQUIRED)
include_directories(SYSTEM ${OpenCV_INCLUDE_DIRS} /usr/local/opencv2/include)

source ~/.bashrc // 使(在当前终端)即使生效

pkg-config –modversion opencv
pkg-config –cflags opencv
pkg-config –libs opencv 

OpenCV2的安装,从官网下载源码,安装依赖项

sudo apt-get install build-essential libgtk2.0-dev libjpeg-dev libtiff4-dev libjasper-dev libopenexr-dev cmake python-dev python-numpy python-tk libtbb-dev libeigen2-dev yasm libfaac-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev libx264-dev libqt4-dev libqt4-opengl-dev sphinx-common texlive-latex-extra libv4l-dev libdc1394-22-dev libavcodec-dev libavformat-dev libswscale-dev

建立文件夹/usr/local/opencv2

cmake三连

mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local/opencv2 ..
make
sudo make install

make编译时出现以下错误时,参考这篇博客,由ffmpeg的版本问题引起。在最新版本的ffmpeg中对很多关键字进行了重命名,例如CODEC_FLAG_GLOBAL_HEADER就被重新命名为AV_CODEC_FLAG_GLOBAL_HEADER,因此以老版本ffmpeg开发的opencv无法编译。解决方法,装旧版本的ffmpeg或者修改opencv的源码。

In file included from /home/***/opencv-2.4.13.6/modules/highgui/src/cap_ffmpeg.cpp:45:
/home/***/opencv-2.4.13.6/modules/highgui/src/cap_ffmpeg_impl.hpp: In function ‘AVStream* icv_add_video_stream_FFMPEG(AVFormatContext*, AVCodecID, int, int, int, double, int)’:
/home/***/opencv-2.4.13.6/modules/highgui/src/cap_ffmpeg_impl.hpp:1484:21: error: ‘CODEC_FLAG_GLOBAL_HEADER’ was not declared in this scope; did you mean ‘AV_CODEC_FLAG_GLOBAL_HEADER’?
 1484 |         c->flags |= CODEC_FLAG_GLOBAL_HEADER;
      |                     ^~~~~~~~~~~~~~~~~~~~~~~~
      |                     AV_CODEC_FLAG_GLOBAL_HEADER

解决方法是打开/opencv-2.4.13.6/modules/highgui/src/cap_ffmpeg_impl.hpp,在里最顶端添加

#define AV_CODEC_FLAG_GLOBAL_HEADER (1 << 22)
#define CODEC_FLAG_GLOBAL_HEADER AV_CODEC_FLAG_GLOBAL_HEADER
#define AVFMT_RAWPICTURE 0x0020

顺利编译。

4.PCL点云库

https://github.com/PointCloudLibrary/pcl

5.Ceres优化库

Installation — Ceres Solver

源码下载

git clone https://github.com/ceres-solver/ceres-solver

依赖

sudo apt-get install liblapack-dev libsuitesparse-dev libcxsparse3.1.2 libgflags-dev libgoogle-glog-dev libgtest-dev

出现无法定位libcxsoarse3.1.2问题的解决方法:

sudo gedit /etc/apt/sources.list

将下面的源加入到sources.list

deb http://cz.archive.ubuntu.com/ubuntu trusty main universe

sudo apt-get update
sudo apt-get install liblapack-dev libsuitesparse-dev libcxsparse3.1.2 libgflags-dev libgoogle-glog-dev libgtest-dev

之后就是mkdir build -> cd build -> cmake .. -> make -> sudo make install ,安装之前可以使用 make test 进行测试,即

mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/ceres ..
nproc (查看cpu核心数,???)
make 
make test
sudo make install

6.g2o图优化库

sudo apt-get install qt5-qmake libqglviewer-dev-qt5 libsuitesparse-dev libcxsparse3.1.2 libcholmod-dev

git clone https://github.com/RainerKuemmerle/g2o.git
cd git
mkdir build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/g2o ..
make
sudo make install

7.DBoW3词袋模型库

词袋模型 DBoW2 DBoW3 FBoW Vocabulary_of_GSLAM

git clone https://github.com/rmsalinas/DBow3.git # 下载源文件
cd DBoW3 # 进入源文件夹
mkdir build
cd build
cmake -DUSE_CONTRIB=ON -DCMAKE_INSTALL_PREFIX=/usr/local/DBow3..
make -j4
sudo make install 			

 使用DBoW3时,CMakeLists.txt的配置,头文件+库文件+链接

set( DBoW3_INCLUDE_DIRS "/usr/local/DBoW3/include" )
set( DBoW3_LIBS "/usr/local/DBoW3/lib/libDBoW3.so" )
target_link_libraries( 可执行文件名 ${DBoW3_LIBS} )

8.Pangolin

 GitHub - stevenlovegrove/Pangolin: Pangolin is a lightweight portable rapid development library for managing OpenGL display / interaction and abstracting video input.

9.GTSAM

安装失败,待定

GTSAM is a library of C++ classes that implement smoothing and mapping (SAM) in robotics and vision, using factor graphs and Bayes networks as the underlying computing paradigm rather than sparse matrices.

GTSAM 是一个在机器人领域和计算机视觉领域用于平滑(smoothing)和建图(mapping)的C++类库。下载地址:GTSAM[Get Started]

官方网站:
[1] Eigen官方主页:http://eigen.tuxfamily.org/index.php?title=Main_Page

[2] Sophus in github:http://github.com/strasdat/Sophus

[3] OpenCV官网:http://opencv.org

[4] PCL官网:http://pointclouds.org

[5] Ceres官网:http://ceres-solver.org

[6] Ceres in github:https://github.com/ceres-solver/ceres-solver

[7] G2O in github:https://github.com/RainerKuemmerle/g2o

[8] GTSAM :​​​​​​​https://gtsam.org/

  • 4
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在 Ubuntu 20.04安装 SLAM14的相关软件,您可以按照以下步骤进行操作: 1. 安装依赖项: 打开终端,并执行以下命令来安装所需的依赖项: ``` sudo apt-get update sudo apt-get install build-essential cmake git libeigen3-dev libboost-all-dev libopencv-dev ``` 2. 安装 Sophus: Sophus 是一个用于刚体运动和变换表示的 C++ ,是 SLAM14经常使用的。执行以下命令来克隆并编译 Sophus: ``` cd ~ git clone https://github.com/strasdat/Sophus.git cd Sophus mkdir build cd build cmake .. make -j4 sudo make install ``` 3. 安装 Pangolin: Pangolin 是一个轻量级的图形界面,用于可视化和交互式地显示 SLAM 数据。执行以下命令来克隆并编译 Pangolin: ``` cd ~ git clone https://github.com/stevenlovegrove/Pangolin.git cd Pangolin mkdir build cd build cmake .. make -j4 sudo make install ``` 4. 安装 g2o: g2o 是一个用于图优化的 C++ ,也是 SLAM14经常使用的。执行以下命令来克隆并编译 g2o: ``` cd ~ git clone https://github.com/RainerKuemmerle/g2o.git cd g2o mkdir build cd build cmake .. make -j4 sudo make install ``` 5. 安装 DBoW3: DBoW3 是一个用于特征点词袋模型的 C++ ,也是 SLAM14经常使用的。执行以下命令来克隆并编译 DBoW3: ``` cd ~ git clone https://github.com/dorian3d/DBoW3.git cd DBoW3 mkdir build cd build cmake .. make -j4 sudo make install ``` 6. 安装 OpenCV: 如果您的系统尚未安装 OpenCV,请执行以下命令来安装 OpenCV: ``` sudo apt-get install libopencv-dev ``` 完成上述步骤后,您应该已经成功安装SLAM14所需的软件和。您可以根据需要在自己的项目使用它们。请注意,这只是基本的安装步骤,具体的安装过程可能因系统配置和需求而有所不同。如果在安装过程遇到任何问题,请提供更多的错误信息,以便我能够更好地帮助您解决问题。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值