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

时间:2013-03-13 10:20:38

标签: objective-c accelerometer core-motion pitch cmmotionmanager

s在{iOS}不推荐使用UIAccelerometer之前,我使用了此类中xyz的数据来计算音高,滚动和偏航。我还必须进行一些过滤,但现在我看到CoreMotion库我可以从CMAttitude class获取这些数据并且真的想使用这些属性,但不知何故我没有这样做。

现在,我所做的是实例化

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

我读出了每100毫秒由连续计时器触发的方法中的值。

关于我缺少什么的任何想法?

1 个答案:

答案 0 :(得分:0)

要使用deviceMotion.attitude,您必须致电[motionManager startDeviceMotionUpdates]

startAccelerometerUpdates仅提供加速计数据,startGyroUpdates会为您提供gyroData。请注意,设备运动数据不仅仅是加速度计和陀螺仪数据,因为它们将被组合(传感器融合)以实现更高的精度。