【问题标题】:Kalman Filter Library卡尔曼滤波器库
【发布时间】:2014-03-05 09:47:26
【问题描述】:

我刚刚下载了 kFilter 库 (http://kalman.sourceforge.net/),并且对它的使用有一些疑问,但我在文档中找不到。过去有人用过这个库吗?

我的问题基本上是这些:

  1. eKFilter 的 Step 函数接收两个向量(u 和 v)。这些向量代表什么?我能找到的唯一参考是评论说"// U u U-D Covariance Matrix (n, nn)" 我假设这些向量之一应该代表新的测量值(大概是v)。另一个应该代表测量的协方差吗?这些值应该如何插入?

  2. 通常情况下,卡尔曼滤波器不会期望定期进行测量。相反,我希望每次读数都会伴随一个时间,表明它发生的实际时间。在给出的示例中,使用了一个常数值(称为 Period)。此外,EKFilter 类中的任何虚函数都不能接收任何输入。如何将时间用作对应于新测量的输入?类似地,给出的示例具有恒定的 R 和 Q 矩阵。如何使用协方差作为对应于读数的输入?

【问题讨论】:

  • 对不起,我从来没有使用过这个库,所以帮不上忙。然而,以下内容引起了我的注意:“通常情况下,卡尔曼滤波器不会期望在定期时间间隔上进行测量。相反,我希望每次读数都会伴随一个时间,指示它发生的实际时间。” 你能给我指一些关于不规则时间观察的卡尔曼滤波器的书籍/论文吗?谢谢
  • @aix:通过改变噪声方差可以很容易地引入不规则的时间步长。
  • @Alexandre C.:我明白你在说什么。仍然希望一些人看到一些教科书(或更高级)的主题处理。有什么指点吗?
  • @aix:没有。我被教导卡尔曼滤波器是一种自己动手计算的东西。
  • @aix 查看关于卡尔曼滤波器的维基百科页面:en.wikipedia.org/wiki/…

标签: c++ kalman-filter


【解决方案1】:

u 是控制输入。通常是线速度和角速度。

v 现在称为z,它是观察向量。

数据通常是插值的,因此它的间隔是恒定的。您的测量协方差 Q 和 R 在系统中也将保持不变。

【讨论】:

    猜你喜欢
    • 2011-04-14
    • 2017-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-14
    • 2021-05-06
    相关资源
    最近更新 更多