我正在为Android开发一个AR应用程序,我需要一个非常准确的位置(低于1米)。该应用程序是基于行人(户外),并需要实时的位置。我知道问题可能是一个非常困难的问题,但希望其他人能够找到解决方案。
我已经研究过卡尔曼滤波器和扩展卡尔曼滤波器,但到目前为止,我还没有找到一个我能够使用或适应的解决方案。我认为卡尔曼滤波器可能是我需要的方向。
现在我正在使用原始gps数据设置我的位置,但这太不准确了,当设备静止在一个地方时,它可以移动甚至跳跃大约5-10米。
所以我的问题是:当我现在使用原始未经过滤的gps数据获取位置时,我将如何过滤它(kalman?扩展kalman?)以及我需要使用哪些传感器(gps位置?gps速度?加速度计?),以获得最准确的行人户外位置。
更新: 我需要更新我的问题,因为我不能做我最初的问题,在平板电脑/手机GPS上获得1米以下的精确度。我现在的问题是:我如何应用过滤,以便后续的GPS位置测量保持在可控制的距离内。例如因此,当我用我的设备向北10米时,我的gps也测量到我从我的初始位置向北10米+/- 1米(10%)而不是gps测量的跳跃/移动。
答案 0 :(得分:8)
确实,这是一项非常艰巨的任务,人们就此主题撰写博士论文。我发现这些有用:
答案 1 :(得分:2)
在实际应用中,GPS系统无法提供比5-10米更好的精度/准确度,特别是如果您使用智能手机或平板电脑作为接收器。有关详细解释,请查看有关GPS的维基百科页面:
https://en.wikipedia.org/wiki/Gps
https://en.wikipedia.org/wiki/Error_analysis_for_the_Global_Positioning_System
https://en.wikipedia.org/wiki/GPS_augmentation
没有任何方法可以使用过滤或其他数学“数据按摩”来提高这种准确性。您必须依赖一些辅助定位系统(即:地理参考数据的辅助来源)。
最广泛使用的辅助定位系统是“网络”系统。它使用蜂窝电话天线和Wi-Fi天线作为辅助参考点。谷歌地图和其他服务以及Android,Apple和Windows 8智能手机和平板电脑已经采用了这种方法。您只需在代码中的可用位置提供程序中选择它。
基于Wi-Fi / Cell的系统很少能为您提供几米的精度(“房间级别” 精度“),即使您应用了大量的数据处理/过滤。
如果您想使用其他系统,您可以评估惯性导航系统或地磁导航系统(如室内地图:http://www.indooratlas.com/)。
编写惯性导航系统(INS)并不容易。您可以在网上找到一些描述,但很可能您必须自己编写所有代码。 INS通常无法提供比GPS更好的精度。
或者,您可以购买商用的即用型地磁系统,如Indoor Atlas。地磁系统可以非常精确。室内地图册声称精确到几厘米。
如果您正在寻找基于wi-fi / cell-antenna的系统,替代Google地图,您可以查看Combain:
我对WiFiSLAM也有很好的体验: