我所理解的卡尔曼滤波——公式推导与应用

1.什么是卡尔曼滤波

先举个例子说一下什么是卡尔曼滤波。

假如有一个小机器人可以在草地上自由的运动。为了让它实现导航,机器人需要知道自己所处的位置。那么这个小机器人如何才能知道自己在什么位置呢?有两种方式:

  1. 根据起始位置及自身的运动进行运动学计算,从而得到自身的位置信息。
  2. 根据自身携带的传感器测量自身的位置信息,如GPS。

那么,现在就存在一个问题。不论是根据运动学计算还是利用传感器信息,得到的位置信息都不可避免的存在误差。那机器人到底该相信哪个数据呢?有或者,如何根据这两种数据来确定自身的位置呢?最简单的方式就是取平均值,但是这种方式合理吗?凭什么每一项的权重都是0.5?显然这种方式不合适。

既然,取均值的方式不合理,那又该怎么做呢?卡尔曼滤波解决的就是这个问题!

卡尔曼滤波的本质就是根据”测量值”(如GPS数据) 和 “预测量”(如运动学计算结果) 及 “误差”,计算得到当前状态的最优量。

2.卡尔曼滤波的数学推导

2.1 状态方程和测量方程

首先假设我们知道一个线性系统的状态差分方程 (1) x k = A x k − 1 + B u k − 1 + w k − 1 x_k = Ax_{k-1}+Bu_{k-1}+w_{k-1} \tag{1} xk=Axk1+Buk1+wk1(1) 其中 x x x 是系统的状态向量,大小为n*1列。 A A A为转换矩阵,大小为 n ∗ n n*n nn u u u为系统输入,大小为 k ∗ 1 k*1 k1 B B B是将输入转换为状态的矩阵,大小为 n ∗ k n*k nk。随机变量 w w w为系统噪声。

这里说句题外话,什么是状态方程?说的通俗一点,就是预测方程。根据上一时刻的状态及控制量来预测当前时刻的状态,当然,这个过程中不可避免的存在误差。

系统的测量方程 (2) z k = H x k + v k z_k=Hx_k+v_k\tag{2} zk=Hxk+vk(2) z z z是测量值,大小为 m ∗ 1 m*1 m1 H H H也是状态变量到测量的转换矩阵。大小为 m ∗ n m*n mn。随机变量 v v v是测量噪声。

那什么又是测量方程呢?就是根据此刻的状态量及噪声得到的测量值的过程。另一方面测量方程也表明,测量值是由我们的状态值确定的。

对于状态方程中的系统噪声 w w w和测量噪声 v v v,假设服从如下多元高斯分布,并且 w w w, v v v是相互独立的。其中 Q Q Q, R R R为噪声变量的协方差矩阵。
在这里插入图片描述

2.2 卡尔曼滤波过程

在此,我们设 x k ^ ′ \hat{x_k}' xk^为预测值(根据上一时刻的状态及控制量由状态方程得到的当前时刻的状态)、 x k ^ \hat{x_k} xk^为估计值(即卡尔曼滤波的最终的结果)、 z k ^ \hat{z_k} zk^是测量值的预测(即,根据预测的状态值 x k ^ ′ \hat{x_k}' xk^得到的测量值)。则三者的关系为 (3) x k ^ = x k ^ ′ + K ( z k − z k ^ ) = x k ^ ′ + K ( z k − H x k ^ ′ ) \hat{x_k} = \hat{x_k}'+K(z_k-\hat{z_k})=\hat{x_k}'+K(z_k-H\hat{x_k}') \tag{3} xk^=xk^+K(zkzk^)=xk^+K(zkHxk^)(3)

其中, ( z k − H x k ^ ′ ) (z_k-H\hat{x_k}') (zkHxk^)称之为残差,也就是预测的和你实际测量值之间的差距。如果这项等于0,说明预测和测量出的完全吻合。

这个公式说明什么呢?他的意思就是最终的估计值等于预测值加上乘以系数 K K K的测量残差

从这个公式可以看出,我们可以根据状态方程得到预测值,根据测量方程可以得到测量值的预测,然后在根据公式3就可以得到最终的估计值。还有一个问题就是系数 K K K的确定。

××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××

接下来说一下参数 K K K的确定。

首先来看一下真实值估计值之间协方差
(4) P K = E ( e k e k T ) = E [ ( x k − x k ^ ) ( x k − x k ^ ) T ] P_K = E(e_ke_k^T) = E[(x_k-\hat{x_k})(x_k-\hat{x_k})^T] \tag{4} PK=E(e

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值