0

sBefore已从 iOS 中弃用,UIAccelerometer我使用来自和此类的数据来计算俯仰、滚动和偏航。我还必须进行一些过滤,但现在我看到使用库我可以从中获取这些数据并且真的很想使用这些属性,但不知何故我没有这样做。xyzCoreMotionCMAttitude

现在,我所做的是实例化

CMMotionManager *motionManager;
CMDeviceMotion  *deviceMotion;
CMAttitude      *attitude;
...
deviceMotion    = motionManager.deviceMotion;
attitude        = deviceMotion.attitude;

motionManager.accelerometerUpdateInterval = 0.065; // 65ms
[motionManager startAccelerometerUpdates];

我可以读取 x、y 和 z,motionManager.accelerometerData.acceleration.<x,y or z>但尝试读取时attitude.<roll,pitch,yaw> 会得到 0。

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

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

关于我所缺少的任何想法?

4

1 回答 1

0

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

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

于 2013-03-13T16:59:15.190 回答