在 iPhone 上检测运动(前进/后退)的算法?

Posted

技术标签:

【中文标题】在 iPhone 上检测运动(前进/后退)的算法?【英文标题】:Algorithm for detecting Movement (Forward/Backward) on the iPhone? 【发布时间】:2012-01-29 04:35:44 【问题描述】:

我想知道是否有可能编写代码让您知道用户是否在走路(他们的 iphone 塞在口袋里)以及他们正朝哪个方向行走。

更具体地说:

我对计算行驶距离不感兴趣 我对计算步数等不感兴趣。

我感兴趣的是检测运动和静止,区分两者,以及区分前进和后退。

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

假设我开始走路,然后我停下来,然后我开始向后走(不转 360 度......)

您认为有可能以能够在我的代码中相应地触发事件的方式来操纵来自加速度计/陀螺仪/指南针的数据吗?

给你一个更具体的例子:

想象一下,我希望我的 iPhone(放在口袋里)尽快开始播放音乐(响应速度到底有多快?)我开始走路,然后在我一停下来就停下来。然后在我开始倒退时播放视频(不转 360 度)。

【问题讨论】:

【参考方案1】:

没有。无法保证 iPhone 朝向哪个方向,加速度计中的噪音会妨碍长期校准。您可以使用 3 向陀螺仪消除噪声,但需要极快的处理器来管理算法。

您当然可以判断人是否在移动,只需获取加速度计轴的总和并检查它是否大于阈值,但至于哪个方向,这是不可能的任务。你当然可以边走边放音乐,但不能随意决定方向。

【讨论】:

感谢您的回复!假设我们忘记了向后的事情。如果假设我的手机放在口袋里,指南针不能在行走时检测到我的方向吗? 据我了解,除非指南针是水平的,否则不会。不过,我可能是错的。它也相对不准确和缓慢,但理论上,我想它可以使用。但是,它不会检测运动方向,只会转弯。

以上是关于在 iPhone 上检测运动(前进/后退)的算法?的主要内容,如果未能解决你的问题,请参考以下文章

MPMoviePlayerController 慢速前进和后退运动[重复]

Javascript/jQuery 仅在浏览器后退/前进按钮单击时检测哈希更改

Opera:检测后退、前进、刷新和关闭事件

我如何将 iphone 运动检测用于类似鸡蛋摇晃的应用程序?

在Edge里鼠标滚轮一动,页面就前进或后退了。怎样取消这个功能?

iPhone - 使用陀螺仪/加速度计检测运动