Confusion about order of rotations for Euler Angles

10.2k Views Asked by At

I'm taking a robotics class and trying to understand Euler angles. My understanding is, matrices are applied to to the vector from right to left (the first transformation applied is the one closest to $\overrightarrow{\boldsymbol{x}} $)

My book defines Euler angles as:

enter image description here

enter image description here

enter image description here

If we are rotating about the Z axis first, then shouldn't the rightmost matrix be for the Z rotation and not the X rotation?

Shouldn't we have the transformation $${_a^b}R_{{Z^\prime}{Y^\prime}{X^\prime}}=R_X(\gamma)R_Y(\beta)R_Z(\alpha) $$ rather than $${_a^b}R_{{Z^\prime}{Y^\prime}{X^\prime}}=R_Z(\alpha)R_Y(\beta)R_X(\gamma) $$

I've read the definition from my textbook in several places and am aware it is correct, but

3

There are 3 best solutions below

3
On BEST ANSWER

This comes from the fact that the $\hat Z_B$ rotation moves the $\hat Y_B$ axis you're rotating about next.

If you do them in your proposed order, then the result is what you would get if you rotate the $B$ axes about $\hat Z_A$, $\hat Y_A$, and then $\hat X_A$, rather than $\hat Z_B$, then (the new) $\hat Y_B$, and then (the even newer) $\hat X_B$.

I propose you find a book or a die or a cup or something and play around with $90^\circ$ and $180^\circ$ turns (it's what I did before writing this answer, as a sanity check). For simplicity, say $\gamma = 0^\circ$ (at least at first) so you only get two rotations, and see how it works.

1
On

The difference is between intrinsic and extrinsic rotations.

In intrinsic rotations, each rotation is about a current axis

In extrinsic rotations, each rotation is about the original axes

Refer: https://en.wikipedia.org/wiki/Euler_angles#Definition_by_intrinsic_rotations

In your image, the intrinsic rotation convention is used.

4
On

The classic consecutive matrix product $R_2 R_1$ applies to rotations about original axes (extrinsic).

Normally, it is more easy to visualize , e.g., a rotation around $z$, followed by a rotation around the new axis $y'$ (intrinsic).

But $y'=R_z \, y$, and to convert the rotation $R_{y'}$ around $y'$ into a rotation around $y$, you shall first revert $R_z$, apply the rotation around $y$, bring again $y$ to $y'$, so we can write

$$R_{y'}R_z = (R_z R_y {R_z}^{-1}) R_z = R_z R_y$$

And that is the same for additional rotations.

That corresponds to how a linear map transforms under a change of the reference system: what $R_{y'}$ produces in the new system is what $(R_z R_y {R_z}^{-1})$ does in the original one.

In fact, if we have a rotation (or any linear transform) that applied to a generic vector $\bf v$ provides a vector $\bf w$ $$ {\bf w} = {\bf R}\,{\bf v} $$ if we transform the two vectors through a linear invertible matrix $\bf T$ (so including rotations, but not only), i.e. $$ {\bf v'} = {\bf T}\,{\bf v}\quad {\bf w'} = {\bf T}\,{\bf w} $$ then we have $$ {\bf w'} = {\bf T}\,{\bf w} = {\bf T}\,{\bf R}\,{\bf v} = {\bf T}\,{\bf R}\,{\bf T}^{\, - \,{\bf 1}} \;{\bf Tv} = \left( {{\bf T}\,{\bf R}\,{\bf T}^{\, - \,{\bf 1}} } \right){\bf v'} $$

The matrix $\bf R$ and ${{\bf T}\,{\bf R}\,{\bf T}^{\, - \,{\bf 1}} }$ are similar matrices