基于陀螺仪和加速度计的室内定位系统
我正在开发一个Android应用程序来跟踪室内的位置。 我的手机是使用两个传感器的Google Nexus S,第一个是加速度计,第二个是陀螺仪。
我的想法是,从一个起始参考点(一个已知的GPS位置),使用2个传感器(运动的加速度计和陀螺仪的方向)移动时跟踪电话。 并在用户正在进行时显示在地图上。
但问题是,我不知道如何结合这两个传感器给我一个实际的位置?
我已经阅读了一些关于“卡尔曼filter”的文章,经过一些更多的研究,我发现这个filter对我来说非常复杂/太多了),特别是在java中为Android编写代码(cpu杀手)
有人有一些经验,他可以与我分享使用陀螺仪和加速计的室内定位系统?
陀螺仪和加速度计是不够的。
你通过两次整合线性加速度得到位置,但是错误是可怕的。 在实践中是无用的。
以下是(Google Tech Talk) 23:20 的解释 。 我强烈推荐这个video。
至于室内定位,我发现这些有用的:
- 基于RSSI的室内定位和使用西格玛点卡尔曼平滑器的跟踪
- 行人跟踪与鞋装惯性传感器
- 使用单个加速度计提高计步器的性能
我不知道如何将这些方法在现实生活中应用,或者如何将它们变成一个漂亮的Android应用程序。
一个类似的问题是计算build筑物内的距离 。
我认为这是一个很好的回答你的问题。 这个卡尔曼滤波器结合了来自加速度计和陀螺仪的数据。 希望它有帮助。
我认为现在回答这个问题为时已晚,但现在有一个很好的解决scheme叫做iBeacon技术。
您可以通过智能手机扫描iBeacon设备,然后从iBeacon获取rssi。 所以,你可以通过rssi来计算你的位置。
有关其他有关新兴室内定位技术的有趣阅读,请查看Qubulus的这篇博文 。 有几个初创公司和研究项目试图在室内find一个好的GPS替代品。 尝试范围从航位推算, QR码 ,光脉冲到无线电指纹。 看起来像任何可行的解决scheme将结合多种技术(类似于大多数智能手机如何依靠A-GPS,其中卫星信号由信号塔多点定位协助)。
与您的应用程序祝你好运!
从某个参考点开始跟踪室内位置,只有陀螺仪和加速度计是不够的。 用加速度计可以计算速度,用陀螺仪就可以得到移动设备的方向,但要计算室内的位置还需要有运动的方向,所以在这种情况下需要使用磁性传感器。 这种方法被称为航位推algorithm,将所有3个传感器组合起来以获得适当的室内位置是相当复杂的。 卡尔曼滤波器使您可以平滑测量并过滤一些噪音,但这不是计算室内位置的方法。 如果你想得到室内的位置,你可以尝试iBeacon的方法和Trilateration方法,有一些库(如这个 )已经有了这个function,所以你可以尝试从这些库中调查这个方法。