我正在考虑为 Android 手机实现惯性导航系统,但我意识到考虑到加速度计的精度和读数的持续波动,这很难。
首先,我将手机放在平坦的表面上,并在 X 和 Y 方向上采样了 1000 个加速度计读数(与桌子平行,因此这些方向上没有重力作用)。然后,我对这些读数进行平均,并使用该值来校准手机(从每个后续读数中减去该值)。
然后,我再次将系统放在桌子上并在 X 和 Y 方向上采样 5000 个加速度计读数来测试系统。我预计,考虑到校准,这些加速度在每个方向上的总和应该为 0(大致)。然而,事实并非如此,超过 5000 次迭代的总加速度远不接近 0(每个轴上平均约为 10)。
我意识到,如果没有看到我的代码,这可能很难回答,但从更一般的意义上来说......
这只是手机(HTC Desire S)上的加速度计读数有多不准确的一个例子,还是更有可能是我在编码中犯了一些错误?
您可以通过对线性加速度进行两次积分来获得位置,但是这个错误是可怕的。在实践中是没有用的。
Here is 解释原因(Google 技术讲座) at 23:20。我强烈推荐这个视频。
导致问题的不是加速度计噪声,而是陀螺仪白噪声,请参见第 6.2.3 节“错误传播”。 (顺便说一句,您还需要陀螺仪。)
至于室内定位,我发现这些很有用:
使用 Sigma 点卡尔曼平滑器进行基于 RSSI 的室内定位和跟踪
使用安装在鞋子上的惯性传感器进行行人跟踪
使用单个加速度计增强计步器的性能
我不知道这些方法在现实应用程序中的表现如何,也不知道如何将它们变成一个漂亮的 Android 应用程序。
类似的问题是this.
UPDATE:
显然有一个比上面奥利弗·J·伍德曼(Oliver J. Woodman)的博士论文“惯性导航简介”更新的版本:
室内环境的行人定位
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)