# Why Euler Angle is set to be in ZYZ order?

We have 3 DOF for rotation in 3D space. So to describe an arbitrary rotation, we need to describe its 3 DOF. Euler angle does this by dividing a rotation in 3 steps, first rotate along the Z axis of the world frame ($$z_0$$), then rotate along Y axis of current frame ($$y_1$$), and finally rotate along the Z axis of the current frame($$z_2$$).

And of course we have other conventions like z-x-z, x-y-x, y-z-y, x-z-x, y-x-y.

And my question is, why the euler angle is define in this "ZYZ" manner? Why the first and third rotation are about the same axis (of course the first Z and the last Z are in different frames) ? Why not to use ZYX?

Euler angles are not always consistently defined as ZYZ. But this convention is common in robotics because many six-axis robotic manipulators have their fourth axis as a rotation about the forearm, then the fifth is a pitch about the wrist center, and then a final rotation along the Z axis of the end effector. It maps most closely to the physical devices.

There are many conventions for Euler angle sequence, just are there are many conventions for coordinate system axes.

Robotics generally uses right-hand coordinate frame for robots and robot parts, with x-forward, y-left, z-up. Euler angles in robotics are generally ZYZ ; using an a-b-a sequence (ZYZ, YZY, XZX, ...) rather than a-b-c (XYZ, YZX, ZYX, ...) sequence helps avoid singularity/gimbal lock issues.

However, robotics also often uses the optical/cameras/sensor-systems coordinate frame convention of z-forward, y-down, x-right for cameras and some other pixel-wise sensors which project the 3D world to a 2D image/matrix.

For an example of making conventions explicit, see the ROS REP 103 on metrics, coordinate systems, and rotation representations, and REP 105 on coordinate system naming, chaining, and conversion to Earth-centred/global systems and maps.

There are lots of other conventions. For example, see this explanation of the NASA Standard Aeroplane and NASA Standard Aerospace coordinate systems, which are x-fore, y-up, z-right and x-fore, y-up, z-right.

edit: This paper (Rotations in Three-Dimensions: Euler Angles and Rotation Matrices) gives a clear summary of the Euler angle parameters on pages 1 & 2, gimbal lock on pages 5 & 6, and problems with averaging Euler angles on page 8.

Euler's rotation theorem states that:

Any two independent orthonormal coordinate frames can be related by a sequence of rotations (not more than three) about coordinate axes, where no two successive rotations may be about the same axis.

That means there are a total of 12 rotation sequences possible, and we divide those into two groups of six. The Eulerian type involves repetition, but not successive, of rotations about one particular axis: XYX, XZX, YXY, YZY, ZXZ, or ZYZ. The Cardanian type is characterized by rotations about all three axes: XYZ, XZY, YZX, YXZ, ZXY, or ZYX.

There is a lot of inconsistency across the literature and many fields have their own specific conventions. What are commonly called "Euler angles" in robotics are the ZYZ sequence -- this is really quite arbitrary but it's useful if we all agree on it! Roll-pitch-yaw angles are of the Cardanian type and typically either XYZ or ZYX. It seems XYZ is common for robot arms and ZYX for mobile robots.

According to what I was taught in physics class, the convention Leonhard Euler introduced in the 1700s was YZY Eulers -- but the phrase "Euler Angles" is commonly applied to any of the 12 rotation order conventions mentioned by Peter Corke.

At my company we used to always use XYZ or ZYX rotation order, but we have discovered that using something like YZY is more intuitive. Suppose you have some type of member (say the forearm of an arm mechanism) that in its default configuration points in the Y-direction. If you consider a north pole to lie on the +Y axis, YZY rotation corresponds to a roll, followed by a change in latitude, followed by a change in longitude. If I can envision the orientation I want to achieve, I can guess its roll, latitude and longitude; or if the forearm is already at some orientation I can predict what will happen when I manipulate roll, latitude and longitude sliders. On the other hand, if the forearm is far from the default orientation, I have no idea what its X,Y,Z Eulers will be or what changes in one of those angles will do to the orientation.

Euler angles are not zyz. Euler angles are zyx. This is known as a 3-2-1 rotation. It is standard within the aerospace /robotics field where a series of three rotations are used to describe a relative orientation.

A good reference for this is Aircraft Control and Simulation by Stevens and Lewis. I have the 2nd edition and it sits on my desk at work (among good company) because it is an invaluable reference.

• I think what you're describing are actually Tait-Bryan angles, not true Euler angles, though to be fair I think everyone calls roll-pitch-yaw angles "Euler angles" as a means to differentiate from, say, quaternions. – Chuck Jul 15 '19 at 3:34