Practical Parameterization of Rotations Using the Exponential Map

F. Sebastian Grassia
Carnegie Mellon University

This paper appears in issue Volume 3, Number 3.
Purchase this issue from the akpeters.com web site.

Abstract

Parameterizing three degree-of-freedom (DOF) rotations is difficult to do well. Many graphics applications demand that we be able to compute and differentiate positions and orientations of articulated figures with respect to their rotational (and other) parameters, as well as integrate differential equations, optimize rotation parameters, and interpolate orientations. Widely used parameterizations such as Euler angles and quaternions are well suited to only a few of these operations. The exponential map maps a vector in R³ describing the axis and magnitude of a three-DOF rotation to the corresponding rotation. Several graphics researchers have applied it with limited success to interpolation of orientations, but it has been virtually ignored with respect to the other operations mentioned above. In this paper we present formulae for computing, differentiating, and integrating three-DOF rotations with the exponential map. We show that our formulation is numerically stable in the face of machine precision issues, and that for most applications all singularities in the map can be avoided through a simple technique of dynamic reparameterization. We demonstrate how to use the exponential map to solve both the “freely rotating body” problem and the important ball-and-socket joint required to accurately model shoulder and hip joints in articulated figures. Examining several common graphics applications, we explain the benefits of our formulation of the exponential map over Euler angles and quaternions, including robustness, small state vectors, lack of explicit constraints, good modeling capabilities, simplicity of solving ordinary differential equations, and good interpolation behavior.

Author Information

F. Sebastian Grassia, CMU, Dept of Computer Science, 4212 Wean Hall, Pittsburgh, PA 15213 spiff@cs.cmu.edu

Source Code

Sample C code contains routines to compute the rotation matrix, its partial derivatives, and the time derivative for two- and three-DOF exponential map rotations.

To illustrate use of the exponential map in an application context, pseudocode outlines the calculation of the Jacobian contribution of a node in a transformation hierarchy with respect to the end effectors below it.

BibTeX Entry

@article{Grassia98,
  author = "F. Sebastian Grassia",
  title = "Practical Parameterization of Rotations Using the Exponential Map",
  journal = "journal of graphics, gpu, and game tools",
  volume = "3",
  number = "3",
  pages = "29-48",
  year = "1998",
}