Mic*_*ica 10 c++ opencv kalman-filter
如文档中所述,可以使用cv :: KalmanFilter类作为扩展卡尔曼滤波器(EKF).有人能解释我怎么样?
涉及的所有矩阵都被声明为公共,因此我可以编辑所有这些矩阵.的源代码是用于正常(线性)卡尔曼滤波器.
我认为我应该transitionMatrix用我的非线性系统编辑,即G.这个矩阵是我的非线性系统之一,具有输入变量statePost和control; 和ControlMatrix应该都是0.对吗?
但是我应该把G的雅可比放在哪里呢?
我对更新过程有同样的疑问,我有一个非线性系统H用于measurementMatrix.
也许我有点困惑,有人可以帮助我吗?
Mic*_*ica 10
所以,我认为我想出了如何将该cv::KalmanFilter类用作EKF.这就是我的方式:
保存在临时变量中kf.statePost:temp = kf.statePost
放入kf.transitionMatrix过渡函数的雅可比行列式
做KF的预测步骤
kf.statePre使用转换函数更改正确的值:kf.statePre = f(temp, control)
放入kf.measurementMatrix测量(或校正)功能的雅可比行列式
做KF的修正步骤
kf.temp5使用正确的值更改矩阵:测量(或校正)功能kf.temp5 = measurement - h(statePre)在哪里h()
kf.statePost使用正确的值更改:kf.statePost = kf.statePre + kf.gain * kf.temp5
最后你得到了系统的估计状态kf.statePost!
| 归档时间: |
|
| 查看次数: |
5037 次 |
| 最近记录: |