整理一下SLAM的内容:
20200514
论文地址:http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.232.7301&rep=rep1&type=pdf
Graph-based SLAM(基于图优化的算法)
A Tutorial on Graph-Based SLAM
这个论文写的很好。
看了:https://blog.csdn.net/plateros/article/details/103498039 的文章,写的很好。稍微总结一下:
这个文章把主要的point列了出来:https://blog.csdn.net/cyjwcbe/article/details/86666239
1、用图G(V, E)的方式表述了SLAM问题,
- 图优化中,顶点是优化项,而边是约束项。
- Pose(x)与Landmark(m)构成了图的顶点集。
- 边(Edge)存在两种构成。第一种是Pose到Pose,另一种是Pose到Landmark。
- 状态转移: ,即, 该值与“真实”的Pose 的差,构成了这条边的约束。
- 约束写成马氏距离:
- 完整的约束为前两个约束的和,(SLAM的图优化问题就是寻找合适的Pose(x), Landmark(m),让如下的公式最小)
2、信息矩阵
分解上面的信息矩阵,消去了landmark节点(m)
3、 节点定义为机器人的Pose
4、边可以统称为一种"虚拟观测"(virtural measurement)
边有两种,
-
时间上相邻的节点存在一条边。这条边通常是运动模型提供的约束(如里程计,轮速仪等)。
-
如果在看到了同样的路标,那么在这两个节点之间存在一条边。这条边的约束由对路标的观测模型提供。
-
是虚拟观测的均值,
-
方差由信息矩阵表示。
-
是已知,对观测的预测。
5、似然函数的对数。
可由预测的观测与观测的实际值的差求出
简化这个公式
问题的求解变成了寻找合适的节点向量x^{*}以使得F(x)得值最小。非线性最优化可采用最小二乘,牛顿高斯,Levenberg-Marquardt法。
Define a operator map 3D transformation to manifold
- 平移变量t显然是欧式空间,
- 而旋转变量的表达式(通常是欧拉角)属于非欧式空间。
简单地讲,就是旋转或者旋转平移矩阵对加法不封闭(两个旋转矩阵相加不是旋转矩阵,两个旋转平移矩阵相加不是旋转平移矩阵)
-
牛顿高斯的最优求解遇到了问题
-
可以使用四元组替代欧拉角表示3维旋转。
-
借用流形的概念(Manifolds),再结合四元组的表达
- 例如,当计算两个点在流形(非欧式空间)上的距离时,首先在其中一个点的附近建立欧式空间的映射,然后把另一个点映射过去,再计算他们的距离。只需要在原算法中定义“加”,“减”两个操作(映射),将两个操作封装,而这两个封装可以使用四元组的对数实现。更详细的内容可以参考[4]。[5]给出了关于Smooth Manifold的详细说明。[4] A Framework for Sparse, Non-Linear Least Squares Problems on Manifolds [5] INTRODUCTION TO SMOOTH MANIFOLDS
- 流形(Manifolds)是局部欧几里得空间化的一个拓扑空间。欧式空间就是最简单的流形。
SLAM(1)概率模型与EKF
该博主写的很好:https://blog.csdn.net/plateros/article/details/103461233
需要注意:数据关联(data association),此处需要额外的算法将预测的观测和传感器的观测建立对应关系。常见的算法有基于2D/3D点的NN, ICP算法,基于图像的特征匹配算法(Sift, Surf, ORB)等。
MonoSLAM
[3]MonoSLAM采单目摄像机,基于上文的EKF算法,实现了实时的SLAM。
[3] MonoSLAM: Real-Time Single Camera SLAM
https://github.com/hanmekim/SceneLib2
其中星标最多的是Hanme Kim的版本。
https://github.com/hanmekim/SceneLib2.git
由于MonoSLAM是一个典型的EKF算法
SLAM资料整理
这个写的不错:https://blog.csdn.net/hiddleson/article/details/25914569
可以:https://www.jianshu.com/p/43706a18ddc0
大杂烩:http://www.coin163.com/it/3768835166305779491/SLAM
g2o的实现:
文献资料:
Globally Consistent Range Scan Alignment for Environment Mapping.
Efficient Sparse Pose Adjustment for 2D Mapping.
A Tutorial on Graph-Based SLAM.:
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.232.7301&rep=rep1&type=pdf