视觉SLAM14讲第二版ch4代码演示

环境:ubuntu20.04 双系统
决定像书上一样使用KDevelop来运行代码。(好处是可以直接运行现有的程序)

第一步下载安装Sophus

这里在下载安装Sophus前,必须得先安装好Eigen库,因为它们是相互关联的。(这里安装Eigen库可以看我的ch2与ch3代码演示)然后我们开始安装Sophus

方法一不推荐

注意,在一些文章里,他们要求的是先安装了fmt库,然后再安装Sophus库,但是在这里最后编译的时候会遇到很多问题,我们会发现是fmt库的版本与Sophus不匹配(这里得安装最少fmt-8.1.1)然后再安装Sophus库git clone https://github.com/strasdat/Sophus.git(注意这里与书上的地址不一样)不建议这样安装。

我们发现,两者Sophus库文件的网站链接和文件夹内的内容都不一样。但是按照高翔老师的链接下载的Sophus可以成功编译(方法二),而另外一个可能还需要先安装fmt(有可能还需要8.1.1版本的)

方法二推荐

我们直接按照书上的进行安装,这样就可以不需要下载fmt库了(其实是只需要编译,无需安装,第二版书上写的) 但前提是你下载的代码文件3rdparty里面有文件
在这里插入图片描述

同时还得注意在下载完整本代码时候会发现高翔老师的文件3rdparty里面的文件是空的,这里需要我们单独下载下来(地址最后不要改变,不要自己去其他地址下载,就在这里下载,因为这些库的版本都是匹配的)git clone https://github.com/gaoxiang12/slambook2
如何一个一个单独下载,ch2与ch3
在这里面第二步有方法。

在这里插入图片描述
然后我们开始直接编译

cd Sophus
mkdir build
cd build
cmake ../ -DUSE_BASIC_LOGGING=ON
make
sudo make install

结果发现编译的hpp文件中还是存在个别文件用到了fmt库(trajectoryError.cpp),我们在include前添加#define SOPHUS_USE_BASIC_LOGGING注意必需是include前,否则还是依赖于fmt库。
在这里插入图片描述
编译后依然出现找不到文件错误:(文件地址的问题)

trajectory ./example/groundtruth.txt not found.
trajectory ./example/estimated.txt not found.

我们选择改为相对地址:

string groundtruth_file = "../../example/groundtruth.txt";
string estimated_file = "../../example/estimated.txt";

结果:
在这里插入图片描述

第二步编译演示

在这里插入图片描述在这里插入图片描述在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_56895840/article/details/131075425
今日推荐