使用安卓指南针,加速度计和陀螺仪获取当前位置

时间:2014-02-10 15:24:58

标签: java android mobile gps

我是android编程的新手。我知道如何使用GPS在室外环境中获得用户的位置。

但是我遇到了一个问题,即在没有GPS可用的建筑物内找到一个人的位置。

我可以处理编码部分,但我需要了解如何使用指南针,加速度计和陀螺仪数据或除GPS以外的任何其他传感器数据,以便在通过指南针,加速度计后获取用户在建筑物内的当前位置,以及陀螺仪数据到服务器。这里考虑建筑物内部的映射。

对不起,如果这是一个愚蠢的问题。

2 个答案:

答案 0 :(得分:1)

今天室内定位非常困难,如果不是不可能的话。

在建筑物的多个地方安装低能量蓝牙“信标”是有效的, 并将其用作信息。 (参见ios Beacons)(但你必须自己管理,beaconID和bulding中的位置之间的关系)。

使用指南针,加速度计和陀螺仪,您将无法获得(成功): 在这个Google Tech Talk video中,它非常详细地解释了为什么陀螺仪/加速度计(相对)导航无法工作,因为轻微的不准确性会在2或3秒内累积到如此强烈以至于您无法使用结果。这是双重整合的原因,请参阅23:30的视频。

私人WLAN(在您的建筑物内)三角测量可以工作,但不能在(有限的)电话内部,它不能提供哪些WLAN可以保持可变的信息。

在您的智能手机中已经构建了GSM-Cell或Wlan位置以供室内使用。

还有一种方法:
评估建筑物的磁场。

这可行,并且至少有一家公司可以为此工作,但您必须针对每栋建筑进行校准 但这更像是一个研究主题,而不是一个众所周知的技术。

更多信息
My Algorithm to Calculate Position of Smartphone - GPS and Sensors

答案 1 :(得分:1)

听起来您打算使用基于最后一次良好GPS定位的加速度计数据来执行inertial navigation。我想你会发现这在手机上是行不通的。惯性导航中使用的加速度计 - 例如,在飞机中 - 必须非常精确且高度校准,以最大限度地减少误差。即便如此,所有惯性系统都会随着时间而漂移。由于手机的准确度相对较低,这些错误会迅速累积,并使您的位置解决方案无法快速无法使用。

如果没有GPS,大多数手机仍然可以使用cell-site multilateration为您提供粗略的位置估算。这远不如GPS固定那么准确,但它总比没有好。

另见室内定位的优秀讨论(也提到惯性导航): Android accelerometer accuracy (Inertial navigation)