76

我正在开发一个 Android 应用程序来跟踪室内位置。我的手机是使用两个传感器的 Google Nexus S,第一个是加速度计,第二个是陀螺仪。

我的想法是,从起始参考点(已知的 GPS 位置)开始,使用 2 个传感器(用于运动的加速度计和用于方向的陀螺仪)在移动时跟踪手机。并在用户去的时候显示在地图上。

但问题是我不知道如何结合这两个传感器给我一个实际位置?

我在互联网上阅读了一些关于“卡尔曼滤波器”的文章,经过更多研究后,我发现该过滤器非常复杂/对我来说太多了)特别是在 Java 中为 Android 编写代码(cpu 杀手)

有人可以和我分享一些关于使用陀螺仪和加速度计的室内定位系统的经验吗?

4

5 回答 5

72

陀螺仪和加速度计是不够的。

您可以通过两次积分线性加速度来获得位置,但误差很可怕。在实践中是没有用的。

这是(Google Tech Talk)在 23:20 的解释。我强烈推荐这个视频。

至于室内定位,我发现这些很有用:

我不知道这些方法在现实生活中的应用程序中会如何执行,或者如何将它们变成一个不错的 Android 应用程序。

一个类似的问题是计算建筑物内的距离

于 2011-09-21T13:09:36.233 回答
8

我认为这是一个很好的帖子来回答你的问题。这个卡尔曼滤波器结合了来自加速度计和陀螺仪的数据。希望能帮助到你。

于 2012-12-18T03:36:56.470 回答
2

有关新兴室内定位技术的其他一些有趣的读物,请查看Qubulus 的这篇博文。有几家初创公司和研究项目试图寻找室内 GPS 的良好替代品。尝试范围从航位推算,到二维码,到光脉冲,再到无线电指纹。看起来任何可行的解决方案都将结合多种技术(类似于大多数智能手机依赖 A-GPS 的方式,其中卫星信号由蜂窝塔多点定位辅助)。

祝您的申请好运!

于 2011-09-22T01:28:25.643 回答
1

我认为现在回答这个问题已经太晚了,但是现在,有一个很好的解决方案,叫做 iBeacon 技术。

您可以通过智能手机扫描iBeacon设备,并且可以从 iBeacon 获取 rssi。因此,您可以通过这些 rssi 计算您的位置。

于 2015-07-01T13:28:32.657 回答
1

要从某个参考点开始跟踪室内位置,仅使用陀螺仪和加速度计是不够的。使用加速度计可以计算速度,使用陀螺仪可以获取移动设备的方向,但是要计算室内位置还需要有运动方向,所以这种情况下需要使用磁传感器。这种方法称为航位推算方法,将所有 3 个传感器组合起来以获得适当的室内位置是相当复杂的。卡尔曼滤波器可让您平滑测量并过滤一些噪声,但这不是计算室内位置的方法。如果您想获得室内位置,可以尝试 iBeacon 方法和 Trilateration 方法,有一些库(例如这个)已经具有此功能,因此您可以尝试从此类库中研究此方法。

于 2017-05-04T08:10:42.577 回答