2010-04-19 95 views
5

我需要根据加速度计值获取android设备的速度。我制作了一个代码,可以获取加速度计值,然后使用以下公式计算速度: v = v0 + at。 (矢量计算)基于加速度计值的Android速度

我的问题是,我的速度只增加,从不减少。我认为问题在于该设备从未获得负面的加速度。

你能帮我吗?

回答

6

从加速度计获取速度也许是不可能的(忘了可靠的),因为以恒定的速度就没有加速度(重力之外)。您可能会更好地获取GPS位置数据及其相关时间样本,并计算随时间变化的距离。

+1

那么,问题是,我试图应用航位推算技术来弥补临时GPS故障。所以,当我开始从加速度计获取数值时,我没有GPS连接。我知道我会有一个累积错误,而且我知道这些值不可靠,但它是一项学术工作,只是为了检查它的可能性。 – nunolourenco 2010-04-20 00:24:31

+0

这是我的示例http://maephv.blogspot.com/2011/10/android-computing-speed-and-distance.html – Maep 2011-10-26 03:22:20

4

你是否在减去重力?该设备始终处于加速状态,即使坐在桌面上,距离地球中心9.8米/秒^ 2的速度也在加速。

+0

是的,我正在那样做。我认为这是9.8米/秒^ 2适用于Z分量。 – nunolourenco 2010-04-20 00:18:24

+0

只有当设备坐在桌子或其他完全水平的表面上时,情况才会如此。 – CommonsWare 2010-04-20 00:31:40

+0

是的,你是对的。因为我只是在考虑手机是水平的,所以我忘记了。谢谢;) – nunolourenco 2010-04-20 22:14:49

1

您可以使用加速度计和电子罗盘的组合,有他们的手机,以确定速度和方向在本post提及。

如果你需要做的是确定人在行走,你需要的是加速度计。只需处理脚步的输出。

有很多教程网页用于检测与加速度的脚步上。

有一个应用笔记这里:http://www.analog.com/library/analogDialogue/archives/41-03/pedometer.html,给出了一个体面的数学背景和示例算法。它当然取决于你提取数学和重写它的Android(示例代码是用C编写的)。我目前还不知道具有脚步检测算法的开源android库。

如果实现的东西,我想获得的代码,不要忘记回来后的结果。