一. SLAM框架
1. 视觉里程计(Visual Odometry, VO)
- 估算相邻图像间相机的运动 + 局部地图的样子
- 涉及图像的特征提取与匹配等(计算机视觉)
- 只计算相邻时刻,出现累计漂移(Accumulating Drift)
2. 后端优化(Optimization)
- 处理SLAM过程中噪声的问题
- 主要为滤波与非线性优化算法
- 最大后验概率估计(Maximum-a-Posteriori, MAP)
3. 回环检测(Loop Closing)
- 解决位置估计随时间漂移的问题(让机器人经过一段时间运动后回到原点)
- 判断机器人是否曾经到达过先前的位置
4. 建图(Mapping)
- 构建地图的过程
- 度量地图(Metric Map) + 拓扑地图(Topological Map)
二. 李群与李代数
1. 李群
- 群:一种集合加上一种运算的代数结构
- 一般线性群 GL(n)
- 特殊正交群 SO(n)
- 特殊欧氏群 SE(n)
- 李群:具有连续(光滑)性质的群
2. 李代数
- 每个李群都有与之对应的李代数。描述了李群的局部性质。
- 由一个集合V,一个数域F和一个二元运算[,]组成。(V, F, [,])
三. 相机成像原理
四. 视觉里程计
1. 特征提取和匹配
1.1 特征点
- 特征点在相机运动之后保持稳定
- 特征点:关键点(位置、朝向、大小等) + 描述子(向量,描述了关键点周围像素的信息)
1.2 特征提取
- SIFT(充分考虑了光照、尺度、旋转等变化;极大的计算量)
- ORB(实时)
1.3 特征匹配
- 暴力匹配(Brute-Force Matcher)
- 快速近似最近邻(FLANN)
2. 2D-2D:对极几何
3. 3D-2D:PnP
3.1 直接线性变换(DLT)
- R T 12个未知数,直接线形求解;
- 最少需要六对匹配点;
3.2 P3P
- 只利用三个点的信息(给定配对点多于3组时,难以利用更多的信息)
- 如果3D或2D点受噪声影响,或者存在误匹配,则算法失效
3.3 BA(Bundle Adjustment)
- 将相机位姿与空间点位置都看作优化变量,最小化重投影误差