Device yaw attitude reported by CMMotionManager drifts

Originator:tomas.stenarson
Number:rdar://22415685 Date Originated:150825
Status:Open Resolved:
Product:iOS SDK Product Version:iOS 9.0 [13A4325c]
Classification: Reproducible:Sometimes
 
Summary:
The device's yaw attitude changes at a constant rate even though the device is resting in a fixed position/orientation. This occurs only on some devices, both iOS 8 and iOS 9 Beta. I currently have an iPhone 5 with iOS 9 Beta installed which displays this problem every time, but it has also been seen in the field on various devices with iOS 8.

Steps to Reproduce:
1. Download sample code MotionGraphs
2. In file APLDeviceMotionGraphViewController.m: Instead of calling startDeviceMotionUpdatesToQueue:withHandler: on CMMotionManager, call startDeviceMotionUpdatesUsingReferenceFrame:toQueue:withHandler using CMAttitudeReferenceFrameXMagneticNorthZVertical as reference frame.
3. Install and start the application on a device
4. Let the device rest still with x- or z-axis vertical
5. Note the graphs presented as deviceMotion.attitude

Expected Results:
The graphs should display three curves (yaw, pitch and roll) with constant values (depending on the device's resting orientation).

Actual Results:
On some devices, the yaw curve keeps increasing/decreasing with a steady pace (and wraps at ±pi).

Notes:
With the device's x-axis vertical, yaw makes a full rotation in one minute, with the y-axis vertical it's steady as expected though. Any other angle (e.g the z-axis vertical) yields a yaw change rate somewhere between 2*pi and 0 rad/min.

Comments


Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!