当手机加速度计用于定位时,其真实世界精度是多少?

12
我正在开发一个应用程序,希望能够追踪移动用户在没有GPS信号的建筑内的位置。用户从一个已知的固定位置开始(精度在5厘米以内),然后激活手机中的加速计来跟踪相对于该固定位置的任何进一步运动。我的问题是,在当前的智能手机(如iPhone、Android手机等)中,基于这些手机通常配备的加速计,我们能够期望多精确地跟踪某人的位置?
具体的例子会更好,例如:“如果我从起点向X方向移动50米,向Y方向移动35米,向Z方向移动5米,则我可以预计在大多数当前的智能手机上将我的位置近似精确到+/- 80厘米左右”,或者其他类似的情况。
我只有对像卡尔曼滤波器这样的技术有肤浅的了解,尽管如果这些技术与我的应用程序有关,并且有人想描述我可能从这些技术中得到的校正质量的话,那将会是一个加分项。

1
我没有数据,但我可以想象每个型号都会有很大的差异。甚至可能是你拿手机的方式也会有所不同。 - GolezTrol
不完全相同,但结合无线电塔三角测量、GPS以及随时间测量和调整加速度计误差,您应该能够提高位置数据的精度。 - Prof. Falken
4个回答

16

13
你在哪里回答的?你的回答似乎是一个循环集,即“这是可能的,但非常错误,请看这里”的循环…… - thepaperboy
@user1423133,我已经修复了链接。很抱歉出现混乱。很奇怪你是第一个注意到它的人。感谢警告! - Ali
1
如果你需要它来进行传感器融合的二次检查,那么这并不是个坏事。对于绝对位置来说它相对没用,但是对于给另一个算法提供线索来说,这是非常有用的东西。使用卡尔曼滤波器。 - Joel Teply
@thepaperboy 他对于加速度计整合的每个问题都发了同样的回答。每天这样做5次,就能获得56k+的堆栈溢出积分!非常聪明,Ali,非常聪明。 - undefined
@Peter "这个想法很棒" 不,不是的。如果你看一下平均分数(每个答案的分数),它是一场灾难,比那些没有重复的答案差2-5倍。分数与流量成正比,一个规范答案在谷歌中排名更高。所以,从分数的角度来看,它也不好,只需看一下数据就知道了。 - undefined
显示剩余2条评论

7

我不知道这个帖子是否仍然开放,或者你是否仍在尝试这种方法,但是考虑到我尝试了同样的事情,我至少可以提供一些帮助。

正如Ali所说...太可怕了!加速度计中最小的测量误差在双重积分后变得非常荒谬。由于步行时加速度不断增加和减少(实际上每次脚步),因此这种误差会随着时间的推移迅速累积。

很抱歉给你带来了坏消息。我也不想相信它,直到自己尝试过...滤除不需要的测量值也没有用。

如果你有兴趣继续进行你的项目,我还有另一种可能可行的方法(这是我在计算机工程学位论文中采用的方法)...通过图像处理!

基本上,你遵循光学鼠标的理论。光流或视角运动。在Android NDK中实现的图像处理算法。甚至使用NDK实现了OpenCV以简化算法。将图像转换为灰度图像(补偿不同的光照强度),然后对图像实施阈值处理、图像增强(以补偿步行时图像模糊)、角点检测(增加总体结果估计的准确性),然后进行模板匹配,这实际上是在图像帧之间进行比较并估计实际位移量的过程。

然后你通过试错来估计哪些像素数代表哪些距离,并乘以该值将像素位移转换为实际位移。这可以一直工作到一定的移动速度,真正的问题是由于行走导致相机图像仍然过于模糊而无法进行精确比较。这可以通过设置相机快门速度或ISO来改善(我还在尝试中)。

所以希望这能帮助到你...否则就搜索实时应用程序的Egomotion。最终你会找到正确的东西,并理解我刚刚向你解释的内容。 enjoy :)


我曾考虑过图像处理的可能性。目前在准确度方面的最新技术是什么?我猜想一个人不能简单地走进一个陌生的房间并可靠地测量距离,至少不是通过任何接近于即插即用的代码库? - Bryce Thomas
2
我进行了几项测试,通过走定长距离(缓慢而稳定的步速,以消除视频模糊效果,但能够看到像素位移计算的真实精度),并比较每个测试的像素位移结果。这是在均匀着色的地毯上进行的。结果产生了平均误差率为6%的标准值内(高斯曲线上)的平均误差。换句话说,大约有94%的准确性。之前在瓷砖表面进行的测试产生了约90.8%的准确性。整个“代码技巧”就是完善您的阈值实现(用于模板匹配)。 - PwC

1
典型的手机加速度计芯片在12位下分辨率为+/-2g,提供全范围1024个比特或0.0643英尺/秒^2 lsb。采样率取决于时钟速度和整体配置。典型速率可实现每秒1至400次采样,更快的速率提供更低的精度。除非将手机安装在蜗牛上,否则位移测量可能无法使用。您可以考虑使用光学距离测量代替手机加速度计。请查看松下设备EKMB1191111。

1
光学方法不错,但OpenCV提供了一些特征变换。然后进行特征匹配(OpenCV提供此功能)。
没有第二个参考点(2个相机),由于深度的原因,您无法直接重建所在位置。最多可以估计每个点的深度,假定运动,根据几个帧对该假设进行评分,并在每个深度和运动处重新猜测,直到有意义为止。编写代码并不难,但不稳定,场景中物体的微小运动会使其出现问题。我尝试过:)
使用第二个相机并不难。但是手机没有它们。

现在,一些手机有两个摄像头。 - rriemann

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接