1.安装Pangolin:参考教程 https://blog.csdn.net/l243225530/article/details/105900272 第6步;

2.安装engine3:参考上述教程第7步;

3.安装g2o:https://github.com/RainerKuemmerle/g2o 下载源码,安装步骤安装即可;

4.安装boost依赖:sudo apt-get install libboost-all-dev

5.安装Sophus

git clone https://github.com/strasdat/Sophus.git
cd Sophus/
git checkout a621ff #若不执行该步骤,则安装的版本为最新的模板版本;若执行,则为非模板版本
mkdir build
cd build
cmake ..
make
sudo make install

若出现该错误:

/Sophus/sophus/so2.cpp:32:26: error: lvalue required as left operand of assignment
unit_complex_.real() = 1.;
/Sophus/sophus/so2.cpp:33:26: error: lvalue required as left operand of assignment
unit_complex_.imag() = 0.;
该错误可以定位到so2.cpp源码文件下:
原代码为:
SO2::SO2()
{unit_complex_.real() = 1.;unit_complex_.imag() = 0.;
}
修改为:
SO2::SO2()
{//unit_complex_.real() = 1.;//unit_complex_.imag() = 0.;unit_complex_.real(1.);unit_complex_.imag(0.);
}

6.安装opencv3.2
下载opencv3.2.0和opencv_contrib-3.2.0
参考教程 https://blog.csdn.net/l243225530/article/details/105900272 第9步安装相关依赖(2.4.11和3.2.0需要的依赖几乎一致)
额外再安装viz模块

sudo apt-get isntall libvtk5-dev

将opencv3.2.0和opencv_contrib-3.2.0解压在一个文件夹内

cd opencv3.2.0
mkdir build
cd build
cmake -DENABLE_PRECOMPILED_HEADERS=OFF -DWITH_VTK=ON -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/usr/local/opencv3.2 -DWITH_CUDA=OFF -DBUILD_DOCS=OFF -DBUILD_EXAMPLES=OFF -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF ..
make
sudo make install

注:可提前下载好ippicv_linux_20151201.tar文件,安装过程中可能会出现无法下载该文件的错误。若出现,则把下载好的文件替换到opencv-3.2.0/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e文件下

7.开始编译视觉SLAM十四讲代码
下载源码:https://github.com/gaoxiang12/slambook (这是第一版的代码,现在也有第二版的代码了)
选择slambook-master/project/04项目进行编译

cd slambook-master/project/04
mkdir build
cd build
cmake ..
make

若出现visual_odometry.cpp代码编译错误,

error: no matching function for call to ‘g2o::BlockSolver<g2o::BlockSolverTraits<6, 3> >::BlockSolver(g2o::BlockSolver<g2o::BlockSolverTraits<6, 3> >::LinearSolverType*&)’Block* solver_ptr = new Block ( linearSolver );

等等,则打开该文件,修改代码。
原代码为:

typedef g2o::BlockSolver< g2o::BlockSolverTraits<6,3> > Block;  // pose 维度为 6, landmark 维度为 3Block::LinearSolverType* linearSolver = new g2o::LinearSolverCSparse<Block::PoseMatrixType>(); // 线性方程求解器Block* solver_ptr = new Block ( linearSolver );     // 矩阵块求解器g2o::OptimizationAlgorithmLevenberg* solver = new g2o::OptimizationAlgorithmLevenberg ( solver_ptr );g2o::SparseOptimizer optimizer;optimizer.setAlgorithm ( solver );

修改为:

typedef g2o::BlockSolver< g2o::BlockSolverTraits<6,3> > Block;  // pose 维度为 6, landmark 维度为 3
Block::LinearSolverType* linearSolver = new g2o::LinearSolverCSparse<Block::PoseMatrixType>(); // 线性方程求解器
Block* solver_ptr = new Block ( std::unique_ptr<Block::LinearSolverType>(linearSolver) );     // 矩阵块求解器
g2o::OptimizationAlgorithmLevenberg* solver = new g2o::OptimizationAlgorithmLevenberg ( std::unique_ptr<Block>(solver_ptr) );
g2o::SparseOptimizer optimizer;
optimizer.setAlgorithm ( solver );

若出现Sophus相关未定义错误,则在CMakeLists.txt中有关Sophus的内容中添加代码。
原代码为:

# Sophus
find_package( Sophus REQUIRED )
include_directories( ${Sophus_INCLUDE_DIRS} )

改为:

# Sophus
find_package( Sophus REQUIRED )
include_directories( ${Sophus_INCLUDE_DIRS} )
set(Sophus_LIBRARIES libSophus.so)

Ubuntu18.04配置视觉SLAM十四讲代码运行环境相关推荐

  1. 【从零开始学习SLAM】Ubuntu 20.04系统下编译运行视觉SLAM十四讲代码

    文章目录 下载代码 slambook ch2 slambook2 ch2 slambook ch3 useEigen slambook2 ch3 useEigen slambook ch3 useGe ...

  2. 《视觉slam十四讲》ch5相机与图像学习笔记(3)——实践部分 RGB-D相机代码解释及相关函数介绍

    在这篇博客中,主要介绍<视觉SLAM十四讲>第五讲的实践部分--RGB-D代码详解.关于imageBasics的代码可见我另一篇博客: <视觉slam十四讲>ch5学习笔记(1 ...

  3. 视觉SLAM十四讲 ch3 Ubuntu18.04 KDevelop的使用及Eigen实践 入门笔记

    视觉SLAM十四讲 ch3 Ubuntu18.04 KDevelop的使用及Eigen实践 入门笔记 一.创建KDevelop项目 二.编写程序 一.创建KDevelop项目 你的电脑上如果还没有安装 ...

  4. 【《视觉SLAM十四讲》前ch2-ch6实践全过程和遇到的问题及解决办法】

    文章目录 前言 一.运行环境配置 1.在虚拟机上安装Ubuntu14.04 2.方便Ubuntu使用 二.<十四讲>的实践部分过程与问题 1.Ubuntu下安装包的两种方法 2.编译高翔的 ...

  5. 视觉SLAM十四讲CH10代码解析及课后习题详解

    g2o_viewer问题解决 在进行位姿图优化时候,如果出现g2o_viewer: command not found,说明你的g2o_viewer并没有安装上,打开你之前安装的g2o文件夹,打开bi ...

  6. 半闲居士视觉SLAM十四讲笔记(2)初识 SLAM- part 2 linux CMake、Kdevelop

    本系列文章由 youngpan1101 出品,转载请注明出处. 文章链接: http://blog.csdn.net/youngpan1101/article/details/71085778 作者: ...

  7. 视觉SLAM十四讲CH6代码解析及课后习题详解

    gaussNewton.cpp #include <iostream> #include <chrono> #include <opencv2/opencv.hpp> ...

  8. 浅读《视觉SLAM十四讲:从理论到实践》--操作1--初识SLAM

    浅读<视觉SLAM十四讲:从理论到实践>--操作1--初识SLAM 下载<视觉SLAM十四讲:从理论到实践>源码:https://github.com/gaoxiang12/s ...

  9. 视觉SLAM十四讲(2):初识SLAM

    这一讲主要介绍视觉SLAM的结构,并完成第一个SLAM程序:HelloSLAM. 目录 2.1 小萝卜的例子 单目相机 双目相机 深度相机 2.2 经典视觉SLAM框架 2.3 SLAM问题的数学表述 ...

  10. 视觉SLAM十四讲学习笔记-第六讲-非线性优化的实践-高斯牛顿法和曲线拟合

    专栏系列文章如下: 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-初识SLAM_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习 ...

最新文章

  1. 微信小程序工具真机调试提示page xxx/xxx/xxx is not found
  2. c++ 利用内存映射读取大文件
  3. Jupyter notebook入门教程(下)
  4. 【推荐】一款快速预览神器:QuickLook
  5. 找到所有数组中消失的数字—leetcode448
  6. Linux 权能综述
  7. xtrabackup mysql 5.6_percona-xtrabackup工具实现mysql5.6.34的主从同步复制
  8. 豆瓣9分,颠覆世界观的好书,每读一章就感叹一次:原来如此!(免费领)
  9. AX2012 referencegroup
  10. Baseline管理
  11. 使用sublime实现python代码补全
  12. 交友约会APP源码大家有吗
  13. hb100 微波雷达arduino_【Arduino】108种传感器系列实验(03)-微波雷达感应开关...-Arduino中文社区 - Powered by Discuz!...
  14. android会员充值功能,微信会员卡充值功能怎么开通?
  15. python+openCV滑动条的使用
  16. 九麟SDK 接入文档
  17. clamped b_spline
  18. AI背景下的新零售行业商业模式
  19. CSS中有哪几种方式能隐藏页面元素(8种)
  20. Internet Download Manager6.41加速器最快的电脑工具下载器

热门文章

  1. 第一时间---Windows 7 with SP1中英文原版MSDN下载汇总---原汁原味
  2. UltraEdit64位破解版绿色版下载及激活步骤
  3. php期末考试分数分布情况,考试成绩分析
  4. LIBJPEG-TURBO库移植
  5. 2020最新录制原生淘宝客APP视频搭建教程【最新原创】
  6. 工业路由器和家用路由器有什么区别?
  7. AirDisk创建网盘
  8. 中美线径对照表_中美WG线规对照表
  9. win10计算机桌面路径,win10桌面路径是什么?如何修改win10桌面文件路径?
  10. hp服务器修改bios设置密码,HP服务器的BIOS密码