获得最准确的位置?(GPS/卡尔曼/安卓系统)



我正在为android开发一个AR应用程序,我需要一个非常准确的位置(1米以下)。该应用程序基于行人(户外),需要实时定位。我知道这个问题可能真的很难解决,但希望其他人能找到解决方案。

我已经研究了卡尔曼滤波器和扩展卡尔曼滤波器,但到目前为止,我还没有找到一个我能够使用或适应的解决方案。我认为卡尔曼滤波器可能是我需要去的方向。

现在我正在使用原始的gps数据来设置我的位置,但这太不准确了,当设备静止在一个地方时,它可以移动甚至跳跃大约5-10米。

因此,我的问题是:当我现在使用未经过滤的原始gps数据来获取位置时,我需要如何对其进行过滤(卡尔曼?扩展卡尔曼?),以及我需要使用哪些传感器(gps位置?gps速度?加速度计?)来获取最可能准确的位置行人户外位置。

更新:我需要更新我的问题,因为不可能像我最初的问题那样,在平板电脑/手机gps上获得低于1米的精度。我现在的问题是:如何应用滤波,以便后续的gps位置测量保持在可管理的距离内。例如,当我用我的设备向北10米时,我的gps也测量到我从初始位置向北10米+/-1米(10%),而不是gps测量到的跳跃/移动。

事实上,这是一项非常困难的任务,人们写关于这个主题的博士论文我发现这些有用:

  • 采用鞋式惯性传感器的行人跟踪

  • 用单片机提高计步器的性能加速度计

  • 基于RSSI的Sigma点卡尔曼室内定位与跟踪平滑

另请参阅Android加速计精度(惯性导航)。

在现实世界的应用中,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

仅使用过滤或其他数学"数据按摩"无法提高这种准确性。你必须依赖一些辅助定位系统(即:地理参考数据的辅助来源)。

最广泛使用的辅助定位系统是"网络"定位系统。它使用手机天线和无线网络天线作为辅助参考点。这种方法已经被谷歌地图和其他服务,以及安卓、苹果和Windows 8智能手机和平板电脑所使用。您只需在代码中的可用位置提供程序中进行选择即可。

基于Wi-Fi/蜂窝的系统很少能给你提供比几米更好的精度("房间级别准确性"),即使你应用了大量的数据处理/过滤。

如果你想使用不同的系统,你可以评估惯性导航系统或地磁导航系统(如Indoor Atlas:http://www.indooratlas.com/)。

编写惯性导航系统(INS)并不容易。你可以在网上找到一些描述,但很可能你必须自己写所有的代码。INS通常不能给你比GPS更好的精度。

或者,你可以购买一个商业的、随时可用的地磁系统,比如Indoor Atlas。地磁系统可以非常精确。Indoor Atlas声称其精度只有几厘米。

如果你正在寻找一个基于wi-fi/蜂窝天线的系统,替代谷歌地图,你可以看看Combain:

http://combain.com/

http://location-api.com/

我对WiFiSLAM也有很好的体验:

http://wifislam.com/

最新更新