SLAM讲解,结合 高翔老师的著作《视觉SLAM十四讲:从理论到实践》内容,加上小白的工程实践经验共同完成。建议与 书籍 搭配使用。
本文以问答及提纲的形式讲解,更适合作为 笔记 功能反复使用。
1.SLAM数学描述
SLAM过程可总结为两个基本方程:
- 运动方程
- 观测方程
对于不同的传感器,这两个方程有不同的参数化形式。如果我们保持通用性,把它们取成抽象形式,那么SLAM过程可总结为上述两个基本方程。
这两个方程描述了最基本的SLAM问题:当我们知道运动测量的读数 u ,以及传感器的读数 z 时,如何求解定位问题(估计 x)和建图问题(估计 y)? 这时,我们把SLAM问题建模成了一个状态估计问题:如何通过带有噪声的测量数据,估计内部的、隐藏着的状态变量?
状态估计问题的求解,与两个方程的具体形式,以及噪声服从哪种分布有关。我们按照运动和观测方程是否为线性,噪声是否服从高斯分布进行分类,分为线性/非线性和高斯/非高斯系统。其中线性高斯系统(LG 系统)最为简单,他的无偏最优估计可以由卡尔曼滤波器(KF)给出。而在复杂的非线性非高斯系统(NLNG系统)中,我们会使用以扩展卡尔曼滤波器(EKF)和非线性优化两大类方法去求解它。时至今日,主流视觉SLAM使用以图优化(Graph Optimization)为代表的优化技术进行状态估计。我们以为优化技术已经明显优于滤波器技术,只要计算资源允许,我们通常都偏向于使用优化方法。
2.什么是运动?
我们要考虑从 K-1 时刻到 K 时刻,机器人的位置 X是如何变化的。
通常,机器人会携带一个测量自身运动的传感器,比如说码盘或惯性传感器。这个传感器可以测量有关运动的读数,无论什么传感器,我们都能使用一个通用的、抽象的数学模型:
这里的 是运动传感器的读数(有时也叫输入),为噪声。
3.什么是观测?
假设机器人在 K 时刻,于 处探测到了某一个路标 ,我们要考虑这件事情是如何用数学语言来描述的。
当机器人在 位置上看到某个路标点 ,产生了一个观测数据 ,用一个抽象的函数 h 来描述这个关系:
这里 是这次观测里的噪声。
《视觉SLAM十四讲:从理论到实践》 PDF资源
下载链接:https://download.csdn.net/user/robot_starscream/uploads
此资源仅供各位研究员试读,请购买纸质书籍。