Generalized quaternion interpolation

From Wikipedia, the free encyclopedia
Jump to: navigation, search

Generalized quaternion interpolation is an interpolation method that extends the quaternion slerp algorithm. This generalized method can interpolate between more than two unit-quaternions, but is neither closed-form nor fixed-time.

Definition of unconstrained interpolation[edit]

General interpolation of unconstrained values \left\{ p \right\} with weights \left\{ w \right\} is defined as the value m that solves the sum

\sum_i w_i \left( p_i - m \right) = 0 and \sum_i w_i = 1.

Because m and p values are unconstrained, this can be rewritten in the more familiar form of

m = \sum_i w_i p_i.\,

Unit quaternions, on the other hand, are constrained and the closed-form interpolation solution can not be applied to them.

Conversion to constrained interpolation[edit]

Because the unit-quaternion space is a closed Riemannian manifold, the difference between any two values on the manifold (in the tangent-space of the first value) can be defined as

d_{0,1} = \log \left( q_0^{-1} q_1 \right)

where the logarithm is the hypercomplex logarithm. This difference can be applied to the value in which it is a tangent-space member as

q_0 \exp \left( d_{0,1} \right) = q_1

where the hypercomplex exponential is used.

With these definitions in mind, the quaternion interpolation of values \left\{ q \right\} with weights \left\{ w \right\} can be defined (nearly identically to the unconstrained mean) as

\sum_i w_i \log \left( m^{-1} q_i \right) = 0

which says that the weighted sum of all differences to m (in m's tangent-space) is zero.

Recursive formulation[edit]

The quaternion mean value defined above can be found in a recursive algorithm with some initial estimate (one of the points, for example) that will halt when the net-error is below some threshold or the algorithm has iterated beyond some time limit.

Each iteration of the algorithm is as follows, with an initial mean estimate of m_0

e_{k-1} = \sum_i w_i \log \left( m_{k-1}^{-1} q_i \right)
m_{k} = m_{k-1} \exp \left( e_{k-1} \right)

as iteration index k increases, the value m_k will approach the true weighted-mean of the points.


  • Xavier Pennec, "Computing the mean of geometric features – Application to the mean rotation," Tech Report 3371, Institut National de Recherche en Informatique et en Automatique, March 1998.