Axis–angle representation
In mathematics, the axis–angle representation parameterizes a rotation in a three-dimensional Euclidean space by two quantities: a unit vector e indicating the direction (geometry) of an axis of rotation, and an angle of rotation θ describing the magnitude and sense (e.g., clockwise) of the rotation about the axis. Only two numbers, not three, are needed to define the direction of a unit vector e rooted at the origin because the magnitude of e is constrained. For example, the elevation and azimuth angles of e suffice to locate it in any particular Cartesian coordinate frame.
By Rodrigues' rotation formula, the angle and axis determine a transformation that rotates three-dimensional vectors. The rotation occurs in the sense prescribed by the right-hand rule.
The rotation axis is sometimes called the Euler axis. The axis–angle representation is predicated on Euler's rotation theorem, which dictates that any rotation or sequence of rotations of a rigid body in a three-dimensional space is equivalent to a pure rotation about a single fixed axis.
It is one of many rotation formalisms in three dimensions.
Rotation vector[edit]
The axis–angle representation is equivalent to the more concise rotation vector, also called the Euler vector. In this case, both the rotation axis and the angle are represented by a vector codirectional with the rotation axis whose length is the rotation angle θ,
Many rotation vectors correspond to the same rotation. In particular, a rotation vector of length θ + 2πM, for any integer M, encodes exactly the same rotation as a rotation vector of length θ. Thus, there are at least a countable infinity of rotation vectors corresponding to any rotation. Furthermore, all rotations by 2πM are the same as no rotation at all, so, for a given integer M, all rotation vectors of length 2πM, in all directions, constitute a two-parameter uncountable infinity of rotation vectors encoding the same rotation as the zero vector. These facts must be taken into account when inverting the exponential map, that is, when finding a rotation vector that corresponds to a given rotation matrix. The exponential map is onto but not one-to-one.
Example[edit]
Say you are standing on the ground and you pick the direction of gravity to be the negative z direction. Then if you turn to your left, you will rotate -π/2 radians (or -90°) about the -z axis. Viewing the axis-angle representation as an ordered pair, this would be
The above example can be represented as a rotation vector with a magnitude of π/2 pointing in the z direction,
Uses[edit]
The axis–angle representation is convenient when dealing with rigid-body dynamics. It is useful to both characterize rotations, and also for converting between different representations of rigid body motion, such as homogeneous transformations[clarification needed] and twists.
When a rigid body rotates around a fixed axis, its axis–angle data are a constant rotation axis and the rotation angle continuously dependent on time.
Plugging the three eigenvalues 1 and e±iθ and their associated three orthogonal axes in a Cartesian representation into Mercer's theorem is a convenient construction of the Cartesian representation of the Rotation Matrix in three dimensions.
Rotating a vector[edit]
Rodrigues' rotation formula, named after Olinde Rodrigues, is an efficient algorithm for rotating a Euclidean vector, given a rotation axis and an angle of rotation. In other words, Rodrigues' formula provides an algorithm to compute the exponential map from to SO(3) without computing the full matrix exponential.
If v is a vector in R3 and e is a unit vector rooted at the origin describing an axis of rotation about which v is rotated by an angle θ, Rodrigues' rotation formula to obtain the rotated vector is
For the rotation of a single vector it may be more efficient than converting e and θ into a rotation matrix to rotate the vector.
Relationship to other representations[edit]
There are several ways to represent a rotation. It is useful to understand how different representations relate to one another, and how to convert between them. Here the unit vector is denoted ω instead of e.
Exponential map from 𝔰𝔬(3) to SO(3)[edit]
The exponential map effects a transformation from the axis-angle representation of rotations to rotation matrices,
Essentially, by using a Taylor expansion one derives a closed-form relation between these two representations. Given a unit vector representing the unit rotation axis, and an angle, θ ∈ R, an equivalent rotation matrix R is given as follows, where K is the cross product matrix of ω, that is, Kv = ω × v for all vectors v ∈ R3,
Because K is skew-symmetric, and the sum of the squares of its above-diagonal entries is 1, the characteristic polynomial P(t) of K is P(t) = det(K − tI) = −(t3 + t). Since, by the Cayley–Hamilton theorem, P(K) = 0, this implies that
This cyclic pattern continues indefinitely, and so all higher powers of K can be expressed in terms of K and K2. Thus, from the above equation, it follows that
by the Taylor series formula for trigonometric functions.
This is a Lie-algebraic derivation, in contrast to the geometric one in the article Rodrigues' rotation formula.[1]
Due to the existence of the above-mentioned exponential map, the unit vector ω representing the rotation axis, and the angle θ are sometimes called the exponential coordinates of the rotation matrix R.
Log map from SO(3) to 𝔰𝔬(3)[edit]
Let K continue to denote the 3 × 3 matrix that effects the cross product with the rotation axis ω: K(v) = ω × v for all vectors v in what follows.
To retrieve the axis–angle representation of a rotation matrix, calculate the angle of rotation from the trace of the rotation matrix:
where is the component of the rotation matrix, , in the -th row and -th column.
The axis-angle representation is not unique since a rotation of about is the same as a rotation of about .
The above calculation of axis vector does not work if R is symmetric. For the general case the may be found using null space of R-I, see rotation matrix#Determining the axis.
The matrix logarithm of the rotation matrix R is
An exception occurs when R has eigenvalues equal to −1. In this case, the log is not unique. However, even in the case where θ = π the Frobenius norm of the log is
For small rotations, the above computation of θ may be numerically imprecise as the derivative of arccos goes to infinity as θ → 0. In that case, the off-axis terms will actually provide better information about θ since, for small angles, R ≈ I + θK. (This is because these are the first two terms of the Taylor series for exp(θK).)
This formulation also has numerical problems at θ = π, where the off-axis terms do not give information about the rotation axis (which is still defined up to a sign ambiguity). In that case, we must reconsider the above formula.
Unit quaternions[edit]
The following expression transforms axis–angle coordinates to versors (unit quaternions):
Given a versor q = r + v represented with its scalar r and vector v, the axis–angle coordinates can be extracted using the following:
A more numerically stable expression of the rotation angle uses the atan2 function:
See also[edit]
- Homogeneous coordinates
- Pseudovector
- Rotations without a matrix
- Screw theory, a representation of rigid-body motions and velocities using the concepts of twists, screws, and wrenches
References[edit]
- ^ This holds for the triplet representation of the rotation group, i.e., spin 1. For higher dimensional representations/spins, see Curtright, T. L.; Fairlie, D. B.; Zachos, C. K. (2014). "A compact formula for rotations as spin matrix polynomials". SIGMA. 10: 084. arXiv:1402.3541. Bibcode:2014SIGMA..10..084C. doi:10.3842/SIGMA.2014.084. S2CID 18776942.