iOS:Core Motion用于检测距离较大的移动?

时间:2011-11-16 17:46:04

标签: iphone ios accelerometer core-motion

我有一个GPS应用程序,我想检测用户是否站着不动。使用Core Location可以解决这个问题,但有时候不准确,因为新的更新会移动并产生速度和运动的错觉。

所以,我想知道除此之外,我还可以使用Core Motion。这是一个好主意来检测运动,如行走,跑步,驾驶等,并知道他们什么时候不再做这个动作?或者,Core Motion仅用于小型移动,例如倾斜设备或将其抬到耳朵上?

3 个答案:

答案 0 :(得分:1)

我想告诉其他访问此问题的人我学到了什么,以及我对这种方法的看法。

我一直在做自己的一些研究,以了解这是否可行,更重要的是,即使它是检测到的位置变化的电池消耗和准确度。但对于Android,this question在很久以前就被问过了。 The answer提供了this Google Tech Talk的链接。在23:20,演讲者谈到了实现这一目标的难度以及在结果中将达到的准确性。

尽管我必须意识到iPhone上传感器的电池消耗量比大多数Android手机要小一些,但我仍然认为这在准确性和电池消耗方面是一项代价高昂的事情。

答案 1 :(得分:0)

如果你将倾斜角度频率变化和GPS速度信息结合起来,你可以使用带有传感器读数的GPS来区分步行,跑步等等(当然,你需要做一些工作来获得这些信息,但这就是做到这一点的方法)。

答案 2 :(得分:0)

您正在讨论来自4种不同传感器的4种不同测量值(技术上超过4种但是......) -

  1. 纬度&经度 - 来自CoreLocation。它使用GPS +蜂窝塔三角测量的混合。
  2. 加速度计 - 3D空间中设备的当前方向。
  3. 陀螺仪 - 设备在其自身轴上的方向。
  4. 磁力计 - 告诉你设备指向哪个方向w.r.t南,北,东,西
  5. 在所有这些中,我认为只有Latitude&经度对你有用。基本上你所做的是使灵敏度(即传感器的更新速率)稍微放松一些。通过对此进行一些调整,您应该能够准确地判断一个人是站着还是移动。