Inverting transforms

Figure 3.8: (a) A rigid model that is contained in a one-by-one square. (b) The result after rotation by $ \pi /4$ (45 degrees), followed with translation by $ x_t= 2$. (c) The result after reversing the order: Translation by $ x_t= 2$, followed with rotation by $ \pi /4$.
\begin{figure}\begin{center}
\begin{tabular}{ccc}
\psfig{file=figs/face1.eps,wid...
...e10.eps,width=1.8in} \\
(a) & (b) & (c)
\end{tabular}\end{center}
\end{figure}

We frequently want to invert (or undo) transformations. For a translation $ (x_t,y_t,z_t)$, we simply apply the negation $ (-x_t,-y_t,-z_t)$. For a general matrix transform $ M$, we apply the matrix inverse $ M^{-1}$ (if it exists). This is often complicated to calculate. Fortunately, inverses are much simpler for our cases of interest. In the case of a rotation matrix $ R$, the inverse is equal to the transpose $ R^{-1} = R^T$.3.2 To invert the homogeneous transform matrix (3.23), it is tempting to write

$\displaystyle \left[ \begin{array}{ccc\vert c} & & & -x_t & R^T & & -y_t & & & -z_t \midrule 0 & 0 & 0 & 1 \end{array} \right] .$ (3.23)

This will undo both the translation and the rotation; however, the order is wrong. Remember that these operations are not commutative, which implies that order must be correctly handled. See Figure 3.8. The algebra for very general matrices (part of noncommutative group theory) works out so that the inverse of a product of matrices reverses their order:

$\displaystyle (A B C)^{-1} = C^{-1} B^{-1} A^{-1} .$ (3.24)

This can be seen by putting the inverse next to the original product:

$\displaystyle ABCC^{-1} B^{-1} A^{-1}.$ (3.25)

In this way, $ C$ cancels with its inverse, followed by $ B$ and its inverse, and finally $ A$ and its inverse. If the order were wrong, then these cancellations would not occur.

The matrix $ T_{rb}$ (from 3.23) applies the rotation first, followed by translation. Applying ([*]) undoes the rotation first and then translation, without reversing the order. Thus, the inverse of $ T_{rb}$ is

$\displaystyle \left[ \begin{array}{ccc\vert c} & & & 0  & R^T & & 0  & & & ...
...& 0 & -x_t 0 & 1 & 0 & -y_t 0 & 0 & 1 & -z_t 0 & 0 & 0 & 1 \end{bmatrix}.$ (3.26)

The matrix on the right first undoes the translation (with no rotation). After that, the matrix on the left undoes the rotation (with no translation).

Steven M LaValle 2020-01-06