SLAM十四讲——跑通李群与李代数代码(解决Sophus库的问题)

SLAM十四讲——跑通李群与李代数代码(解决Sophus库的问题)

  • 一、前期准备
  • 二、正式配置
  • 三、参考文章

一、前期准备

1、Sophus库分为模板Sophus库和非模板Sophus库。
2、视觉slam十四讲李群与李代数这部分代码采用的是非模板的Sophus库
3、如果你在运行这部分代码时遇到了问题,那就先将已经安装或存在的Sophus文件删除干净。具体步骤:
第一步 打开计算机:
SLAM十四讲——跑通李群与李代数代码(解决Sophus库的问题)_第1张图片
第二步 搜索Sophus:
SLAM十四讲——跑通李群与李代数代码(解决Sophus库的问题)_第2张图片
第三步 将Sophus文件夹全部删除:
SLAM十四讲——跑通李群与李代数代码(解决Sophus库的问题)_第3张图片
说明:有些文件夹是只读文件夹,需要采用命令行删除,具体删除命令可以参考:
Ubuntu ——移动、复制、删除文件夹(文件)的简易方法
4、打开终端,将终端执行目录切换到你的CMakeLists.txt文件夹
SLAM十四讲——跑通李群与李代数代码(解决Sophus库的问题)_第4张图片
SLAM十四讲——跑通李群与李代数代码(解决Sophus库的问题)_第5张图片

二、正式配置

依次输入以下命令:
1、下载模板Sophus库

git clone https://github.com/strasdat/Sophus.git 

2、打开模板Sophus库

cd Sophus

3、将模板Sophus库变成非模板Sophus库

git checkout a621ff

4、编译非模板Sophus库

mkdir build
cd build
cmake ..
make

make时,如果出现
SLAM十四讲——跑通李群与李代数代码(解决Sophus库的问题)_第6张图片
那么就用鼠标打开(保持命令行界面不动)Sophus/Sophus/so2.cpp这个文件,将

SO2::SO2()
{
unit_complex_.real() = 1.;
unit_complex_.imag() = 0.;
}

改为

SO2::SO2()
{
unit_complex_.real(1.);
unit_complex_.imag(0.);
}

改完后,在命令行输入:

make

到此步,我们已经完成对Sophus库的编译。
下面我们开始对工程文件进行编译吧:
1、退回存放CMakeLists.txt文件夹的目录

cd ..
cd ..

2、建立build文件夹

mkdir build

3、进入build文件夹

cd build

4、编译代码

cmake ..
make

5、运行代码

./useSophus

此刻显示程序运行结果:
SLAM十四讲——跑通李群与李代数代码(解决Sophus库的问题)_第7张图片

三、参考文章

ubuntu18下载编译Sophus库出错,跑通十四讲李代数代码。

你可能感兴趣的:(计算机视觉,ubuntu,Sophus,视觉slam十四讲)