用于定位的手机加速度计的真实世界准确度是多少?

时间:2011-05-17 07:39:51

标签: android geolocation accelerometer

我正在开发一个应用程序,我想跟踪移动用户在GPS不可用的建筑物内的位置。用户在众所周知的固定位置(精确到5厘米内)开始,此时电话中的加速度计将被激活以跟踪相对于该固定位置的任何进一步移动。我的问题是,在当代智能手机(iphone,Android手机等)中,人们可以准确地根据这些手机通常配备的加速度计来跟踪某些人的位置吗?

具体的例子很好,例如“如果我从起点移动50米X,从起点移动35米Y,从起点移动5米Z,我可以预期我的位置近似于+ / - 大多数现有智能手机上的80厘米“,或者其他什么。

我对卡尔曼滤波器等技术只有肤浅的理解来校正漂移,但是如果这些技术与我的应用相关并且有人想要描述我可能从这些技术中获得的校正的质量,那将是一个加分

4 个答案:

答案 0 :(得分:14)

如果将加速度计值积分两次,则得到位置,但错误很可怕。它在实践中毫无用处。

这是an explanation why (Google Tech Talk) 23:20。

我回答a similar question.

答案 1 :(得分:7)

我不知道这个帖子是否仍然打开,或者即使你仍在尝试这种方法,但我至少可以给出一个输入,考虑到我尝试了同样的事情。

阿里说......太可怕了!加倍度计中最小的测量误差在双重积分后变得无重复。并且由于行走时加速度的不断增加和减少(实际上是每一步脚),这个错误会随着时间的推移而迅速累积。

抱歉这个坏消息。我也不想相信它,直到尝试自己...过滤掉不需要的测量也不起作用。

如果你有兴趣继续你的项目,我还有另一种可能合理的方法。 (我为我的计算机工程学位论文所遵循的方法)......通过图像处理!

你基本上遵循光学鼠标的理论。光流,或称为视图,Ego-Motion。在Androids NDK中实现的图像处理算法。甚至通过NDK实现了OpenCV来简化算法。您将图像转换为灰度(补偿不同的光强度),然后对图像实施阈值处理,图像增强(以补偿行走时图像变得模糊),然后进行角点检测(提高总结果估计的准确度),然后进行模板匹配做图像帧之间的实际比较并估算像素数量的实际位移。

然后,您将通过反复试验来估算哪个像素数量代表哪个距离,并乘以该值以将像素位移转换为实际位移。这可以工作直到一定的移动速度,真正的问题是相机图像仍然变得太模糊,无法通过行走进行准确的比较。这可以通过设置相机快门或ISO(我还在玩这个)来改进。

所以希望这会有所帮助......否则谷歌会为Egomotion提供实时应用程序。最终你会得到正确的东西,并找出我刚刚向你解释的乱语。 享受:)

答案 2 :(得分:1)

光学方法很好,但OpenCV提供了一些功能转换。然后你进行功能匹配(OpenCV提供了这个)。

如果没有第二个参考点(2个摄像头),您无法通过深度重建直接位置。最多可以估计每个点的深度,假设运动,基于几个帧对假设进行评分,并在每个深度和运动处重新猜测,直到它有意义。这并不难以编码,但它并不稳定,场景中的小动作搞砸了。我试过了:))

虽然有了第二台相机,但它并不那么难。但是手机没有它们。

答案 3 :(得分:0)

典型的电话加速度计芯片在12位时解析度为+/- 2g,可在整个范围内提供1024位或0.0643 ft / sec ^ 2 lsb。采样率取决于时钟速度和整体配置。典型的速率每秒可进行1到400个样本,而速率越高,精度越低。除非将手机安装在蜗牛上,否则可能无法进行位移测量。您可能会考虑使用光学距离测量代替电话加速度计。查看Panasonic设备EKMB1191111。