卡尔曼滤波在经纬度坐标下的运动应用

3
我正在尝试实现一个简单的卡尔曼滤波器,用于过滤/预测车辆在长/宽坐标中的移动。由于没有来自车辆传感器的测量数据,因此只有观察到的经纬度位置的新更新,因此我将尝试在任何给定时间预测和校正车辆的经度和纬度。据我所知,该模型是非线性的,因为可能会有随机加速度变化方向等,但只要我在状态中跟踪方位角,就可以忽略这些影响。我的问题是,我不知道如何以状态和预测矩阵的形式建模此系统,而且似乎必须将长/宽坐标转换/投影为某些笛卡尔xy系统,以使两者变得独立,但我不确定如何做。将坐标从xy转换回WGS84似乎并不那么容易,并且可能需要较高的计算强度。有人能够解决这个问题吗?

这些位置信息来自何处?如果来自 GPS 接收器,那么很可能它们已经被严格过滤了,所以你的滤波器将会增加什么内容是十分清楚的。 - dmuir
这些位置是根据一个位置跟踪算法计算出来的,原则上它工作得很好,但有些结果坐标会随机偏离一定量,因此我希望能够根据行进方向对它们进行平滑处理。在这种情况下,似乎应用卡尔曼滤波器是相当合理的方法,不是吗? - computador7
1个回答

1
看起来你的状态变量将是一个向量[纬度, 经度],而你的测量变量将是[纬度, 经度, 方位角]。你需要根据这些向量确定适当的fh函数,分别用于过程模型和测量模型。由于这是一个非线性问题,因此您可能需要使用非线性滤波器,例如EKF、UKF或CKF(卡尔曼滤波器)。
当使用Kalman类型的滤波器处理模块化值(如角度、纬度或经度)时,每当你的状态或测量接近不连续的模块化边界时,就会出现大问题。例如,如果你的方位角是从0到360度的角度,如果你在1度或359度处进行测量,滤波器会出现问题。此外,如果你的经度在正负180度经度左右,或者你的纬度在极点之一(这可能是你可以忽略的偏远可能性),你也可能会遇到问题。

如何在状态或测量变量中处理角度问题的一个例子可以在David Frederic Crouse,"Cubature/ Unscented/ Sigma Point Kalman Filtering with Angular Measurement Models"中找到。该论文被发表在第18届信息融合国际会议上(2015年7月6日至9日,在华盛顿特区举办),https://ieeexplore.ieee.org/document/7266741。基于Crouse的方法,如果您要将方位角作为测量变量,则需要将一些包裹函数添加到标准的无迹卡尔曼或立方体滤波器方程的若干个位置上。如果您想处理纬度和经度间的不连续性(可能并非必要),则需要在计算协方差矩阵时将坐标转换为欧几里得空间并进行反向转换。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接