iOS SDK - 检测用户的移动

时间:2011-12-12 02:13:39

标签: xcode4.2 accelerometer gyroscope ios5

在iOS SDK中,如何检测用户的移动?这是假设:

  • 用户将iPhone保持水平(与地面平行)
  • iPhone是3GS / 4 / 4s
  • 位置服务已开启(我需要吗?)
  • 用户四处走动,所以我必须检测他走多长时间(不需要准确)
  • 支持的操作系统是iOS 4& 5

我已经实施了CMDeviceMotion方向,倾斜&音高检测,但我仍然无法弄清楚如何检测用户的运动。请指教。万分感谢!

1 个答案:

答案 0 :(得分:1)

无法仅使用加速度计和陀螺仪精确检测设备的移动。

因为加速度计提供加速度,即第二次推导时间,需要进行两次积分。尽管传感器非常精确,但由于误差传播,这会在几个周期后导致巨大的误差。只要没有固定的参考点来重新校准计算,即使像卡尔曼滤波器这样的重数学也不能提供可接受的结果。

如果用户正在跑步而不是走路,则会出现略微不同的情况,因为可以用作计步器的上下运动更强。我不知道是否有人设法让这个工作,但我似乎基本上可以与我结合使用。即使这样,仍有一些问题,如待机模式或通过电话中断在后台推送您的应用程序。