视觉SLAM的数学表达

时间:2024-10-28 09:07:14

相机是在某些时刻采集数据的,所以只关心这些时刻的位置和地图。

就把这一段时间的运动变成了李三时刻 t=1,2,...K当中发生的事情。

在这些事可,x表示机器自身的位置

x1,x2,x3,x4...xK就是机器人的轨迹。

在地图方面,我们假设地图是由许多个路标组成的。

路标用y1,y2,y3,y4,...yK组成。

机器人带着传感器在环境中运动,可以由两件事情描述:

(1)什么是运动?从K-1时刻到K时刻,机器人的位置x是如何变化的。

机器人会携带一个测量自身运动的传感器,可以读取相关的数据。

数据模型:xK = f (xK-1 , uK , wK ).——————————————————运动方程

uK是运动传感器的读数,wK是噪声。

(2)什么是观测?机器人在K时刻在xK位置处观测到某一路标yJ。如何用数学语言描述?

zK,J = h ( yJ , xK , vK,J )——————————————观测方程

vK,J表示这里观测的噪声。

xK = f (xK-1 , uK , wK )

zK,J = h ( yJ , xK , vK,J )

组成了视觉SLAM的基本方程。

当知道运动观测的读书U,传感器的读数Z,如何求解定位问题(估计X)、建图问题(估计Y)。这时,我们就把SLAM问题建模成一个状态估计问题:如何通过带有噪声的观测数据,估计内部的,隐藏着的状态变量。

状态估计问题的求解,与两个方程的具体形式,噪声服从的分布有关。

运动和观测方程是线性,或者非线性。

噪声符合高斯分布,或者不符合高斯分布。

线性高斯分布LG:它的无偏的最有估计可以由卡尔曼滤波器 KF 给出。

非线性非高斯分布中 NLNG:使用扩展卡尔曼滤波器 EKF 和非线性优化两种方法求解。