CoreMotion 不会让我滚动、俯仰和偏航
Posted
技术标签:
【中文标题】CoreMotion 不会让我滚动、俯仰和偏航【英文标题】:CoreMotion wont give me roll, pitch and yaw 【发布时间】:2013-03-13 10:20:37 【问题描述】:s在 ios 弃用 UIAccelerometer
之前,我使用来自此类的 x
、y
和 z
的数据来计算俯仰、滚动和偏航。我还必须进行一些过滤,但现在我看到使用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】:要使用deviceMotion.attitude
,您必须致电[motionManager startDeviceMotionUpdates]
。
startAccelerometerUpdates
仅提供加速度计数据,例如startGyroUpdates
将提供gyroData
。请注意,设备运动数据不仅仅是加速度计和陀螺仪数据,因为它们将结合(传感器融合)以实现更高的精度。
【讨论】:
谢谢先生,就是这样。不知道他们结合了两者的数据来实现这一目标。以上是关于CoreMotion 不会让我滚动、俯仰和偏航的主要内容,如果未能解决你的问题,请参考以下文章
iOS CoreMotion CMAttitude 相对于北极
给出初始和目标位置以及初始滚动,俯仰和偏航角度的目标滚动,俯仰和偏航角度
不寻常的 CoreMotion Sensorfusion 数据