是否可以通过随时间积分加速度计数据来计算速度?

时间:2011-08-12 07:26:10

标签: android sensor

我想知道我是否可以使用(线性)加速计和指南针来计算速度而不使用位置服务。我想通过北/西/上轴计算加速度分量并随时间积分来实现这一点。

那会有用吗?

3 个答案:

答案 0 :(得分:3)

一般来说,Android设备上的加速度计噪音太大,无法整合信号并获得速度。此外,您还需要对器件方向进行几乎完美的估算,即使使用陀螺仪(少数设备)也常常太嘈杂。

主要问题是从加速度计信号中减去重力,因为重力通常是信号的一个非常大的分量。如果手机方向估计稍微偏离,则会以错误的方向减去重力。这使得加速度的分量在错误的方向上,并且您的速度估计很快变得无用。

当您知道设备没有移动时,基本上需要定期(每秒一次)重置速度估计。实现此目的的一种方法是,如果设备的用户正在行走,则将设备安装在脚上并尝试检测脚何时在地面上(速度在所有方向上为零)。但是,将设备安装在用户的脚上通常是对实际使用而言过于严格的限制。

可以采取其他方法来跟踪运动。例如,使用步进检测和陀螺仪,我已经能够跟踪一两分钟的步行者,精确度为几米。

答案 1 :(得分:2)

理论上,你可以这样做;在实践中,没有。

你必须假设你知道一个初始速度,但假设你从0开始速度并不是一个错误的假设。

您还必须知道整个时期内设备的实际方向。否则,您无法区分由于实际加速而导致的加速度变化,而不仅仅是旋转设备。

(请记住,你必须从读数中取出因重力引起的加速度!)

最后,错误会在一段时间内增加,不仅因为加速度的测量不完美,而且因为随着时间的推移你只得到离散的样本。

除了所有这些东西,当然,它有效! API确实告诉您读数的单位(m / s ^ 2)。您可以要求传感器进行快速更新。我认为通过编写一个应用程序执行此操作,然后将手机放平,然后向前走并停止使用它,看看它是如何准确的。那么阅读的接近0是多少?

答案 2 :(得分:0)

可能不是,因为如果你以慢速恒速行驶,我认为加速计没有检测到任何东西。