我正在开发一款Android App来追踪室内位置。我的手机是使用两个传感器的Google Nexus S,第一个是加速度计,第二个是陀螺仪。
我的想法是,从起始参考点(已知的GPS位置),使用2个传感器(用于运动的加速度计和用于方向的陀螺仪)在移动时跟踪手机。并在用户出发时显示在地图上。
但问题是我不知道如何将这两种传感器结合起来给我一个实际位置?
我已经阅读了一些关于“kalman过滤器”的互联网文章,经过一些研究后我发现过滤器对我来说非常复杂/太多了)特别是在java for Android(cpu杀手)中编码
有人有经验可以与我分享使用陀螺仪和加速度计的室内定位系统吗?
答案 0 :(得分:64)
陀螺仪和加速度计是不够的。
通过将线性加速度积分两次得到位置,但错误很可怕。它在实践中毫无用处。
这是an explanation by (Google Tech Talk) 23:20。我强烈推荐这个视频。
至于室内定位,我发现这些有用:
我不知道这些方法在现实应用程序中的表现如何,或者如何将它们变成一个不错的Android应用程序。
答案 1 :(得分:7)
我认为这是一个很好的post回答你的问题。该卡尔曼滤波器组合来自加速度计和陀螺仪的数据。希望它有所帮助。
答案 2 :(得分:1)
有关新兴室内定位技术的其他有趣读物,请查看此blog post from Qubulus。有几个初创公司和研究项目试图在室内找到一个很好的GPS替代品。尝试范围从航位推算到QR Codes,到光脉冲,再到无线电指纹。看起来任何可行的解决方案都将结合多种技术(类似于大多数智能手机依赖A-GPS的方式,其中卫星信号由cell tower multilateration辅助)。
祝你的申请好运!
答案 3 :(得分:1)
我认为回答这个问题为时已晚,但现在,有一种称为iBeacon技术的好解决方案。
您可以通过智能手机扫描iBeacon设备,也可以从iBeacon获取rssi。所以,你可以通过rssi来计算你的位置。
答案 4 :(得分:1)
要从某个参考点开始跟踪室内位置,只有陀螺仪和加速度计是不够的。使用加速度计,您可以计算速度,使用陀螺仪可以获得移动设备的方向,但是要计算室内位置,您还需要有移动方向,因此在这种情况下您需要使用磁传感器。这种方法被称为航位推算方法,并且将所有3个传感器组合以获得适当的室内位置是相当复杂的。卡尔曼滤波器可以让您平滑测量并滤除一些噪声,但它不是计算室内位置的方法。如果你想获得室内位置你可以尝试iBeacon方法和Trilateration方法,有一些库(如reset)已经有这个功能,所以你可以尝试从这些库中调查这个方法。