根据Apple文档,加速度计测量沿轴的加速度,陀螺仪测量轴>>的旋转速率。
实际上,事情很奇怪。
使用加速计功能时:
- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration
似乎陀螺仪和加速度计一起工作。
当沿x轴快速移动时,我得到的值大于1,如1.5-2,这是正常的,因为我得到了加速度。但是当旋转iphone AROUND 其x轴时,值也会在0-1之间变化,例如,如果我按住它并且值为0.3,并且我旋转了一点,我看到0.6,如果我再旋转0.8。但这是一个陀螺仪的行为,因为当速度为0(我停止旋转)时,我应该看到加速度-0而不是0.6。它似乎向我展示了陀螺仪的角度位置。
无论如何,这里发生了什么?值应该为0,直到我移动快速沿轴而不是围绕它。
我找不到任何答案,似乎很多人都不明白这一点。
答案 0 :(得分:2)
在此之前,我们必须就条款达成一致:
在我看来,APPLE在调用加速度时从传感器获得的值是错误的。 在翻译的二阶导数中加速,所以d(dx)/ d(dt),所以当iphone稳定时,应该为零。 在我看来,这些值只是角度。 请参阅苹果样本,使用“二阶滤波器”来获得加速度。“第二阶”滤波器意味着第二个导数,如果我没记错我的研究内容。
希望这可以提供帮助。
答案 1 :(得分:2)
加速度计报告设备正在经历的加速度与它在自由落体时遇到的加速度之间的差异。因此,如果加速度计返回零矢量,那么作用在手机上的唯一力就是重力(即,你已经放弃了它)。通常它会是其他一些价值。如果手机在桌子上休息,它将显示相对于手机的重力方向。因此,加速度计通常用于确定哪个方向下降 - 以便UI可以旋转,并且在游戏中可以使用设备作为方向盘。
陀螺仪可以观察设备旋转的速度。 CoreMotion库可以自动集成它以获得当前角度。
带陀螺仪的设备还有一个三轴加速度计(除了传统的加速度计),可以沿三个轴单独测量加速度。
答案 2 :(得分:0)