Skip to content

Instantly share code, notes, and snippets.

@rygorous
Created March 13, 2015 02:06
Show Gist options
  • Star 6 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rygorous/c651b3a2be11cf7a384a to your computer and use it in GitHub Desktop.
Save rygorous/c651b3a2be11cf7a384a to your computer and use it in GitHub Desktop.
Re-re-re-rediscovery...
(On a math problem, the solutions of which have been independently discovered in
essentially every field that encountered it, because nobody seems to come up
with a name that others think to search for. This is copy & pasted from an old
mail.)
It's actually easy to find papers on this because this problem has been chewed on by dozens
of researchers over decades, all of them unaware of each other's work (...great).
Here's some pointers:
- Wahba's problem: http://en.wikipedia.org/wiki/Wahba%27s_problem
(this is Aeronautics / Control Theory)
- Markley's solution (1988, SVD):
http://www.control.auc.dk/~tb/best/aug23-Bak-svdalg.pdf - this has weights!
- The quaternion solution is known as "Davenport's q-method" in those circles.
This is pure rotation but the general cases start by reducing to pure rotation.
Molecular chemistry/crystallography guys call this the Kabsch algorithm:
- http://en.wikipedia.org/wiki/Kabsch_algorithm
- Kabsch (1976) solves this using SVD - link on Wikipedia.
Computer Vision folks like to call it "Absolute Orientation"
- Horn (1987) has the Quaternion solution:
http://people.csail.mit.edu/bkph/papers/Absolute-OCR.pdf
- Horn (1988) then does the SVD solution:
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.67.6649&rep=rep1&type=pdf
- Umeyama (1991), the one I quote, has a crucial correction wrt the sign of the
correction factor - though of course he rediscovered the solution himself.
In Maths, it's a bit more general and called the "Orthogonal Procrustes Problem":
- http://en.wikipedia.org/wiki/Orthogonal_Procrustes_problem
- Schonemann (1966) has a solution for the general problem.
I'm sure there's even more.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment