Question

According to the reference, The deviceMotion property is only available on devices having both an accelerometer and a gyroscope. This is because its sub-properties are the result of a sensor fusion algorithm i.e. both signals are evaluated together in order to decrease the estimation errors.

Emm, my question is where is the internal implementation, or algorithm that CMMotionManager use to do the calculation. I want some detail about this so called "senser fusion algorithm"

Popular fusion algorithms are for instance the Kalman filter and derivatives but I guess the CMMotionManager's internal implementation is based on simpler and thus faster algorithms. I expect some simple but good enough math calculation upon the senser data from accelerometer and gyroscope to finally calculate the roll, yaw and pitch

Was it helpful?

Solution

It is not clear what is actually implemented in Core Motion.

As for filters other than the Kalman filter: I have implemented sensor fusion for Shimmer 2 devices based on this manuscript.

You may find this answer on Complementrary Filters also helpful, see especially filter.pdf

I would not use roll, pitch and yaw for two reasons: (1) it messes up the stability of your app and (2) you cannot use it for interpolation.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top