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

100msごとに連続タイマーでトリガーされるメソッドで値を読み取ります。

私が欠けているものについて何かアイデアはありますか?

4

1 に答える 1

0

使用deviceMotion.attitudeするには、を呼び出す必要があります[motionManager startDeviceMotionUpdates]

startAccelerometerUpdatesstartGyroUpdatesあなたに与えるのと同じようにのみ加速度計データを提供しますgyroData。デバイスのモーションデータは、加速度計とジャイロのデータだけではありません。両方が組み合わされて(センサーフュージョン)、精度が向上するためです。

于 2013-03-13T16:59:15.190 に答える