OPENCV如何将KalmanFilter类用作ExtendedKf

OpenCV how to use the KalmanFilter class as ExtendedKF

本文关键字:ExtendedKf KalmanFilter OPENCV      更新时间:2023-10-16

文档中写的,可以将cv :: kalmanfilter类用作扩展 - 卡尔曼滤波器(EKF)。有人可以向我解释如何吗?

所有涉及的矩阵均被宣布为公开,因此我可以编辑所有矩阵。源代码适用于普通(线性)kalman-filter。

我认为我应该使用我的非线性系统(即G)编辑transitionMatrix。该矩阵是我的非线性系统之一,它具有输入变量statePostcontrol;和控制amatrix应该全部0。对吗?

但是我应该在哪里放置g?

的雅各布

我对更新过程也有同样的疑问,我对MeasurementMatrix的非线性系统H

也许我有点困惑,有人可以帮我吗?

所以,我认为我想出了如何将cv::KalmanFilter类用作EKF。这就是我的方式:

  1. 保存在温度变量中 kf.statePosttemp = kf.statePost

  2. 放入kf.transitionMatrix过渡功能的Jacobian

  3. 执行KF

  4. 的预测步骤
  5. 使用过渡函数使用正确的值更改kf.statePrekf.statePre = f(temp, control)

  6. 放入 kf.measurementMatrix测量(或校正)功能的雅各布

  7. 进行KF

  8. 的校正步骤
  9. 用正确的值更改kf.temp5矩阵: kf.temp5 = measurement - h(statePre)其中 h()是测量(或校正)函数

  10. 用正确的值更改kf.statePostkf.statePost = kf.statePre + kf.gain * kf.temp5

最后,您在kf.statePost

中具有估计的系统状态