这里记录如何跑通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