Content
    Axis-Angle Representation of Rotation

Exponential Coordinates of Rotations (Rodrigues' formula)

Axis-Angle Representation of Rotation

An alternative representation to rotation matrices is the axis-angle representation in the form:

ω^θR3\hat{\omega}\theta \in \mathbb{R}^3

Where:

  • ω^R3\hat{\omega} \in \mathbb{R}^3: Rotation axis (unit vector: ω^=1\left\|\hat{\omega}\right\| = 1)
  • θR\theta \in \mathbb{R}: Rotation angle

Exponential Coordinates of Rotation

If a frame (initially coincident with the identity matrix II) rotates about ω^\hat{\omega} for θ\theta units of time (i.e. ω^\hat{\omega} is integrated over that time interval) the final position would be expressed by the rotation matrix RR.

Matrix Exponential (Rodrigues’ formula)

From the axis-angle [ω^]θ=[ω^θ]so(3)[\hat{\omega}]\theta =[\hat{\omega}\theta] \in so(3) representation the matrix exponential (rotation matrix) can be calculated:

Rot(ω^,θ)=e[ω^]θ=I+sin(θ)[ω^]+(1cos(θ))[ω^]2Rot(\hat{\omega}, \theta) = e^{[\hat{\omega}]\theta} =I+\sin(\theta)[\hat{\omega}]+(1-\cos(\theta))[\hat{\omega}]^{2}

With:

  • Rot(ω^,θ)SO(3)Rot(\hat{\omega}, \theta) \in SO(3): Matrix exponential of ω^θ\hat{\omega}\theta
  • ω^R3\hat{\omega} \in \mathbb{R}^3: Rotation axis (unit vector)
  • θR\theta\in \mathbb{R}: Rotation angle
  • [ω^]θ=[ω^θ]so(3)[\hat{\omega}]\theta = [\hat{\omega}\theta] \in so(3): Skew-symmetric matrix form of axis-angle representation

The matrix exponential is used to construct a rotation matrix from a rotation axis ω^\hat{\omega} and an angle of rotaion θ\theta. The resulting rotation matrix represents the final orientation. The initial orientation is the identity matrix II.

Exponentiation integrates the angular velocity ω^\hat{\omega} for time θ\theta seconds going from the identity matrix II to the final rotation matrix RR.

Exp: [ω^]θso(3)RSO(3)[\hat{\omega}]\theta \in so(3) \rightarrow R \in SO(3)

Matrix exponential is like integration

Rotation of a Vector

e[ω^]θpe^{[\hat{\omega}]\theta}p has the effect of rotating pR3p \in \mathbb{R}^3 about the fixed frame axis ω^\hat{\omega} by angle θ\theta.

Rotation of a Frame

R=e[ω^]θR=Rot(ω^,θ)RR' = e^{[\hat{\omega}] \theta} R = Rot(\hat{\omega}, \theta) R is the orientation achieved by rotating RR by θ\theta about the axis ω^\hat{\omega} in the fixed frame.

R=Re[ω^]θ=RRot(ω^,θ)R'' = Re^{[\hat{\omega}] \theta} = R Rot(\hat{\omega}, \theta) is the orientation achieved by rotating RR by θ\theta about the axis ω^\hat{\omega} in the body frame.

Logarithm

The inverse of the matrix exponential (matrix logarithm) takes a rotation matrix RR and returns the skew-symmetric representation of the exponential coordinates that achieve it starting from the identity orientation II.

It returns the angular velocity and the integration time that achieves the rotation matrix RR.

The matrix logarithm is an algorithm that inverts Rodrigues’ formula:

  1. if R=IR = I then θ=0\theta = 0 and ω^\hat{\omega} is undefined
  2. else if trR=1tr R = -1 then θ=π\theta = \pi and ω^\hat{\omega} is one of the following (choose a feasible solution):
    • ω^=12(1+r33)[r13r231+r33]\hat{\omega} = \frac{1}{\sqrt{2(1 + r_{33})}}\begin{bmatrix} r_{13}\\r_{23}\\ 1 + r_{33}\end{bmatrix}
    • ω^=12(1+r22)[r121+r22r32]\hat{\omega} = \frac{1}{\sqrt{2(1 + r_{22})}}\begin{bmatrix} r_{12}\\1+r_{22}\\ r_{32}\end{bmatrix}
    • ω^=12(1+r11)[1+r11r21r31]\hat{\omega} = \frac{1}{\sqrt{2(1 + r_{11})}}\begin{bmatrix} 1+ r_{11}\\r_{21}\\ r_{31}\end{bmatrix}
    • Note: f ω^\hat{\omega} is a solution so is ω^-\hat{\omega} as well
  3. otherwise θ=cos1(12(trR1))[0,π)\theta = cos^{-1}(\frac{1}{2}(tr R - 1)) \in [0, \pi) and [ω^]=12sinθ(RRT)[\hat{\omega}] = \frac{1}{2 sin \theta}(R - R^T)

Every RSO(3)R \in SO(3) satisfies one of the three cases of the algorithm. That means that for every RR there exists a matrix logarithm [ω^]θ[\hat{\omega}]\theta and thus also a set of exponential coordinates ω^θ\hat{\omega}\theta such that R=e[ω^]θR = e^{[\hat{\omega}]\theta}.

Log: RSO(3)[ω^]θso(3)R \in SO(3) \rightarrow [\hat{\omega}]\theta \in so(3)

Matrix log is like differentiation

Literature

Notes taken from:

Modern Robotics: Mechanics, Planning, and Control by Kevin M. Lynch and Frank C. Park, Cambridge University Press, 2017



  • Category

  • Mathematics

  • Tags

  • Robotics

  • Created

  • 8. October 2019


  • Modified

  • 3. June 2023