gpt4 book ai didi

c++ - OpenCV 如何使用 KalmanFilter 类作为 ExtendedKF

转载 作者:可可西里 更新时间:2023-11-01 16:01:42 26 4
gpt4 key购买 nike

docs 中所写, 可以将 cv::KalmanFilter 类用作扩展卡尔曼滤波器 (EKF)。有人可以解释一下吗?

涉及的所有矩阵are declared as public所以我可以编辑所有这些。source code用于普通(线性)卡尔曼滤波器。

我认为我应该用我的非线性系统编辑transitionMatrix,即G。这个矩阵是我的非线性系统之一,它以 statePostcontrol 作为输入变量; ControlMatrix应该全为0吧?

但是我应该把 G 的雅可比行列式放在哪里呢?

我对更新过程有同样的疑问,我有我的非线性系统 H 用于测量矩阵。

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

最佳答案

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

  1. kf.statePost 保存在临时变量中:temp = kf.statePost

  2. kf.transitionMatrix中放入转换函数的Jacobian

  3. 做KF的预测步骤

  4. 使用转换函数将 kf.statePre 更改为正确的值:kf.statePre = f(temp, control)

    <
  5. kf.measurementMatrix中放入测量(或校正)函数的雅可比行列式

  6. 做KF的修正步骤

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

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

    /li>

最后,您在 kf.statePost 中获得了系统的估计状态!

关于c++ - OpenCV 如何使用 KalmanFilter 类作为 ExtendedKF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21533093/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com