0. 前言
第一讲主要讲了两方面:一是介绍SLAM,包括定义,发展过程,应用点,系统构成,学习所需背景知识和编程库,参考书籍等;二是本书特点,组织方式,代码等。本书理论结合实践,是入门视觉SLAM的不二之选。
1. 定义
SLAM是Simultaneous Localization and Maping的缩写,即“同时定位与地图构建”。它是指搭载特定传感器的主体,在没有环境先验信息的情况下,于运动过程中建立环境的模型,同时估计自己的运动。
根据不同传感器,包括激光SLAM,视觉SLAM等。而摄影测量和SFM主要关注于地图构建,也有的技术(基于视觉,或GPS等)是专注于定位。这个过程很难,因为它要求实时,且没有先验知识。
2. 应用点
室内扫地机器人,自动驾驶汽车,无人机,虚拟现实和增强现实等。
3. 预备知识
理论方面: 高数,线代,概率论,射影几何,计算机视觉,状态估计理论,李群李代数等。
编程方面:C++基础,Linux基础,Eigen , OpenCV, PCL, g2o, Ceres等库。
参考书籍: 《概率机器人》(Probabilistic robotics),《计算机视觉中的多视图几何》(Multiple View Geometry in Computer Vision),《机器人学中的状态估计》(State Estimation for Robotics:A Matrix-Lie-Group Approach)
4. 本书结构
1-6讲是数学基础,主要包括三维空间运动,李群李代数,针孔相机模型,非线性优化,可以对照《Course on SLAM》一块学习。
7-14讲是SLAM具体技术,包括视觉里程计(特征点法,直接法,实践章),后端优化(Bundle Adjustment, 位姿图),回环检测(词袋法),地图构建,开源项目及发展方向。
源代码: github上的slambook
5.习题
5.1 线性方程的 A x = b Ax=b Ax=b求解。
1) 单纯从秩的角度,系数矩阵A与增广矩阵B,即[A|b], 的秩相同时,即R(A)=R(B)时,方程组有解,R(A)≠R(B)时,方程组无解;R(A)=R(B)<n时,有无穷解,R(A)=R(B)=n时,有唯一解
2)详细分析,参考MIT线性代数:8.求解Ax=b:可解性和解的结构
可解性,b是A的各列的线性组合。A的行线性组合得到的零行,b对应地得到零行。
解的结构,则是Ax=b的特解和Ax=0的解线性组合。