【问题标题】:CoreMotion wont give me roll, pitch and yawCoreMotion 不会让我滚动、俯仰和偏航
【发布时间】:2013-03-13 10:20:37
【问题描述】:

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 毫秒读取一次由连续计时器触发的方法中的值。

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢先生,就是这样。不知道他们结合了两者的数据来实现这一目标。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-02
    • 1970-01-01
    • 1970-01-01
    • 2015-05-30
    相关资源
    最近更新 更多