ubuntu20.04跑通slambook2 ch13编译

这里记录如何跑通slambook2 ch13的代码

1.依赖说明

在原书代码的3rdparty下大部分的依赖,只需要对每一个库源码安装即可,在CMakeists.txt目录下打开命令行输入:

mkdir build
cd build
cmake ..
make 
sudo make install

但sophus和opencv比较麻烦,单独拿出来讲一下。

2.sophus安装

3rdparty直接源码安装,在make这一步会遇到问题:
error: implicitly-declared ‘Eigen::Map<Sophus::SE3

![[2024-05-30 22-25-49 的屏幕截图.png]]
需要在CMakeists.txt的第30行加入以下信息:

set(CMAKE_CXX_FLAGS "-Wno-error=deprecated-declarations -Wno-deprecated-declarations ")

之后就能编译成功。

3.opencv安装

本书需要的是opencv3,试了几个版本都会出现问题,最终选择opencv3.4.7

3.1安装opencv依赖

sudo apt-get install build-essential 
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

可能会遇到libjasper-dev找不到的情况,下面解决:

sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt install libjasper1 libjasper-dev

3.2安装oepncv3.4.7

在CMakeists.txt目录下打开命令行输入:

mkdir build
cd build
cmake ..
make 
sudo make install

4.编译ch13代码

在CMakeists.txt目录下打开命令行输入:

mkdir build
cd build
cmake ..
make 
sudo make install

完成代码编译

5.运行

在把config文件复制到bin文件夹下,
![[2024-05-30 22-51-46 的屏幕截图.png]]
把数据集的路径修改成自己的路路径:
![[2024-05-30 22-52-04 的屏幕截图 1.png]]
然后在bin目录下运行代码:

./run_kitti_stereo

以下试运行成功的图片:
![[2024-05-30 22-59-36 的屏幕截图.png]]
记住,必须在bin目录下运行,因为代码会在当前文件夹子下寻找config/default.yaml这个文件,而当前文件夹不是指相对于可执行文件的当前目录,而是指命令行的当前目录.举例来说,你在build下使用

../bin/run_kitti_stereo

也可以把程序拉起来,但是程序会在build下找config/default.yaml文件# Hello World
ii

posted @ 2024-05-30 23:06  zlj_shell  阅读(172)  评论(0)    收藏  举报