[Math] Estimate Rotation and Translation from two sets of points in different coordinate systems

coordinate systemsrotations

I got one set of 3d $(x,y,z)$ points (number of points $\geq3$) located in two different coordinate systems.
Is it possible to estimate the rotation and translation between these systems?

Something like
$$
\begin{pmatrix}
x_i' \\
y_i' \\
z_i' \\
\end{pmatrix}
=
\begin{pmatrix}
r_{11} & r_{12} & r_{13} \\
r_{21} & r_{22} & r_{23} \\
r_{31} & r_{32} & r_{33} \\
\end{pmatrix}
\begin{pmatrix}
x_i \\
y_i \\
z_i \\
\end{pmatrix}
+
\begin{pmatrix}
t_x \\
t_y \\
t_z \\
\end{pmatrix}
$$

$$i = 0,1,…,n$$

Best Answer

Wikipedia calls it Kabsch algorithm, based on:

KABSCH, Wolfgang. A solution for the best rotation to relate two sets of vectors. Acta Crystallographica Section A: Crystal Physics, Diffraction, Theoretical and General Crystallography, 1976, 32.5: 922-923.

KABSCH, Wolfgang. A discussion of the solution for the best rotation to relate two sets of vectors. Acta Crystallographica Section A: Crystal Physics, Diffraction, Theoretical and General Crystallography, 1978, 34.5: 827-828.

A recent exaplanation in Least-Squares Rigid Motion Using SVD by Olga Sorkine-Hornung and Michael Rabinovich.

Another reference is: ARUN, K. Somani; HUANG, Thomas S.; BLOSTEIN, Steven D. Least-squares fitting of two 3-D point sets. IEEE Transactions on pattern analysis and machine intelligence, 1987, 5: 698-700.

If you do not know the correspondences between the points then you can apply a method called Iterative Closest Point (ICP):

BESL, P. J.; MCKAY, Neil D. A method for registration of 3-D shapes. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1992, 14.2: 239-256.

CHEN, Yang; MEDIONI, GĂ©rard. Object modelling by registration of multiple range images. Image and vision computing, 1992, 10.3: 145-155.

Related Question