基于陀螺仪和加速度计的室内定位系统


73

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

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

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

我已经在互联网上阅读过一些有关“卡尔曼过滤器”的文章,经过更多研究后,我发现该过滤器非常非常复杂(对我来说太多了),尤其是在Android版Java(CPU杀手)中对其进行编码

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


hay @Alexis,您是否发现任何可实现该目标的代码?提前感谢
错误

Answers:


70

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

通过对线性加速度进行两次积分可以得到位置,但是误差是可怕的。在实践中是没有用的。

这是(Google Tech Talk)在23:20的解释。我强烈推荐这部影片。

对于室内定位,我发现这些功能很有用:

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

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


2
是的,我也找到了这些文档,但是他们没有解释如何实现这些功能,大多数这些文档只是在2D地图的路径轨迹上取得了不错的结果。但是没有代码?没有完整的计算?
亚历克西斯

@ina好吧,是的,这里有一个稍微更新的答案。
阿里

我刚开始这个项目。我们将进一步研究它。但是感谢视频
Jayson Ragasa 2012年

1
@Soren你是对的,第一秒的错误是“仅” 8.6 cm。我们有a_error = [cos(1度)-1,sin(1度)]·9.8 ms ^ -2。然后计算0.5·a_error·t ^ 2
AvD

1
@AvD确实,这是ca。根据我自己的计算也为8.5厘米。视频中的公式正确无误,但它们混淆了某处的m到cm转换。这个家伙说8.5米,而实际上是8.5厘米。请记住,尽管此错误正以抛物线速度增长,所以在10秒钟内它将变为大约。8.5米 :(
阿里

7

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


Chrome浏览器警告该链接托管恶意软件。在其他地方有相同的内容吗?
汤姆

感谢您的提醒。我更新了链接。由于我发表评论时该帖子效果很好,您可以取消不赞成投票吗?@Tom
Allen Jee

1

有关新兴的室内定位技术的其他有趣读物,请参阅Qubulus的博客文章。有几家初创公司和研究项目正在努力寻找室内GPS的理想替代品。尝试范围从航位推算,QR码,光脉冲到无线电指纹。似乎任何可行的解决方案都将结合多种技术(类似于大多数智能手机对A-GPS的依赖,在这种情况下,卫星信号由蜂窝塔多方位辅助)。

祝您申请顺利!


1

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

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


并非如此,iBeacon确实具有rssi信息,但它不是那么准确,任何物体都可以并且会干扰信号,因此不太可靠。不过,仍然可以将其用作范围内的力量,因为它是本机完成的(即时,近距离,远距离和未知)。
塞缪尔·科尔特斯

@Samuel Cortez 3使用RSSI,您可以获得诸如“您在附近的书店”之类的不正确位置。而且,如果您需要更精确的位置,则可以使用三个或更多信标来使用三角测量。如您所述,rssi不准确。因此,您需要使用滤波器(例如低通)来获得清晰的信号。
斯坦利·寇

iBeacon三边测量是一个可怕的想法,在实践中不起作用。但是,在无法实现三边测量的梦想之后,您可以将iBeacon用作漂亮的钥匙链。@塞缪尔说的一切都是对的。
nurettin

@nurettin好吧,使用扩展的卡尔曼滤波器,它可以在实践中工作。相信我,我在iBeacon制造公司工作。手机中的GPS也不准确,但是在GPS芯片中使用扩展的卡尔曼滤波器,它可以工作。唯一的问题是人们不想要那个。扫描蓝牙会消耗过多的电池。
斯坦利寇

@StanleyKou谢谢,我查了一下,扩展的卡尔曼滤波方法确实存在,并且有论文确认该方法有效(三边测量不起作用,但圆交集方法起作用)
nurettin

1

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.