2010-07-05 96 views

回答

9

您可以使用加速计的加速度值来测量速度和距离。有很好的论文(Implementing Positioning Algorithms Using Accelerometers),它解释了你从加速度计得到的错误以及从加速度值获得速度和位置的技术。

一些伪代码:

velocity[i] = (acceleration[i] + acceleration[i-1])/2 * interval + velocity[i-1] distance[i] = (velocity[i] + velocity[i-1])/2 * interval + distance[i-1]

interval是其与所述加速计的更新频率acceleration/velocity[i]acceleration/velocity[i-1]之间的时间。

要提高准确度,您必须过滤正手中的加速度值。我已经在iPhone 3GS上实现了这样的算法,并且工作得很好。加速度计让我们测量距离为30厘米,误差约为1厘米。我还没有测试更长的距离。

+0

如果我正确理解这一点,那么您必须跟踪来自地球重力的静态加速度,因为设备的物理方向可能会发生变化。把它扔到空中会使它翻倒,变“下”。我不确定我对此的解释是否正确,但我认为论文中描述的单一“校准”假定设备的定向不变。 – 2011-10-19 21:14:15

+0

没错,这种方法假定设备的方向在移动过程中不会改变。 – brutella 2011-10-20 17:49:19

+0

@brutella能否请你提供你的算法? – 2016-04-26 13:39:24