视觉slam-----第四篇 卡尔曼滤波

本文是《视觉SLAM十四讲》的读书笔记,介绍了从视觉SLAM到卡尔曼滤波的过程。通过马尔科夫性质,阐述了卡尔曼滤波在SLAM中的应用,解释了运动和观测方程,以及如何使用扩展卡尔曼滤波(EKF)解决非线性问题。文章还详细解析了卡尔曼滤波的预测和更新步骤。
摘要由CSDN通过智能技术生成

马尔科夫和卡尔曼滤波

《视觉slam十四讲》读书笔记。

很多人都疑惑,马尔科夫又是什么意思?一个滤波问题怎么才能用得上卡尔曼滤波呢?扩展卡尔曼滤波又和卡尔曼滤波有什么关系?本篇博客不讲这些内容之间的推导关系,毕竟已经有无数人详细讲解了这个过程,这里只大概捋一捋它们之间的关系,已经我们该如何进行选择。

马尔科夫性质

一个马尔科夫过程就是指过程中的每个状态的转移只依赖于之前的 n个状态,这个过程被称为1个 n阶的模型,其中 n是影响转移状态的数目。最简单的马尔科夫过程就是一阶过程,每一个状态的转移只依赖于其之前的那一个状态。

在卡尔曼滤波中,我们就会使用马尔科夫性质,而且是一阶过程,我们不用关心它的推导过程。在卡尔曼滤波方法中,我们会从某时刻的状态估计,推导到下一个时刻。另外一种方法是依然考虑 k 时刻状态与之前所有状态的关系,此时将得到非线性优化为主体的优化框架。

从视觉slam到卡尔曼滤波

SLAM 过程由运动方程和观测方程来描述。那么,假设在 t = 0 t = 0 t=0 t = N t = N t=N 的时间内,我们有 x 0 \boldsymbol { x } _ { 0 } x0 x N \boldsymbol { x } _ { N } xN那么多个位姿,并且有 y 1 , … , y M \boldsymbol { y } _ { 1 } , \dots , \boldsymbol { y } _ { M } y1,,yM 那么多个路标。一般来说,视觉slam过程的运动和观测方程为:

x k = f ( x k − 1 , u k ) + w k \boldsymbol { x } _ { k } = f \left( \boldsymbol { x } _ { k - 1 } , \boldsymbol { u } _ { k } \right) + \boldsymbol { w } _ { k } xk=f(xk1,uk)+wk
z k , j = h ( y j , x k ) + v k , j \boldsymbol { z } _ { k , j } = h \left( \boldsymbol { y } _ { j } , \boldsymbol { x } _ { k } \right) + \boldsymbol { v } _ { k , j } zk,j=h(yj,xk)+vk,j

之前已经介绍了最大似然估计,把状态估计转换为最小二乘的做法。首先,由于位姿和路标点都是待估计的变量,我们改变一下记号,令 x k \boldsymbol { x } _ { k } xk k k k时刻的所有未知量。它包含了当前时刻的相机位姿与 m m m 个路标点。在这种记号的意义下(虽然与之前稍有不同,但含义是清楚的),写成:

x k ≜ { x k , y 1 , … , y m } \boldsymbol { x } _ { k } \triangleq \left\{ \boldsymbol { x } _ { k } , \boldsymbol { y } _ { 1 } , \dots , \boldsymbol { y } _ { m } \right\} xk{ xk,y1,,ym}

k k k时刻的所有观测记作 z k z _ { k } zk。于是,运动方程与观测方程的形式可写得更加简洁。这里不会出现 y \boldsymbol { y } y,但我们要明白这时 x \boldsymbol { x } x 中已经包含了之前的 y \boldsymbol { y } y 了:

{ x k = f ( x k − 1 , u k ) + w k z k = h ( x k ) + v k k = 1 , … , N \left\{ \begin{array} { l l } { \boldsymbol { x } _ { k } = f \left( \boldsymbol { x } _ { k - 1 } , \boldsymbol { u } _ { k } \right) + \boldsymbol { w } _ { k } } \\ { \boldsymbol { z } _ { k } = h \left( \boldsymbol { x } _ { k } \right) + \boldsymbol { v } _ { k } } \end{array} \right. k = 1 , \ldots , N { xk=f(xk1,uk)+w

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值