[SLAM](2-3):SLAM数学描述、运动方程、观测方程

SLAM讲解,结合 高翔老师的著作《视觉SLAM十四讲:从理论到实践》内容,加上小白的工程实践经验共同完成。建议与 书籍 搭配使用。

 本文以问答及提纲的形式讲解,更适合作为 笔记 功能反复使用。


1.SLAM数学描述

     SLAM过程可总结为两个基本方程:

  • x_{_{k}}=f(x_{k-1},u_{k},w_{k})    运动方程
  • z_{_{k,j}}=h(y_{j},x_{k},v_{k,j})     观测方程

     对于不同的传感器,这两个方程有不同的参数化形式。如果我们保持通用性,把它们取成抽象形式,那么SLAM过程可总结为上述两个基本方程。

    这两个方程描述了最基本的SLAM问题:当我们知道运动测量的读数 u ,以及传感器的读数 z 时,如何求解定位问题(估计 x)和建图问题(估计 y)? 这时,我们把SLAM问题建模成了一个状态估计问题:如何通过带有噪声的测量数据,估计内部的、隐藏着的状态变量?

     状态估计问题的求解,与两个方程的具体形式,以及噪声服从哪种分布有关。我们按照运动和观测方程是否为线性,噪声是否服从高斯分布进行分类,分为线性/非线性和高斯/非高斯系统。其中线性高斯系统(LG 系统)最为简单,他的无偏最优估计可以由卡尔曼滤波器(KF)给出。而在复杂的非线性非高斯系统(NLNG系统)中,我们会使用以扩展卡尔曼滤波器(EKF)和非线性优化两大类方法去求解它。时至今日,主流视觉SLAM使用以图优化(Graph Optimization)为代表的优化技术进行状态估计。我们以为优化技术已经明显优于滤波器技术,只要计算资源允许,我们通常都偏向于使用优化方法。

2.什么是运动?

    我们要考虑从 K-1 时刻到 K 时刻,机器人的位置 X是如何变化的。

    通常,机器人会携带一个测量自身运动的传感器,比如说码盘或惯性传感器。这个传感器可以测量有关运动的读数,无论什么传感器,我们都能使用一个通用的、抽象的数学模型:

                                                            x_{_{k}}=f(x_{k-1},u_{k},w_{k})

    这里的 u_{k} 是运动传感器的读数(有时也叫输入),w_{k}为噪声。

3.什么是观测?

    假设机器人在 K 时刻,于 x_{k} 处探测到了某一个路标 y_{j} ,我们要考虑这件事情是如何用数学语言来描述的。

    当机器人在 x_{k} 位置上看到某个路标点 y_{j},产生了一个观测数据 z_{k,j} ,用一个抽象的函数 h 来描述这个关系:

                                                              z_{_{k,j}}=h(y_{j},x_{k},v_{k,j})

     这里 v_{k,j} 是这次观测里的噪声。


《视觉SLAM十四讲:从理论到实践》 PDF资源

下载链接:https://download.csdn.net/user/robot_starscream/uploads

此资源仅供各位研究员试读,请购买纸质书籍。

猜你喜欢

转载自blog.csdn.net/Robot_Starscream/article/details/83448257