激光SLAM算法 -1:激光SLAM简介

1:SLAM是什么

SLAM是同步定位与地图构建(Simultaneous Localization And Mapping)的缩写,最早由Hugh Durrant-Whyte 和 John J.Leonard提出。SLAM主要用于解决移动机器人在未知环境中运行时定位导航与地图构建的问题。

SLAM通常包括如下几个部分,特征提取,数据关联,状态估计,状态更新以及特征更新等。其中包括2D-SLAM和3D-SLAM。一下大概分为三种形式:
Localization:在给定地图的情况下,估计机器人的位姿。
SLAM:同时估计机器人的位姿和环境地图。
Mapping:在给定机器人位姿的情况下,估计环境地图。

2:SLAM的分类

激光SLAM算法 -1:激光SLAM简介_第1张图片

3:SLAM框架

3.1图优化

激光SLAM算法 -1:激光SLAM简介_第2张图片
节点之间的约束:建图过程中会产生一个节点 x 1 x_1 x1 x 2 x_2 x2节点连接的边,边的值为 x 1 − 1 ⋅ x 2 x_{1}^{-1} \cdot x_{2} x11x2。其表示的为两个节点的位姿关系,也就是空间约束关系。
图优化的前端是构图 ,后端是进行优化。
从节点1到节点N,是构图的过程,若节点1和节点N是相似的,将节点N和节点1相连接得到回环检测,从节点1到节点N得到一个位姿 T 1 T_{1} T1,从节点N到节点1得到一个位姿为 T 2 T_{2} T2,则理想情况下两个位姿的关系为 T 1 − 1 × T 2 = I T_{1}^{-1} \times T_{2}=I T11×T2=I。但是由于误差的存在,则就得到一个误差项,再通过后端进行优化,让误差项趋近于0。

图优化的例子
激光SLAM算法 -1:激光SLAM简介_第3张图片

3.2滤波优化

激光SLAM算法 -1:激光SLAM简介_第4张图片
图优化和滤波优化的区别:滤波优化仅仅估计当前时刻的位姿,不估计之前时刻的位姿,造成的误差较大。小环境下gmapping会得到很好的效果,用的滤波的方法。
1:状态预测:就是里程计得到机器人的位姿
2:测量预测:通过测量函数
3:进行测量:真实值的测量
4:数据关联:
5:地图更新
激光SLAM算法 -1:激光SLAM简介_第5张图片
IMU主要是测量线速度和角速度,如果用里程计测角度会造成很大的误差。

激光SLAM算法 -1:激光SLAM简介_第6张图片
ICP的误差是点对点的。
PI-ICP的误差是点对线的。
NDT:把地图看成高斯分配的集合
CSM:相关扫描匹配:建立自然场模型,进行暴力搜素。计算量大,优点不会陷入局部极值里面。
STS:淘汰
STM:cartographer的运用:
MTM:把n帧激光聚合一个子图和过去的子图进行匹配。

激光SLAM算法 -1:激光SLAM简介_第7张图片
梯度优化的开源:hectorSLAM,把匹配问题建模成非线性最小二乘的优化问题,因为它对初值敏感。
CSM:精度取决于像素的大小。
CSM+梯度优化 :先通过暴力搜素进行粗优化,再通过最小二乘进行细优化:cartographer。
激光SLAM算法 -1:激光SLAM简介_第8张图片
激光SLAM算法 -1:激光SLAM简介_第9张图片
轮式里程计:分为离线标定和在线标定。
运动畸变:激光旋转过程中,扫描的起始点和结束点存在角度差。
激光SLAM算法 -1:激光SLAM简介_第10张图片

你可能感兴趣的:(slam)