我目前正在研究用于GPS导航的简单小型卡尔曼滤波器。我从GPS传感器获取当前位置,航向角和速度。因此卡尔曼滤波器应融合当前测量值和从前一位置开始的线性运动,假设速度和航向角恒定。
我的问题是选择一个有用的空间,卡尔曼滤波器能够以良好的方式执行。
本地坐标系方法:
如果我选择一个本地坐标系(北[米],东[米]),并且先前的位置在原点,我将能够轻松地预测新位置,但如何将新测量(纬度/经度)转换为我的局部坐标系使用wgs-84椭圆体?以及如何使用wgs-84椭圆体将我在本地坐标系中的新预测转换为纬度/经度?
所以我需要两个功能:
f:=(lat_ref,lng_ref,lat,lng) - > (X,Y)
g:=(lat_ref,lng_ref,x,y) - > (lat,lng)(这也可以使用Vincenty)
完成全球坐标系方法:
我发现Vincenty-Algorithm从任何椭圆体上的参考位置,距离和路线角度计算新位置。这个算法工作正常但我没有看到如何在kalman滤波器中使用这个算法,该滤波器在全局坐标系中工作。
是否有任何想法或建议如何解决我的一个问题?
答案 0 :(得分:6)
我已经完成了许多科学论文,并在wikipedia
上找到答案主要技巧是将纬度/经度/高度(llh)转换为地球中心地球固定(ecef),然后转换为我的本地坐标系earth / north / up(enu),反之亦然。
我找到了一些其他有趣的链接。
答案 1 :(得分:0)
查看FWTOOLS,特别是cs2cs和proj ... 他们可以处理从投影到地理坐标系的坐标系转换。重要的是要记住要考虑任何基准变化。