biVector forum

Averaging rotation


I am new to this forum, (and to this field) but there are great materials here, thanks for your effort. (and excuse me for my naive understanding …)

I came from the MRI neuro imaging community where where realignment between to image is a primary task. Every one is working with the Euler representation, and I thinks for the purpose (coregistration) it is just find. ( it is a mess because of different convention used by different software, but manageable)

I am also working on simulation of MRI acquisition during subject motion within the scanner, and I add to solve then a “new” problem :
How to compute an average affine ?

(Just for the context, I need this average, to remove it from the input motion time course, so that the simulated volume would be at the same spatial position as the motion free volume)

If I have only translation then the solution is simple : it is a simple vector arithmetic mean
but for rotation things get more complicate,
I saw a few mathematical paper on this topic, and then I realised the importance of dual quaternion and finally I come to look at PGA

So my question is to know if PGA will have a “smarter” answer to this question … ?

There are several possible generalizations of the mean to spherical quantities, none of them perfectly analogous to the affine mean.

Maybe start with Buss & Fillmore (2001) “Spherical Averages and Applications to Spherical Splines and Interpolation.”

One thing I find works okay in practice for small regions is to take your n-sphere and stereographically project it around some point roughly in the center of your region, then just take the regular mean in the new flat coordinate system.

If you want something that will be invariant under rotation you can iterate (re-center your stereographic projection at the mean you found and use the new projection to find a new mean, then repeat until the result stops changing).

Sorry I a new to this field, and I just starting reading the amazing documentation found on this forum.

thanks for your response, but It seems a bit difficult …

Why not just take the ‘regular’ means of n motors (as the average rotations of the n rotations written with the n motors ) ?

I recently compared 3 norms for comparing an averaging rotation, using some GA to do the analysis, but with classicallly implementable results.

Optimal Combination of Orientation Measurements Under Angle, Axis and Chord Metrics

Leo Dorst


@LeoDorst you might be interested in using a rational parametrization (if you like, you can think of taking a stereographic projection centered at the midpoint, and then linearly interpolating in projected space) as an alternative to slerp or chord-based interpolation. For moderately sized angles this behaves much better than chordal interpolation and doesn’t require a square root every time. If you need to compute many intermediate rotations it is significantly less expensive than slerp.

If you really decide you need slerp, you can furthermore compose with a fast approximation of the tangent function and cut all the transcendental functions:

1 Like