Let me first describe what I am trying to accomplish...

I have a 3D simulated environment that describes the orientation of objects as Euler angles (alpha, beta, and gamma).

Euler angles convention

In this environment I have an object with an obvious forwards and backwards direction (lets say a coin with a forwards arrow drawn on it).

Now I want always know what the rotation of this coin is at all times relative to the world.

If the coin is simply rotating around its vertical axis I can measure this as the rotation to the world.

But if the coin was to flip over (now the arrow is on the bottom of it), I have not measured any rotation in the vertical axes, but the arrow is now pointing 180 degrees in the other direction.

I'm not sure if I am being tackling this the wrong way, but I cant seem to find a way of working out something heading from the given Euler Angles.

If anyone knows an easy way to convert between the two, that would be great.



People used to Euler parameters know that:

-"If the coin is simply rotating around its vertical axis" then at zero pitch, only the roll angle is changing.

-"(...) if the coin was to flip over"*, then at zero roll, the pitch would be increased by 180 degrees.

This convention makes intuitive sense for airplanes that usually don't fly backwards or with the belly up.

I myself grab better intuition from the angle+vector notation. Note that one angle and a direction vector define any 3D rotation. But it might be easier to convert your Euler angles to quaternions, as they have better numerical properties. Equations for the conversion are available here. Then, it is straightforward to convert the quaternion to angle+vector.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.