OPENCV如何将KalmanFilter类用作ExtendedKf
OpenCV how to use the KalmanFilter class as ExtendedKF
文档中写的,可以将cv :: kalmanfilter类用作扩展 - 卡尔曼滤波器(EKF)。有人可以向我解释如何吗?
所有涉及的矩阵均被宣布为公开,因此我可以编辑所有矩阵。源代码适用于普通(线性)kalman-filter。
我认为我应该使用我的非线性系统(即G
)编辑transitionMatrix
。该矩阵是我的非线性系统之一,它具有输入变量statePost
和control
;和控制amatrix应该全部0。对吗?
但是我应该在哪里放置g?
的雅各布我对更新过程也有同样的疑问,我对MeasurementMatrix的非线性系统H
。
也许我有点困惑,有人可以帮我吗?
所以,我认为我想出了如何将cv::KalmanFilter
类用作EKF。这就是我的方式:
-
保存在温度变量中
kf.statePost
:temp = kf.statePost
-
放入
kf.transitionMatrix
过渡功能的Jacobian -
执行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
!