寒假花了点时间把slam第二版过了一遍,安装库文件实在太麻烦,我又总是因为内存问题把ubuntu系统搞坏,前前后后安了三四次。在此,记录第二版安装踩坑,如果未来不幸又要重装,留个参考。

视觉SLAM十四讲第二版踩坑总结

  • 1 SLAM源代码下载
  • 2 Kdevelop安装
  • 3 安装opencv3.4.1
  • 4 安装Pangolin
  • 5 部分章节编译问题
    • ch4 李群与李代数
    • ch8 视觉里程计2
    • ch9 安装Meshlab
    • ch10 g2o_viewer
    • ch11 字典与回环检测
    • ch12 安装PCL

1 SLAM源代码下载

从github网站上克隆高翔slam第二版的代码:

git clone https://github.com/gaoxiang12/slambook2

下载完了发现第三方库3rdparty是空的,使用下面的命令获得子模块:

git submodule init
git submodule update

2 Kdevelop安装

sudo apt-get install kdevelop

3 安装opencv3.4.1

参考博客:Ubuntu16.04安装opencv3.4.1
下载:opencv-3.4.1.zip

按照slam第二版P108,先安装OpenCV的依赖项:

sudo apt-get install build-essential libgtk2.0-dev libvtk5-dev libjpeg-dev libtiff5-dev libjasper-dev libopenexr-dev libtbb-dev

其中注意,书上给出的libtiff4-dev,在ubuntu16.04中只有libtiff5-dev。

解压opencv-3.4.1.zip,创建一个目录build,再进入build目录,打开终端。执行cmake命令。

cd  opencv-3.4.1/
mkdir build
cd  build
cmake ..
make -j4
sudo make install

4 安装Pangolin

阅读README.txt,同样先安装依赖项:

sudo apt-get install libglew-dev
sudo apt-get install ffmpeg libavcodec-dev libavutil-dev libavformat-dev libswscale-dev libavdevice-dev
sudo apt-get install libdc1394-22-dev libraw1394-dev
sudo apt-get install libjpeg-dev libpng12-dev libtiff5-dev libopenexr-dev

有部分依赖项和OpenCV的依赖是重合的。

5 部分章节编译问题

ch4 李群与李代数

example文件夹中,Cmakelists中没有使用C++11标准,在Cmakelists.txt开始部分加上:

add_compile_options(-std=c++11)

ch8 视觉里程计2

Cmakelists.txt中要求OpenCV版本大于4,我用3.4.1编译也能顺利运行,大于这个版本应该都是可行的。

ch9 安装Meshlab

安装Meshlab,用Meshlab打开点云文件.ply:

sudo apt-get install meshlab

ch10 g2o_viewer

第10讲使用g2o_viewer查看位姿图的时候遇到报错:

g2o_viewer: error while loading shared libraries: libg2o_viewer.so: cannot open shared object file: No such file or directory

sudo gedit /etc/ld.so.conf
#添加如下代码:
/usr/local/lib
sudo ldconfig

ch11 字典与回环检测

1、使用第二版源代码创建字典报错:
no rule to make target ‘/usr/local/lib/libDBow3.so’
将CMakeList.txt中的静态库libDBow3.a改为动态库libDBow3.so即可。

2、发现运行feature_trainning和loop_closure与书上给出的结果存在差异,feature_trainning输出了一大堆不知道是什么含义的数字。


3、loop_closure换用大字典之后相似度区分甚至更差了。


我看了高翔github主页上slambook2的讨论区,也有人提到这些问题,都跟我一样使用的是slambook2提供的DBoW3第三方库。

回环检测这一讲对应slambook1中的第12讲,有人提到使用slambook1的代码就可以得到正确的结果。目前不清楚到底是什么问题,讨论区也没有给出解答。

ch12 安装PCL

Ubuntu16.04安装PCL点云库,我之前也使用源代码安装方式,安了好几个版本都失败了,采用下面一步安装PCL,可以直接安装编译好的点云库PCL-1.7:

sudo apt-get install libpcl-dev

视觉SLAM十四讲第二版踩坑总结相关推荐

  1. 《视觉SLAM十四讲 第二版》笔记及课后习题(第一讲)

    前言 之所以想要写这个系列的博客,是因为想要总结一下高博的<SLAM视觉十四讲第二版>的各章内容以及自己对书后习题的一些做法,也算是对自己学习过程的一个总结和回顾.博客分为两个大部分,即读 ...

  2. 《视觉SLAM十四讲 第二版》课后习题

    本文为<视觉SLAM十四讲>(第二版)的课后习题解答,为本人学习时参考着网上的资源所写的答案,可能有所纰漏,希望大家指出. 文章目录 第1讲 预备知识 第2讲 初始SLAM 第3讲 三维空 ...

  3. 《视觉SLAM十四讲 第二版》笔记及课后习题(第七讲)

    读书笔记:视觉里程计1 之前的内容,介绍了运动方程和观测方程的具体形式,并讲解了以非线性优化为主的求解方法.从本讲开始,我们结束了基础知识的铺垫,开始步入正题:按照第二讲的内容,分别介绍视觉里程计.优 ...

  4. 《视觉SLAM十四讲 第二版》笔记及课后习题(第三讲)

    读书笔记:三维空间刚体运动 本讲介绍视觉 SLAM 的基本问题之一:一个刚体在三维空间中的运动是如何描述的.我们当然知道这由一次旋转加一次平移组成.平移确实没有太大问题,但旋转的处理是件麻烦事.我们将 ...

  5. 《视觉SLAM十四讲 第二版》笔记及课后习题(第十二讲)

    读书笔记:建图 本讲我们开始介绍建图部分的算法.在前端和后端中,我们重点关注同时估计相机运动轨迹与特征点空间位置的问题.然而,在实际使用SLAM 时,除了对相机本体进行定位之外,还存在许多其他的需求. ...

  6. 视觉SLAM十四讲第二版[第2讲]

    目录 前言 一.2.1-2.2内容 二.2.3内容 1.运动和观测概念 2.观测方程 三.2.4内容 总结 前言 兄弟,本章没什么难理解的东西,就是后面如果你对ubuntu不了解的话就会像我每天跟个弱 ...

  7. 视觉SLAM十四讲ch5 stereo踩坑日记

    环境:ubuntu20.04 问题描述:在运行imageBasics 文件夹里面的程序时没有问题,但是在运行stereo 文件夹下面的程序时报错error: 'xxxxxx' was not decl ...

  8. slam十四讲第二版 pdf_聊聊这两年学习slam啃过的书

    作者:Amber 来源:微信公众号|3D视觉工坊(系投稿) 「3D视觉工坊」技术交流群已经成立,目前大约有8000人,方向主要涉及3D视觉.CV&深度学习.SLAM.三维重建.点云后处理.自动 ...

  9. 【slam十四讲第二版】【课本例题代码向】【第七讲~视觉里程计Ⅱ】【使用LK光流(cv)】【高斯牛顿法实现单层光流和多层光流】【实现单层直接法和多层直接法】

    [slam十四讲第二版][课本例题代码向][第七讲~视觉里程计Ⅱ][使用LK光流(cv)][高斯牛顿法实现单层光流和多层光流][实现单层直接法和多层直接法] 0 前言 1 使用LK光流(cv) 1.1 ...

最新文章

  1. Flash 与 Js 相互调用
  2. 前端学习(518):三列布局实现方式
  3. 第十一届蓝桥杯省赛 C++组试题 第2题 求完数
  4. artTemplate -- 性能卓越的 js 模板引擎
  5. java ognl 值栈_ognl-值栈基本操作
  6. mysql函数变量存储_MySQL存储过程、存储函数、变量
  7. 软件工程 毕业论文 文献引用 中英文文献整合
  8. hikaricp mysql_HikariCP数据库连接池
  9. js 获取字符长度(英文1,中文2)
  10. 通俗理解逻辑删除和物理删除的区别
  11. 2020-09-07(基于控制台的DVD管理系统)
  12. 20doing 动名词
  13. Pocket PC C#
  14. 浩辰cad电气2021 安装教程
  15. QPBOC——数据认证
  16. 农村电商是什么 农产品电商平台如何运营?
  17. ES6 标签模板(Tagged templates)
  18. 基于Java+SpringBoot+vue+element驾校管理系统设计和实现
  19. 怎么创建网页?有几种方法
  20. 设计模式之 单例模式

热门文章

  1. 甜品店用什么收银系统
  2. 从辩证的角度看待chatGPT,我们该如何对待?
  3. solr 插入数据后变数组_理解Solr缓存及如何设置缓存大小
  4. 在Intellij中安装LeetCode刷题插件方便Java刷题
  5. oracle左连接优化,关于SQL左连接效率问题
  6. 计算机学院迎新活动总结,迎新活动总结
  7. win10 anaconda用conda命令安装
  8. 损失函数、代价函数与目标函数
  9. 常见的损失函数(代价函数)
  10. vue问题记录(十四):vue-amap 报错TypeError: v.w.uh is not a constructor