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 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 (not to be confused with a vector of Euler angles). 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 θ, {\displaystyle {\boldsymbol {\theta }}=\theta \mathbf {e} ,円.} It is used for the exponential and logarithm maps involving this representation.
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 {\displaystyle (\mathrm {axis} ,\mathrm {angle} )=\left({\begin{bmatrix}e_{x}\\e_{y}\\e_{z}\end{bmatrix}},\theta \right)=\left({\begin{bmatrix}0\0円\\-1\end{bmatrix}},{\frac {-\pi }{2}}\right).}
The above example can be represented as a rotation vector with a magnitude of π/2 pointing in the z direction, {\displaystyle {\begin{bmatrix}0\0円\\{\frac {\pi }{2}}\end{bmatrix}}.}
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 {\displaystyle {\mathfrak {so}}(3)} 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 {\displaystyle \mathbf {v} _{\mathrm {rot} }=\mathbf {v} +(\sin \theta )(\mathbf {e} \times \mathbf {v} )+(1-\cos \theta )(\mathbf {e} \times (\mathbf {e} \times \mathbf {v} )),円.}
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 so(3) to SO(3)
[edit ]The exponential map effects a transformation from the axis-angle representation of rotations to rotation matrices, {\displaystyle \exp \colon {\mathfrak {so}}(3)\to \mathrm {SO} (3),円.}
Essentially, by using a Taylor expansion one derives a closed-form relation between these two representations. Given a unit vector {\textstyle {\boldsymbol {\omega }}\in {\mathfrak {so}}(3)=\mathbb {R} ^{3}} 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, {\displaystyle R=\exp(\theta \mathbf {K} )=\sum _{k=0}^{\infty }{\frac {(\theta \mathbf {K} )^{k}}{k!}}=I+\theta \mathbf {K} +{\frac {1}{2!}}(\theta \mathbf {K} )^{2}+{\frac {1}{3!}}(\theta \mathbf {K} )^{3}+\cdots }
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 {\displaystyle \mathbf {K} ^{3}=-\mathbf {K} ,円.} As a result, K4 = –K2, K5 = K, K6 = K2, K7 = –K.
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 {\displaystyle R=I+\left(\theta -{\frac {\theta ^{3}}{3!}}+{\frac {\theta ^{5}}{5!}}-\cdots \right)\mathbf {K} +\left({\frac {\theta ^{2}}{2!}}-{\frac {\theta ^{4}}{4!}}+{\frac {\theta ^{6}}{6!}}-\cdots \right)\mathbf {K} ^{2},,円} that is, {\displaystyle R=I+(\sin \theta )\mathbf {K} +(1-\cos \theta )\mathbf {K} ^{2},,円}
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 so(3)
[edit ]Let K continue to denote the ×ばつ 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: {\displaystyle \theta =\arccos \left({\frac {\operatorname {Tr} (R)-1}{2}}\right)} and then use that to find the normalized axis, {\displaystyle {\boldsymbol {\omega }}={\frac {1}{2\sin \theta }}{\begin{bmatrix}R_{32}-R_{23}\\R_{13}-R_{31}\\R_{21}-R_{12}\end{bmatrix}}~,}
where {\displaystyle R_{ij}} is the component of the rotation matrix, {\displaystyle R}, in the {\displaystyle i}-th row and {\displaystyle j}-th column.
The axis-angle representation is not unique since a rotation of {\displaystyle -\theta } about {\displaystyle -{\boldsymbol {\omega }}} is the same as a rotation of {\displaystyle \theta } about {\displaystyle {\boldsymbol {\omega }}}. Of course, adding any integer multiple of 2π to {\displaystyle \theta } will also result in the identical rotation; a better method is to constrain {\displaystyle \theta } to the interval [0, 2π) or (-π, π].
The above calculation of axis vector {\displaystyle \omega } does not work if R is symmetric. Because, this is possible only when {\displaystyle \theta } = π, so sin({\displaystyle \theta }) = 0, causing a division by 0 in the formula. However, the limit of the formula for {\displaystyle \omega }, as {\displaystyle \theta } → π, gives the correct value for {\displaystyle \omega }. For the general case the {\displaystyle \omega } may also be found using null space of R-I, see rotation matrix#Determining the axis.
The matrix logarithm of the rotation matrix R is {\displaystyle \log R={\begin{cases}0&{\text{if }}\theta =0\\{\dfrac {\theta }{2\sin \theta }}\left(R-R^{\mathsf {T}}\right)&{\text{if }}\theta \neq 0{\text{ and }}\theta \in (-\pi ,\pi )\end{cases}}}
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 {\displaystyle \|\log(R)\|_{\mathrm {F} }={\sqrt {2}}|\theta |,円.} Given rotation matrices A and B, {\displaystyle d_{g}(A,B):=\left\|\log \left(A^{\mathsf {T}}B\right)\right\|_{\mathrm {F} }} is the geodesic distance on the 3D manifold of rotation matrices.
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.
{\displaystyle R=I+\mathbf {K} \sin \theta +\mathbf {K} ^{2}(1-\cos \theta )} At θ = π, we have {\displaystyle R=I+2\mathbf {K} ^{2}=I+2({\boldsymbol {\omega }}\otimes {\boldsymbol {\omega }}-I)=2{\boldsymbol {\omega }}\otimes {\boldsymbol {\omega }}-I} and so let {\displaystyle B:={\boldsymbol {\omega }}\otimes {\boldsymbol {\omega }}={\frac {1}{2}}(R+I),,円} so the diagonal terms of B are the squares of the elements of ω and the signs (up to sign ambiguity) can be determined from the signs of the off-axis terms of B.
Unit quaternions
[edit ]The following expression transforms axis–angle coordinates to versors (unit quaternions): {\displaystyle \mathbf {q} =\left(\cos {\tfrac {\theta }{2}},{\boldsymbol {\omega }}\sin {\tfrac {\theta }{2}}\right)}
Given a versor q = r + v represented with its scalar r and vector v, the axis–angle coordinates can be extracted using the following: {\displaystyle {\begin{aligned}\theta &=2\arccos r\\[8px]{\boldsymbol {\omega }}&={\begin{cases}{\dfrac {\mathbf {v} }{\sin {\tfrac {\theta }{2}}}},&{\text{if }}\theta \neq 0\0,円&{\text{otherwise}}.\end{cases}}\end{aligned}}}
A more numerically stable expression of the rotation angle uses the atan2 function: {\displaystyle \theta =2\operatorname {atan2} (|\mathbf {v} |,r),,円} where |v| is the Euclidean norm of the 3-vector v.
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.