移动不会给我翻滚,俯仰和偏航



UIAccelerometer被iOS弃用之前,我使用了x, yz的数据来计算俯仰,滚转和偏航。我还必须做一些过滤,但现在我看到,与CoreMotion库,我可以从CMAttitude类获得这些数据,并真的想使用这些属性,但不知何故,我没有这样做。

现在我所做的就是实例化

CMMotionManager *motionManager;
CMDeviceMotion  *deviceMotion;
CMAttitude      *attitude;
...
deviceMotion    = motionManager.deviceMotion;
attitude        = deviceMotion.attitude;
motionManager.accelerometerUpdateInterval = 0.065; // 65ms
[motionManager startAccelerometerUpdates];

我能够从motionManager.accelerometerData.acceleration.<x,y or z>读取x,y和z,但试图从attitude.<roll,pitch,yaw> 读取给我0。

NSLog(@"Roll: %f", attitude.roll); // = 0

我在一个连续计时器每100ms触发一次的方法中读出值。

你知道我错过了什么吗?

为了使用deviceMotion.attitude,您必须调用[motionManager startDeviceMotionUpdates]

startAccelerometerUpdates只提供加速度计数据,就像startGyroUpdates会给你gyroData一样。请注意,设备运动数据不仅仅是加速度计和陀螺仪数据,因为它们两者将结合在一起(传感器融合)以实现更高的精度。

相关内容

  • 没有找到相关文章

最新更新