Do I get more accurate or faster accelerometer rea

2020-04-08 01:08发布

问题:

I can use this method of the Core Motion framework:

- (void)startAccelerometerUpdatesToQueue:(NSOperationQueue *)queue withHandler:(CMAccelerometerHandler)handler

as an alternative to the

- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration

UIAccelerationDelegate method of UIKit. There, I have to specify the frequency of updates. I want to get acceleration data as fast and accurate as possible.

Is Core Motion my friend here? What's the frequency of readings I can expect from that method of Core Motion? The documentation doesn't talk about it.

回答1:

Edit! Now that this answer is OVER A YEAR OLD, certainly it is only of historic value. At this stage, I guess, everyone should only be using CoreMotion and that's that. Hope this historic answer it helps an history students!


My impression is that: CMAttitude and CMDeviceMotion give you the benefit of both the accel'r and the gyro (if the gyro is present). Whereas CMAccelerometerData is only the accel'r. (Exactly like in the old days before Core Motion.)

My impression is that the two specific advantages of CoreMotion are:

(One) the mindboggling convenience of having Quaternions and attitude given to you on a silver platter

(Two) apparently, both gyro and accel'r are used on machines with a gyro, with no extra work from you ... a huge advantage.

I believe there is no actual technical difference in the quality of usage of the accelerometer per se.

Thus: if (for some reason) you want only the accel'r, and you can do the math (if relevant to your task at hand), you could use the old-school accel'r delegate.

It seems that in short, none of us will ever again use the old-school accelerometer delegate!