在iPhone上检测运动(向前/向后)的algorithm?

我想知道是否有可能编写代码,让你知道用户是否在走路(他们的iphone被塞import袋里)以及他们走向哪个方向。

进一步来说 :

  • 我对计算行驶距离不感兴趣
  • 我对计算步骤等不感兴趣

我感兴趣的是检测运动和不动,区分两者,并区分前进和后退运动。

我知道使用iPhone 4S中的指南针可以检测到方向,但是向后移动呢?

比方说,我开始走路,然后停下来,然后我开始向后走(不用360度转弯..)

你认为有可能通过这样的方式处理来自加速度计/陀螺仪/罗盘的数据,以便能够相应地触发我的代码中的事件吗?

给你一个更具体的例子:

想象一下,我希望我的iPhone(在我的口袋里)尽快开始播放音乐(反应速度有多快?)我开始走路,然后停下脚步。 然后在我开始向后走路的时候立即播放一段video(不用转360)。

不可以。iPhone无法保证面向哪个方向,加速计中的噪声将阻止长时间的校准。 您可以使用三向陀螺仪使噪声无效,但需要一个速度非常快的处理器来pipe理algorithm。

你可以肯定地告诉人们是否正在移动,只要取得加速度计的轴的总和,并检查它是否大于一个阈值,但是在哪个方向上,这不是一个可能的任务。 当你走路的时候,你一定可以播放音乐,但是在方向上没有任何判断力。