为什么在 ekf-slam 中计算雅可比矩阵

Why calculate jacobians in ekf-slam

我知道这是一个非常基本的问题,但我想知道为什么我们要在 EKF-SLAM 中计算雅可比矩阵,我已经很努力地理解了这一点,它不会那么难,但我想知道它。我想知道是否有人可以帮助我。

卡尔曼滤波器在线性系统上运行。这些步骤并行更新两个部分:状态 x 和误差协方差 P。在线性系统中,我们通过 Fx 预测下一个 x。事实证明,您可以将 Fx 的精确协方差计算为 FPF^T。在non-linear系统中,我们可以将x更新为f(x),但是我们如何更新P呢?有两种流行的方法:

  1. 在EKF中,我们在x处选择f()的线性逼近,然后使用通常的方法FPF^T
  2. 在 UKF 中,我们构建了协方差 Px 分布的近似值。近似值是一组称为 sigma 点 的点。然后我们通过真实 f(sigma_point) 传播这些状态,并测量结果分布的方差。

您关注 EKF(案例 1)。什么是函数的良好线性逼近?如果你放大曲线,它开始看起来像一条直线,斜率是函数在该点的导数。如果这听起来很奇怪,请查看 Taylor series。 multi-variate 等价物称为雅可比矩阵。因此,我们在 x 处计算 f() 的雅可比矩阵,得到 F。现在 Fx != f(x),但只要我们对 x 所做的更改很小(小到我们近似的 F 前后变化不大)就可以了。 =34=]

EKF 近似的主要问题是,当我们在测量步骤后使用近似更新分布时,它往往会使生成的协方差 P 太低。它的作用类似于线性方式的更正 "work"。实际更新将与线性近似略有不同,并没有那么好。这些少量的过度自信随着 KF 的迭代而积累,必须通过向 Q.

添加一些虚构的过程噪声来抵消