Exponential coordinates

Suppose we want to perform a rotation around axis \(\hat{\omega}_s\) in the \(\{s\}\) frame, by some rate of rotation \(\dot{\theta}\). The angular velocity of frame \(\{b\}\) in frame \(\{s\}\) is then \(\omega_s = \dot{\theta}\hat{\omega}_s\). As the \(\{b\}\) frame rotates, its x-axis traces out a circle, and its linear velocity is in a direction tangent to this circle, computed as \(\dot{\hat{x}}_b = \omega_s \times \hat{x}_b\). Similarly, \(\dot{\hat{y}}_b = \omega_s \times \hat{y}_b\) and \(\dot{\hat{z}}_b = \omega_s \times \hat{z}_b\).

More compactly, \(\dot{R}_{sb} = [\dot{\hat{x}}_b \;\dot{\hat{y}}_b \;\dot{\hat{z}}_b ] = [\omega_s]R_{sb}\).

\(\hat{\omega}\theta\) is called the exponential coordinates, and is an alternative representation to the rotation matrix.

Suppose now that instead of a frame, we have a vector \(p(t)\), rotating around \(\hat{\omega}\) - we want to know the its location after it rotates an angle \(\theta\). From the equation above, substituting \(p(t)\) instead of \(R_{sb}\) we get that \(\dot{p}(t) = [\hat{\omega}]\times p(t)\), which has solution \(p(t) = e^{[\hat{\omega}]\theta}p(0)\).

This means that rotation around the axis \(\hat{\omega}\) with angle \(\theta\), \(R(\hat{\omega},\theta)\) is equivalent to the matrix exponential \(e^{[\hat{\omega}\theta]}\). In fact, expanding the Taylor series for the matrix exponential yields Rodrgiuez's formula.

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

This also reveals the relationship between so(3) and SO(n) with \(n=3\) since the matrix exponential takes \([\hat{\omega}\theta] \in so(3)\) to \(R \in SO(3)\), meanwhile the matrix logarithm does the inverse.



Lynch, Kevin M., and Frank C. Park. 2017. Modern Robotics: Mechanics, Planning, and Control. 1st ed. USA: Cambridge University Press.

Author: Nazaal

Created: 2022-03-13 Sun 21:44