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

前言

之所以想要写这个系列的博客,是因为想要总结一下高博的《SLAM视觉十四讲第二版》的各章内容以及自己对书后习题的一些做法,也算是对自己学习过程的一个总结和回顾。博客分为两个大部分,即读书笔记和课后习题。 博客分为三个部分,即读书笔记,实践部分和课后习题。读书笔记来自于自己的整理以及相关的PPT和书本截图;实践部分就是书中的各章节的具体实践(这一块是坑比较多的,各种调试的问题还有各种库的安装),课后习题部分就是各章的课后习题,当然也参考了一部分其余的博客(站在巨人的肩膀上)。
那么,废话不多说,正式开始!

读书笔记:预备知识

SLAM 是Simultaneous Localization and Mapping 的缩写,中文译作“同时定位与地图构建”。它是指搭载特定传感器的主体,在没有环境先验信息的情况下,于运动过程中建立环境的模型,同时估计自己的运动 。如果这里的传感器主要为相机,那就称为“视觉 SLAM”。

关于本书的使用和阅读方法:

2-6讲:数学基础

三维空间运动(3):也就是对相机机器人建模,旋转矩阵,欧拉角,四元数这些概念
李群李代数(4):抽象数学,近世代数的一些内容
相机与图像(5):在计算机中表示,使用OpenCV
非线性优化(6):状态估计问题,非线性最小二乘,曲线拟合问题

7-14讲:实践应用

视觉里程计(7~8):特征点法,ICP算法、PnP、对极几何约束、用来估计相邻图像之间的运动,这是最重要的一块;直接法的OV,光流法和直接法,用g2o方法搞RGBD
后端优化(9~10):BA算法,Ceres和g2o的使用、稀疏性研究;位姿图,因子图,加入关键帧之间的约束关系
回环检测(11):BOW词袋模型,字典训练和回环检验
地图构建(12),单目稠密估计、RGBD的稠密估计,极线搜索和块匹配、点云地图和八叉树地图
设计SLAM系统(13):检验全书的学习效果(逃
SLAM研究展望(14):当前开源方案的总结以及SLAM的未来展望
话说这一讲就是对全书的整体结构做了一个概述,所以也没什么笔记可做的,下面直接进入习题模块!

课后习题

1. 有线性方程 Ax = b,当我们知道 A, b,想要求解 x 时,如何求解 A 和 b 需 要哪些条件:从 A 的维度和秩角度来分析。

答:不妨记A的维度为m×n,同时记A的秩为r。

1.若b≠0,则
当r=m=n时,整个方程存在唯一解;
当r=n 当r=m 当r (b≠0时,方程组为非齐次线性方程组,系数矩阵A与增广矩阵B的秩相当时,即R(A)=R(B)时,方程组有解;
R(A)≠R(B)时,方程组无解;R(A)=R(B)

2.若b=0,则
当r=n时,整个方程只有解x=0;
当r (b=0时,方程组为齐次线性方程组,系数矩阵A的行列式D≠0时,该方程组只有唯一零解,即其秩R(A)=n(n为未知数个数)时;D=0时,方程组有无穷解,即R(A)

2. 高斯分布是什么一维形式是什么样子高维形式是什么样子h3>

答:高斯分布(Gaussian distribution)又称为正态分布(normal distribution),是一个非常常见的连续概率分布

具体参考这篇博客或者直接看维基百科。

3. 你知道 C++ 的类吗道 STL 吗用过它们吗h3>

答:类是面对对象语言的特性:面对将系统看成通过交互作用来完成特定功能的对象的集合。每个对象用自己的方法来管理数据。也就是说对象内部的代码能够操作对象内部的数据。面向对象编程是C++有别于C的核心,其中类封装了数据和接口使得成为一个整体,方便后期的维护和扩展等。

STL 是“Standard Template Library”的缩写,中文译为“标准模板库”。STL 是 C++ 标准库的一部分,不用单独安装。C++ 对模板(Template)支持得很好,STL 就是借助模板把常用的数据结构及其算法都实现了一遍,并且做到了数据结构和算法的分离。例如,vector 的底层为顺序表(数组),list 的底层为双向链表,deque 的底层为循环队列,set 的底层为红黑树,hash_set 的底层为哈希表。详情可看这里

4. 你以前怎样书写 C++ 程序完全可以说只在 VC6.0 下写过 C++ 工程,只要你有写 C++ 和 C 语言经验就行。)

答:当然是用宇宙第一IDE :

6. 你知道 Linux 吗没有至少使用过其中之一(安卓不算),比如 Ubuntuh3>

答:linux的最佳入门书当属《鸟哥的linux私房菜》。ubuntu正是我正在使用的linux发行版。

7. Linux 的目录结构是什么样的道哪些基本命令,比如 ls, cat 等等h3>

答:linux是树状目录结构:

《视觉SLAM十四讲 第二版》笔记及课后习题(第一讲)
目录结构参考
ls命令用来显示目标列表,在Linux中是使用率较高的命令。ls命令的输出信息可以进行彩色加亮显示,以分区不同类型的文件。
语法:

选项:

参数:

作用:连接多个文件并且打印到屏幕输出,或者重定向到其他文件,也可以用来查看显示单个文件,或者多个文件。

语法

8. 如何在 Ubuntu 中安装软件(不打开软件中心的情况下)软件被安装在什么地方只知道模糊的软件名称(比如我想要装一个 eigen 名称的库),我应该如何安装它h3>

答:如果是在软件源里的软件,三种方式:

  1. 通过sudo apt-get install 进行安装;
  2. 如果是deb文件则可以下载后双击安装,或下载后在终端执行sudo dpkg -i *.deb;
  3. 编译源码安装,(1 ./configure 2 make 3 sudo make install)

软件被安装在默认路径,一般是/usr或者/opt等,当然也可以自己指定安装的路径。可以用或者命令查看文件安装路径或者查询运行文件所在路径。

应该google查清楚后再安装(逃

答:可参考我之前的博客

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年10月16日
下一篇 2019年10月16日

相关推荐