OpenCV里卡尔曼滤波的理解

转载https://blog.csdn.net/yangtrees/article/details/8075911

https://blog.csdn.net/GDFSG/article/details/50904811

我们把这5个式子可分成三大部分看:

公式和opencv对应关系的讲解:

首先对于离散控制过程的系统,其系统状态和系统测量值可进行以下表示:
X(k): k时刻系统状态
A:     状态转移矩阵,对应opencv里kalman滤波器的transitionMatrix矩阵
B:     控制输入矩阵,对应opencv里kalman滤波器的controlMatrix矩阵
U(k): k时刻对系统的控制量
Z(k): k时刻的测量值
H:     系统测量矩阵,对应opencv里kalman滤波器的measurementMatrix矩阵
W(k):系统过程噪声,为高斯白噪声,协方差为Q,对应opencv里的kalman滤波器的processNoiseCov矩阵
V(k): 测量噪声,也为高斯白噪声,协方差为R,对应opencv里的kalman滤波器的measurementNoiseCov矩阵
对于满足上面的条件(线性随机微分系统,过程和测量都是高斯白噪声),卡尔曼滤波器是最优的信息处理器。
以上便是核心的5个公式。

第一部分:
式(1)-(2):  预测值的计算
式(1):        计算基于k-1时刻状态对k时刻系统状态的预测值
X(k|k-1):   基于k-1时刻状态对k时刻状态的预测值,对应opencv里kalman滤波器的predict()输出,即statePre矩阵
X(k-1|k-1):k-1时刻状态的最优结果,对应opencv里kalman滤波器的上一次状态的statePost矩阵
U(k):         k时刻的系统控制量,无则为0
A:             状态转移矩阵,对应opencv里kalman滤波器的transitionMatrix矩阵
B:             控制输入矩阵,对应opencv里kalman滤波器的controlMatrix矩阵

/**********************************************************************************************************************************/
式(2):       计算X(k|k-1)对应的协方差的预测值
P(k|k-1):   基于k-1时刻的协方差计算k时刻协方差的预测值,对应opencv里kalman滤波器的errorCovPre矩阵  (predict预测)
P(k-1|k-1):k-1时刻协方差的最优结果,对应opencv里kalman滤波器的上一次状态的errorCovPost矩阵   (convariance协方差)
Q:            系统过程噪声协方差,对应opencv里kalman滤波器的processNoiseCov矩阵

/***********************************************************************************************************************************/

第二部分:
式(3):   增益的计算
Kg(k):k时刻的kalman增益,为估计量的方差占总方差(估计量方差和测量方差)的比重,对应opencv里kalman滤波器的gain矩阵
H:      系统测量矩阵,对应opencv里kalman滤波器的measurementMatrix矩阵
R:      测量噪声协方差,对应opencv里的kalman滤波器的measurementNoiseCov矩阵

/************************************************************************************************************************************/

第三部分:
式(4)--(5):  k时刻的更新

式(4):      计算k时刻系统状态最优值
X(k|k):     k时刻系统状态的最优结果,对应opencv里kalman滤波器的k时刻状态的statePost矩阵
Z(k):        k时刻系统测量值
式(5):      计算k时刻系统最优结果对应的协方差
P(k|k):     k时刻系统最优结果对应的协方差,对应opencv里kalman滤波器的errorCovPost矩阵

./************************************************************************************************************************************/

例如:KalmanFilter KF(stateNum, measureNum, 0);

Fk : KF.transitionMatrix

Hk : KF.measurementMatrix

Qk : KF.processNoiseCov

Rk  : KF.measurementNoiseCov

Pk : KF.errorCovPost

有时也需要定义Bk : KF.controlMatrix

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值