使用卡尔曼滤波器进行多点定位轨迹平滑?

时间:2013-02-06 10:53:29

标签: java geolocation smoothing kalman-filter

我有关于通过多点定位进行飞机跟踪的以下问题: 我们设法实现了一些算法来基于使用3或4个接收器的多点定位来计算飞机位置。 问题是,该曲目看起来相当“摇摇欲坠”(请看链接中的图片,抱歉,由于声誉,我无法在此处添加。)

GPS and Mlat Track

绿线是地面上飞机的真实GPS轨迹,橙色是多点定位的计算轨迹(到达时间差,大约每秒一到两个位置)。 GPS Track仅供比较,将来可能无法使用。

什么是平滑赛道的好方法?我偶然发现了卡尔曼过滤器。我不是数学家,也不具备机器人技术等方面的经验。这个级别的数学对我来说是非常难以理解的(我很高兴我管理多个定位很好)。轨道由闭式算法计算。也许切换到迭代算法也可能会有所帮助?

那么,在生成的多边定位本身上实现卡尔曼滤波是否合理?或者在实际计算位置之前可能已经在TDOA值上?不稳定的外观导致接收器站点的测量误差很小,因此可能有助于平滑/过滤TDOA值本身。

但是我仍然需要一个非常复杂的更新模型,因为飞机正在移动并且TDOA值取决于一个真正的飞机位置。我可以想象,用于平滑轨道和平滑TDOA值本身的模型是非常相似的。如果不一样的话。

我们在Java中完成所有这些工作,所以也许有一些库我们可以在不进行所有数学运算的情况下开始使用?

2 个答案:

答案 0 :(得分:3)

这是一个经典的跟踪问题,你会发现很多科学文献都有很多不同的方法。坏消息是,如果找不到能够为你完成这项工作的图书馆,你将不得不考虑数学。

利用卡尔曼滤波器进入正确的方向,因为它可以估计间接测量数据的状态(位置,速度)。由于您的多指标是测量数据的非线性映射,因此您需要一个非线性估算器。

我对这类问题的标准建议是Unscented卡尔曼滤波器,因为它具有(相对)算法简单性和高稳健性。它还可以处理您的多重过滤,因为允许在一个时间步长内进行多次不同的测量。 至于卡尔曼滤波器,你还需要一个运动模型 - 一个简单的(线性的)可以完成这项工作,因为我假设你正在跟踪普通飞机(不是高度机动的喷气式战斗机)。不幸的是,我不知道任何适当的实现 - 有关如何有效地实现一个的说明,读取(其背后的数学并非无足轻重):

Merwe,R。V. D.& Wan,E。A.国际声学,语音和信号处理会议中状态和参数估计的平方根无迹卡尔曼滤波器,2001年,3461-3464

对于(低精度)快速且肮脏的解决方案,请为每个维度实施FIR Low-path Filter。您可以在网络上找到工具(例如here),它可以为您生成代码。

答案 1 :(得分:1)

快速浏览一下kalman过滤器的维基百科条目后,这似乎很有希望。

以下是您可以考虑的另一个建议:

由于之前的测量,您可以估算飞机的位置,速度和方向。因此,对于任何新的测量,您可以计算将平面移动到该位置所需的力是否切合实际。通过这种方式,您可以使用较大的错误对测量进行分类。