0

sBefore UIAccelerometer осуждались с прошивки я использовал данные из x, y и z от этого класса для расчета тангажа, крена и рыскания. Мне также пришлось сделать некоторую фильтрацию, но теперь я вижу, что с библиотекой CoreMotion я могу получить эти данные из CMAttitude class и действительно хотел бы использовать эти свойства, но почему-то я этого не делаю.CoreMotion обыкновения давать мне крен, тангаж и рыскание

Теперь, что я сделал это, чтобы создать экземпляр

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> но при попытке чтения из attitude.<roll,pitch,yaw> дает мне 0.

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

I зачитывают значения в методе, вызванном непрерывным таймером каждые 100 мс.

Любые идеи о том, что мне не хватает?

ответ

0

Для того, чтобы использовать deviceMotion.attitude, необходимо позвонить по телефону [motionManager startDeviceMotionUpdates].

startAccelerometerUpdates содержит данные акселерометра, такие как startGyroUpdates даст вам gyroData. Обратите внимание, что данные движения устройства больше, чем просто данные акселерометра и гироскопа, поскольку оба они будут объединены (слияние датчиков) для достижения большей точности.

+0

Спасибо, сэр, все. Не знали, что они объединили данные из этих двух, чтобы достичь этого. – chwi

 Смежные вопросы

  • Нет связанных вопросов^_^