为什么在 ekf-slam 中计算雅可比矩阵
Why calculate jacobians in ekf-slam
我知道这是一个非常基本的问题,但我想知道为什么我们要在 EKF-SLAM 中计算雅可比矩阵,我已经很努力地理解了这一点,它不会那么难,但我想知道它。我想知道是否有人可以帮助我。
卡尔曼滤波器在线性系统上运行。这些步骤并行更新两个部分:状态 x
和误差协方差 P
。在线性系统中,我们通过 Fx
预测下一个 x
。事实证明,您可以将 Fx
的精确协方差计算为 FPF^T
。在non-linear系统中,我们可以将x
更新为f(x)
,但是我们如何更新P
呢?有两种流行的方法:
- 在EKF中,我们在
x
处选择f()
的线性逼近,然后使用通常的方法FPF^T
。
- 在 UKF 中,我们构建了协方差
P
的 x
分布的近似值。近似值是一组称为 sigma 点 的点。然后我们通过真实 f(sigma_point)
传播这些状态,并测量结果分布的方差。
您关注 EKF(案例 1)。什么是函数的良好线性逼近?如果你放大曲线,它开始看起来像一条直线,斜率是函数在该点的导数。如果这听起来很奇怪,请查看 Taylor series。 multi-variate 等价物称为雅可比矩阵。因此,我们在 x
处计算 f()
的雅可比矩阵,得到 F
。现在 Fx != f(x)
,但只要我们对 x
所做的更改很小(小到我们近似的 F
前后变化不大)就可以了。 =34=]
EKF 近似的主要问题是,当我们在测量步骤后使用近似更新分布时,它往往会使生成的协方差 P
太低。它的作用类似于线性方式的更正 "work"。实际更新将与线性近似略有不同,并没有那么好。这些少量的过度自信随着 KF 的迭代而积累,必须通过向 Q
.
添加一些虚构的过程噪声来抵消
我知道这是一个非常基本的问题,但我想知道为什么我们要在 EKF-SLAM 中计算雅可比矩阵,我已经很努力地理解了这一点,它不会那么难,但我想知道它。我想知道是否有人可以帮助我。
卡尔曼滤波器在线性系统上运行。这些步骤并行更新两个部分:状态 x
和误差协方差 P
。在线性系统中,我们通过 Fx
预测下一个 x
。事实证明,您可以将 Fx
的精确协方差计算为 FPF^T
。在non-linear系统中,我们可以将x
更新为f(x)
,但是我们如何更新P
呢?有两种流行的方法:
- 在EKF中,我们在
x
处选择f()
的线性逼近,然后使用通常的方法FPF^T
。 - 在 UKF 中,我们构建了协方差
P
的x
分布的近似值。近似值是一组称为 sigma 点 的点。然后我们通过真实f(sigma_point)
传播这些状态,并测量结果分布的方差。
您关注 EKF(案例 1)。什么是函数的良好线性逼近?如果你放大曲线,它开始看起来像一条直线,斜率是函数在该点的导数。如果这听起来很奇怪,请查看 Taylor series。 multi-variate 等价物称为雅可比矩阵。因此,我们在 x
处计算 f()
的雅可比矩阵,得到 F
。现在 Fx != f(x)
,但只要我们对 x
所做的更改很小(小到我们近似的 F
前后变化不大)就可以了。 =34=]
EKF 近似的主要问题是,当我们在测量步骤后使用近似更新分布时,它往往会使生成的协方差 P
太低。它的作用类似于线性方式的更正 "work"。实际更新将与线性近似略有不同,并没有那么好。这些少量的过度自信随着 KF 的迭代而积累,必须通过向 Q
.