Hi I am working on an augmented reality game, which has an unity scene as an overlay to the iPhone camera view. What I want to achieve is that when the phone is rotated up with the camera facing the celling or down towards the ground, the unity camera will follow realistically making it look like the object in the scene is where it would be expected. So far I am unity the iPhone gyroscope for the rotation. Code (csharp): newAngles.x += (Input.gyro.rotationRate.y * (180 / Mathf.PI)) * Time.deltaTime; However the rotation gets offset after a while due to the relative calculation of the rotation. What would be the best way to recalibrate the gyroscope? I tried to experiment with the attitude of the gyroscope Code (csharp): Gyroscope.attitude It gives a quaternion which I cant assign directly to the camera angles as the values seem a bit strange to me. As far as I know the values are suppose to be the yaw, pitch and roll. But it seems like some of the angles are dependent on each other. For instance when rotating around the X axis the value of the Y rotation suddenly switches so its inverted when using the euler angles representation. Im not sure why this happens?