next up previous
Next: Computing Point Correspondences Up: Scan Registration and Robot Previous: Scan Registration and Robot

Computing the Optimal Rotation and Translation in 6D

In every iteration the optimal transformation ($ \M R$, $ \V t$) has to be computed. Eq. ([*]) can be reduced to

$\displaystyle E(\M R, \V t)$ $\displaystyle \propto$ $\displaystyle \frac{1}{N} \sum_{i=1}^N
\norm {\V m_i - (\M R \V d_i + \V t)}^2,$ (2)

with $ N = \sum_{i=1}^{N_m}\sum_{j=1}^{N_d}w_{i,j}$, since the correspondence matrix can be represented by a vector containing the point pairs.

In earlier work [10] we used a quaternion based method [3], but the following one, based on singular value decomposition (SVD), is robust and easy to implement, thus we give a brief overview of the SVD based algorithms. It was first published by Arun, Huang and Blostein [2]. The difficulty of this minimization problem is to enforce the orthonormality of matrix $ \M R$. The first step of the computation is to decouple the calculation of the rotation $ \M R$ from the translation $ \V t$ using the centroids of the points belonging to the matching, i.e.,

$\displaystyle \V c_m = \frac{1}{N} \sum_{i=1}^{N} \V m_{i}, \qquad \qquad \V c_d = \frac{1}{N}
\sum_{i=1}^{N} \V d_{j}$     (3)

and
$\displaystyle M'$ $\displaystyle =$   (4)
$\displaystyle end{tex2html_deferred}{ \V m'_{i} = \V m_{i} - \V c_{m} $     (5)
$\displaystyle end{tex2html_deferred}}_{1,\ldots,N},$     (6)
$\displaystyle end{tex2html_deferred}$     (7)
$\displaystyle end{tex2html_deferred}
\qquad
D'$ $\displaystyle =$   (8)
$\displaystyle end{tex2html_deferred}{ \V d'_{i}$     (9)
$\displaystyle end{tex2html_deferred}= \V d_{i}$     (10)
$\displaystyle end{tex2html_deferred}, - \V c_{d} $     (11)
$\displaystyle end{tex2html_deferred}}_{1,\ldots,N}.$     (12)

After replacing ([*]), ([*]) and ([*]) in the error function, $ E(\M R,
\V t)$ eq. ([*]) becomes:
$\displaystyle \begin{eqnarray}
 E(\M R, \V t)
 &\propto& \frac{1}{N} \sum_{i=1}...
...)\\ 
 &&+ \frac{1}{N}
 \sum_{i=1}^{N}\norm {\tilde {\V 
 t}}^2.
 \end{eqnarray}$    

In order to minimize the sum above, all terms have to be minimized. The second sum ([*]) is zero, since all values refer to centroid. The third part ([*]) has its minimum for $ \tilde {\V t} = \VNull $ or
$\displaystyle \V t = \V c_m - \M R \V c_d.$     (14)

Therefore the algorithm has to minimize only the first term, and the error function is expressed in terms of the rotation only:
$\displaystyle E(\M R, \V t) \propto
\sum_{i=1}^{N}\norm {\V m'_{i}-\M R \V d'_i}^2.$      

Theorem: The optimal rotation is calculated by $ \M R = \M V \M U^T$. Herby the matrices $ \M V$ and $ \M U$ are derived by the singular value decomposition $ \M H = \M U \M
\Lambda \M V^T$ of a correlation matrix $ \M H$. This $ 3 \times 3$ matrix $ \M H$ is given by

\begin{displaymath}\M H = \sum_{i=1}^{N} \V m'^T_i \V d'_i
= \left(
\begin{array...
...} & S_{yz} \\
S_{zx} & S_{zy} & S_{zz} \\
\end{array}\right),\end{displaymath}      

with $ S_{xx} = \sum_{i=1}^{N} \m'_{ix} d'_{ix}, \S_{xy} =
\sum_{i=1}^{N} \m'_{ix} d'_{iy}, \\ ldots \, $. The analogous algorithm is derived directly from this theorem.

Proof: See [2] or [9].

Finally, the optimal translation is calculated using eq. [*]) (see also ([*])).


next up previous
Next: Computing Point Correspondences Up: Scan Registration and Robot Previous: Scan Registration and Robot
root 2005-05-03