SLAM学习笔记2:SLAM的数学表述
1.SLAM问题:
在了解了SLAM中各个模块的组成和主要功能后,我们将上升到理性层次,用数学语言来描述SLAM过程。
现在假设由无人车搭载传感器。对于传感器来说,虽然它的运动是时间连续的,但它却是在某些时刻采集数据的,这就把一段连续时间的运动变成了离散时刻t=1,2,...,k中发生的事情 。传感器在这些时刻的位置记为x1,x2,...,xk,它们构成了传感器的轨迹。传感器会在每个时刻测量到一部分路标点,得到它们的观测数据,假设有n个路标点,用y1,y2,...,yn表示。
这样,无人车的运动就可以用两件事来描述:
(1)运动:运动过程中,位置x是怎样变化的?
(2)观测:在k时刻,于xk处探测到路标点yj,如何描述这件事?
2.运动方程:
首先解决“运动”这件事的描述。通常无人车(或者机器人)会携带一个测量自身运动的传感器(例如码盘或者惯性传感器),这个传感器可以测量有关运动的参数(如位置差,加速度,角速度等),我们可以通过一个通用的、抽象的数学模型说明此事:

说明:
(1)uk是运动传感器的读数或输入
(2)wk是该过程中加入的噪声
(3)xk是k时刻传感器位置,xk-1是上一时刻传感器位置
(4)f是一个一般函数,用来描述这个过程而不指明f具体的作用方式
3.观测方程:
接下来解决“观测”这件事的描述。同样的,用一个抽象的函数h来描述这个关系:

说明:
(1)vk,j是这次观测中的噪声
(2)zk,j是传感器在xk位置上看到yj路标点时产生的观测数据
4.SLAM问题的基本方程:
(1)参数化:
上述两个方程中,f和h并没有具体说明运动和观测是怎么回事。事实上,根据无人车的真实运动和传感器种类,f和h有若干种参数化方式 (也就是将f和h写为具体的、可以用于计算的方程)。
(2)SLAM问题的基本方程:
运动方程和观测方程构成了SLAM问题的基本方程。

这样,我们就把SLAM问题建模成了一个状态估计问题 :如何通过带有噪声的测量数据估计内部的、隐藏着的状态变量?
(3)状态估计问题的求解:
状态估计问题的求解与两个方程的具体形式 以及噪声服从哪种分布 有关。按照运动和观测方程是否为线性,可以分为线性/非线性系统;按照噪声是否服从高斯分布,可以分为高斯/非高斯系统。
1)线性高斯系统:
最简单,无偏的最优估计可以由卡尔曼滤波器给出。
2)非线性高斯系统:
使用扩展卡尔曼滤波器和非线性优化两大类方法求解。
(4)一些问题的伏笔:
1)位置x是什么?(见教材《视觉SLAM十四讲》第3,4章)
2)观测方程如何参数化?(见教材《视觉SLAM十四讲》第5章)
3)怎样求解上述方程?(见教材《视觉SLAM十四讲》第6章)
