卡尔曼滤波-公式推导与应用
- 1.什么是卡尔曼滤波器?
- 2.卡尔曼滤波的数学推导
-
- 2.1 状态方程和测量方程
- 2.2 卡尔曼滤波过程
- 3 卡尔曼滤波器应用
1.什么是卡尔曼滤波器?
以卡尔曼滤波为例。
如果有一个小机器人可以在草地上自由移动。为了实现导航,机器人需要知道自己在哪里。那么这个小机器人怎么知道自己在哪里呢?有两种方法:
- 运动学计算是根据起始位置和自身运动来获取自己的位置信息的。
- 根据自己携带的传感器测量自己的位置信息,如GPS。
所以,现在有一个问题。无论是根据运动计算还是使用传感器信息,位置信息都不可避免地存在误差。机器人应该相信哪些数据?是的,或者,如何根据这两个数据来确定自己的位置?最简单的方法是取平均值,但这种方法合理吗?为什么每个项目的重量都是0.5.显然这种方法不合适。
既然取平均值的方式不合理,该怎么办?卡尔曼滤波器解决了这个问题!
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=Axk?1 Buk?1 wk
这里说句题外话,什么是状态方程?说的通俗一点,就是。根据上一时刻的状态及控制量来预测当前时刻的状态,当然,这个过程中不可避免的存在误差。
系统的为 (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 m∗1, H H H也是状态变量到测量的转换矩阵。大小为 m ∗ n m*n m∗n。随机变量 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^是测量值的预测(即,)。则三者的关系为 (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(zk−zk^)=xk^′+K(zk−Hxk^′)(3)
其中, ( z k − H x k ^ ′ ) (z_k-H\hat{x_k}') (zk−Hxk^′)称之为残差,也就是预测的和你实际测量值之间的差距。如果这项等于0,说明预测和测量出的完全吻合。
这个公式说明什么呢?他的意思就是。
从这个公式可以看出,。还有一个问题就是系数 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(ekekT)=E[(xk−xk^)(xk−xk^)T](4) 将公式3中的估计值带入可得 (5) P K = E [ ( x k − x k ^ ′ − K ( z k − z k ^ ) ) ( x k − x k ^ ′ − K ( z k − z k ^ ) ) T ] = E [ ( x k − x k ^ ′ − K ( H x k + v k − H x k ^ ′ ) ) ( x k − x k ^ ′ − K ( H x k + v k − H x k ^ ′ ) ) T ] = E [ ( ( I − K H ) x k − x k ^ ′ − K v k + K H x k ^ ′ ) ( ( I − K H ) x k − x k ^ ′ − K v k + K H x k ^ ′ ) T ] = E [ ( ( I − K H ) ( x k − x k ^ ′ ) − K v k ) ( ( I − K H ) ( x k − x k ^ ′ ) − K v k ) T ] P_K = E[(x_k-\hat{x_k}'-K(z_k-\hat{z_k}))(x_k-\hat{x_k}'-K(z_k-\hat{z_k}))^T] \\ = E[(x_k-\hat{x_k}'-K(Hx_k+v_k-H\hat{x_k}'))(x_k-\hat{x_k}'-K(Hx_k+v_k-H\hat{x_k}'))^T] \\ = E[((I-KH)x_k-\hat{x_k}'-Kv_k+KH\hat{x_k}')((I-KH)x_k-\hat{x_k}'-Kv_k+KH\hat{x_k}')^T] \\ = E[((I-KH)(x_k-\hat{x_k}')-Kv_k)((I-KH)(x_k-\hat{x_k}')-Kv_k)^T] \tag{5} PK=E[(xk−xk^′−K(zk−zk^))(xk−xk^′−K(zk−zk^))T]=E[(xk−xk^′−K(Hxk+v 标签: 120i角位移传感器meas60角位移传感器meas