I noticed that if I call the startDeviceMotionUpdates method of the CMMotionManager class and then rotate the device and put it back on the table the reported device attitude is changing constantly, every time the reported rotation matrix is different from the last time. Has anyone else noticed the same behavior ?
Apparently drifting of the gyro reference frame is a common issue and this is because it computes current attitude by aggregating rotation rates around axes over time