我知道这是一个非常基本的问题,但我想知道为什么我们要计算EKF-SLAM中的雅可比矩阵,我已经很努力去理解这个,好吧,它不会是这很难但我想知道它。我想知道是否有人可以帮助我。为什么计算ekf-slam中的jacobians
1
A
回答
1
卡尔曼滤波器在线性系统上运行。步骤并行更新两个部分:状态x
和错误协方差P
。在线性系统中,我们通过Fx
预测下一个x
。事实证明,您可以计算Fx
的确切协方差为FPF^T
。在非线性系统中,我们可以将x
更新为f(x)
,但我们如何更新P
?有两种常见的测量方法:
- 在EKF,我们选择的
f()
在x
线性近似,然后用通常的方法FPF^T
。 - 在UKF中,我们用协方差
P
构建了x
的近似分布。近似值是一组称为西格玛点的点。然后我们通过我们真实的f(sigma_point)
来传播这些状态,并测量结果分布的方差。
您关心的是EKF(案例1)。什么是函数的良好线性逼近?如果你在曲线上放大,它就会看起来像一条直线,其斜率就是该点函数的导数。如果这听起来很奇怪,请看Taylor series。多变量等价物称为雅可比矩阵。所以我们评估f()
的雅可比为x
给我们一个F
。现在Fx != f(x)
,但没关系,只要我们对x
所做的更改很小(足够小,以致我们的近似F
从之前到之后都不会有太大变化)。
EKF近似的主要问题是,当我们使用近似来更新测量步骤后的分布时,它倾向于使得到的协方差P
太低。它的行为就像线性方式的“工作”一样。实际更新将略微偏离线性逼近,不太好。这些少量的过度自信随着KF迭代而增加,并且必须通过向Q
添加一些虚构的过程噪声来抵消。
相关问题
- 1. 为什么被计算
- 2. 为什么MongoDB计算这么久?
- 3. 为什么我的身高计算17px?
- 4. 为什么我有我的计算器
- 5. 为什么count($ array)函数不计算?
- 6. 为什么你需要计算渲染?
- 7. 为什么要计算回调?
- 8. 计算器的计划是什么?
- 9. 为什么我在JavaScript中的计算中未定义?
- 10. 为什么在android中与php中的计算不同?
- 11. 为什么Javascript的Math.floor是计算Javascript中最慢的地方?
- 12. 为什么我的计算在我的程序中搞砸了?
- 13. 为什么不在R中计算函数不能计算所有NA值
- 14. 什么是CCK计算场?
- 15. SSRS IIF没什么计算
- 16. 什么是符号计算?
- 17. 当计算树的直径为什么单独计算高度是不够的
- 18. 为什么计算结果是不正确的MongoDB中
- 19. 为什么不是计算机中的第三个状态?
- 20. 为什么我的本地计算机上Silverlight中出现AG_E_NETWORK_ERROR
- 21. 为什么我的Java计算器在循环中暂停?
- 22. 为什么我不能在scala中计算100的阶乘?
- 23. 为什么计算字段不能从Odoo8中的TransientModel访问?
- 24. 为什么它不按照表中的公式计算?
- 25. 为什么1从模中减去其中计算MOD = 1000000007
- 26. 为什么表达式011 == 11的计算结果为false?
- 27. 为什么要将计算机上的代理设置为locahost?
- 28. 为什么不是这个为@each计算的属性射击?
- 29. 为什么总计仅在一行上计算
- 30. 想知道为什么要这样计算中位数?