使用卡尔曼滤波器估算位置

时间:2011-12-11 14:32:57

标签: matlab math sensor kalman-filter

我正在做一个关于室内定位的项目。我使用了NS2和一个名为Senelex的matlab GUI来查找节点的原始位置和估计位置。现在我想使用卡尔曼滤波器来估计节点/目标的位置。

例如:

如果我将目标的速度视为常数,我如何使用确定的节点估计值或原始位置值作为卡尔曼滤波器的输入。

以下是节点的估计位置和原始位置。

ori = [6.62650602409639 194.444444444445;
        6.62650602409639 10.6837606837607;
        192.168674698795 7.83475783475797;
        192.168674698795 191.595441595442;
        70.4819277108434 171.652421652422;
        129.518072289157 168.803418803419;
        24.6987951807229 144.586894586895;
        42.7710843373494 79.0598290598291];


est   = [6.62650602409639 194.444444444445;
            6.62650602409639 10.6837606837607;
            192.168674698795 7.83475783475797;
            192.168674698795 191.595441595442;
            70.7600705547484 171.847603055024;
            129.443055817301 168.734648868329;
            25.01956026761   144.890243978875;
            42.6058125534278 79.1446327727804];

如何使用这些作为卡尔曼滤波器的输入并使用卡尔曼滤波器估算目标?

1 个答案:

答案 0 :(得分:9)

我建议从关于卡尔曼滤波器的相对直接的教程开始:Introduction to the Kalman FilterThe Kalman Filter网站拥有相当数量的优质资源,包括指向Matlab工具箱的链接。一旦你有方程式,卡尔曼滤波器的实现就不是一个非常复杂的程序。

以下是一些Java版卡尔曼滤波器的链接:

我确信大多数编程语言都有可用的源代码。这些例子是我工作的例子。