Euler angles are three angles that specify a general rotation as a product of three rotation
matrices. According to Euler's rotation
theorem, any rotation may be described in this way.
If the rotations are written as matrices ,
, and
, then a general rotation
can be written as
|
(1)
|
The rotation matrices below describe passive rotations in a right-handed
coordinate system. They act on column vectors,
so gives the coordinates
of a fixed vector in the rotated coordinate
system. The corresponding active rotation of a vector in a fixed coordinate
system is described by the transpose
. In the illustrations, faint axes
show the coordinate system before each rotation,
while solid axes show it afterward. The yellow sector marks
the angle of each rotation,
and subscripts 0, 1, 2, and 3 distinguish the successive
coordinate systems. There are several conventions
for Euler angles, depending on the axes about which the
rotations are carried out. Write the matrix
as
|
(2)
|
The so-called "-convention,"
illustrated above, is the most common definition. It uses successive rotations
of the coordinate system about the
-,
-,
and
-axes. These
are intrinsic rotations, meaning that each axis
moves with the coordinate system after each
step. In this convention, the Euler angles
specify
1. the first rotation is by an angle about the z-axis
using
,
2. the second rotation is by an angle about the x-axis
after the first rotation using
, and
3. the third rotation is by an angle about the z-axis
after the second rotation using
.
The equivalent extrinsic description uses rotations about fixed axes in the reverse order, with angles ,
, and
about the
-,
-,
and
-axes, respectively.
Note, however, that several notational conventions for the angles are in common use. Goldstein (1980, pp. 145-148) and Landau and Lifschitz (1976)
use , Tuma (1974) says
is used in aeronautical
engineering in the analysis of space vehicles (but claims that
is used in the analysis of gyroscopic motion),
while Bate et al. (1971) use
. Goldstein remarks that continental authors
usually use
,
and warns that left-handed coordinate
systems are also in occasional use (Osgood 1937, Margenau and Murphy 1956-64).
Varshalovich (1988, pp. 21-23) uses the notation
or
to denote the Euler angles, and gives
three different angle conventions, none of which corresponds to the
-convention.
Here, the notation
is used. In the Wolfram Language,
the passive rotation matrix
is given by EulerMatrix[
-psi, -theta, -phi
,
3, 1, 3
]. The corresponding active rotation
matrix
is given by EulerMatrix[
phi, theta, psi
,
3, 1, 3
]. To apply the passive rotation
to a list of three-dimensional graphics primitives g, use GeometricTransformation[g,
m], where m is the matrix
. In the
-convention, the component rotations
are then given by
|
(3)
| |||
|
(4)
| |||
|
(5)
|
so
|
(6)
| |||
|
(7)
| |||
|
(8)
| |||
|
(9)
| |||
|
(10)
| |||
|
(11)
| |||
|
(12)
| |||
|
(13)
| |||
|
(14)
|
When the Euler angles depend on time, overdots denote derivatives with respect to time. To obtain the components
of the angular velocity in the body axes, note that for
a matrix
|
(15)
|
it is true that
|
(16)
| |||
|
(17)
|
Now,
corresponds to rotation about the
axis, so look at the
component of
,
|
(18)
| |||
|
(19)
|
The line of nodes corresponds to a rotation by about the
-axis, so look at the
component of
,
|
(20)
| |||
|
(21)
| |||
|
(22)
|
Similarly, to find rotation by about the remaining axis, look
at the
component of
,
|
(23)
| |||
|
(24)
| |||
|
(25)
|
Combining the pieces gives
|
(26)
|
For more details, see Goldstein (1980, p. 176) and Landau and Lifschitz (1976, p. 111).
The -convention
Euler angles are given in terms of the Cayley-Klein
parameters by
|
(27)
| |||
|
(28)
| |||
|
(29)
|
The "-convention",
illustrated above, describes successive intrinsic rotations
about the
-,
-, and
-axes. Its passive rotation
matrix can be obtained from the
-convention by the substitutions
|
(30)
| |||
|
(31)
|
Therefore,
|
(32)
| |||
|
(33)
| |||
|
(34)
| |||
|
(35)
|
The component passive rotation matrices for these intrinsic rotations are
|
(36)
| |||
|
(37)
| |||
|
(38)
|
and
is given by
|
(39)
| |||
|
(40)
| |||
|
(41)
| |||
|
(42)
| |||
|
(43)
| |||
|
(44)
| |||
|
(45)
| |||
|
(46)
| |||
|
(47)
|
In the intrinsic -
-
(yaw-pitch-roll) convention illustrated above,
is yaw,
is pitch, and
is roll. The successive rotations
are about the initial z-axis, the y-axis
after the first rotation, and the x-axis
after the second rotation. The component passive rotation matrices are
|
(48)
| |||
|
(49)
| |||
|
(50)
|
and
is given by
|
(51)
| |||
|
(52)
| |||
|
(53)
| |||
|
(54)
| |||
|
(55)
| |||
|
(56)
| |||
|
(57)
| |||
|
(58)
| |||
|
(59)
|
A set of parameters sometimes used instead of angles are the Euler parameters ,
,
and
, defined by
|
(60)
| |||
|
(61)
|
Using Euler parameters (which are quaternions), an arbitrary rotation matrix can be described by
|
(62)
| |||
|
(63)
| |||
|
(64)
| |||
|
(65)
| |||
|
(66)
| |||
|
(67)
| |||
|
(68)
| |||
|
(69)
| |||
|
(70)
|
(Goldstein 1980, p. 153).
If the coordinates of two sets of points
and
are known, with one obtained exactly from the other by
a rotation about the origin,
then the Euler rotation matrix can be obtained
using least squares fitting. Write the points as arrays of vectors,
so
|
(71)
|
Writing the arrays of vectors as matrices gives
|
(72)
|
|
(73)
|
If has matrix
rank 3, then
is invertible, and solving for
gives
|
(74)
|
For noisy data, this formula gives an unconstrained least squares fitting solution, which need not be a rotation
matrix. A rotation matrix must be an orthogonal
matrix with determinant 1. However, we want the
angles ,
, and
, not their combinations contained in the matrix
. Therefore, write the
matrix
|
(75)
|
as a column vector
|
(76)
|
Now set up the matrices
|
(77)
|
These derivatives can be used in an iterative nonlinear least squares fitting procedure to estimate the angles ,
, and
. Convergence depends on the initial estimates and the fitting
method.