4
$\begingroup$

I would be grateful for any help with the steps required to complete this calculation. You may assume that I have some experience with matrices from before, but I am obviously no master!

So we have a transformation between the frame $O$ and $O'$. It's a rigid transformation so it shouldn't deform the object. Supposedly first you align the axes by rotating the frame $O$ around $x$, then translate the frame $O$ to $O'$ - and finally align the two coordinate frames. I've seen the problem in practice, but I struggle to understand the problem when I'm supposed to express it as a function of the rotation matrix.

enter image description here

I've found it difficult to find documentation on this online, any good resources relevant to this question are gladly accepted!

$\endgroup$
4
  • $\begingroup$ Hello, I didn't downvote your question. Although you nicely explained what you are capable of and your question is nicely asked, I guess the question is downvoted for a lack of effort shown. This is somewhat an unstated rule here that you need to show the work you have done, or share your thoughts about the problem. Otherwise your question might be downvoted, which is to be interpreted as that the downvoter finds that your question still could be improved (e.g. by showing your thoughts about the problem, or any attempts you have made to solve it). $\endgroup$ – Pedro Apr 14 '15 at 21:34
  • $\begingroup$ I am also trying to give this rule somewhat and official status by adding these information explicitly to the how to ask page. Now this information is considered to be a part of the part on having done research effort, although it still might confuse some of us quite a bit I guess. A topic about this matter is run on meta here. PS: I upvoted your question because I see you are trying to follow the guidelines. $\endgroup$ – Pedro Apr 14 '15 at 21:37
  • 1
    $\begingroup$ @Pedro Thanks for letting me know! I've tried to extend the problem definition, and hopefully the question will be accepted by the community as it is now! $\endgroup$ – Noruel Sulatre Apr 14 '15 at 21:42
  • $\begingroup$ Decomposable also as Euler angles? $\endgroup$ – Narasimham Apr 14 '15 at 21:53
6
$\begingroup$

This looks like a homework question. Because, there is not other way to represent the inverse of the transformation without using the provided rotation matrix and translation vector.

I guess the person who asked the question would like you to see that the form of the inverse looks "nice" because the last row of the transformation ins [0, 0, 0, 1]

You could derive this by hand for a generic 4x4 matrix. See here for a formula.

Another way to derive this is to go to first principles. The inverse of a matrix $A$ is a matrix $B$ such that $AB=I$.

Let us look at the rotation part. Rotations are members of the Special Orthogonal group $SO(3)$ and have the property that for $R\in SO(3)$, and $det(R)=+1$ $R^{-1} = R^T$.

Look at a rigid transformation with rotation only, i.e.

$\begin{pmatrix}R & 0 \\ 0^T & 1\end{pmatrix}$, its inverse is:

$\begin{pmatrix}R^T & 0\\ 0^T & 1\end{pmatrix}$ because:

$\begin{pmatrix} R & 0 \\ 0^T & 1 \end{pmatrix} \begin{pmatrix}R^T & 0\\ 0^T & 1\end{pmatrix} = \begin{pmatrix} RR^T & 0 \\ 0^T & 1 \end{pmatrix} = \begin{pmatrix}I & 0\\ 0^T & 1 \end{pmatrix} = I $

Now, if we have a translation vector you should be able to see that the inverse is given by: $\begin{pmatrix} R^T & -R^Tt\\ 0^T & 1 \end{pmatrix}.$

Another way of deriving this is to forget about the matrix form and look at the effect of a rigid-body transformation on $3$D point. Let $Y = RX + t$ be a transformed point with rotation matrix $R$ and translation vector $t$. The inverse transform is a rotation matrix and translation vector such that we get back the point $X$, i.e.: $X = R^T(Y - t) = R^TY - R^T t$. Hence, the inverse rotation is simply $R^T$ and the inverse translation is $-R^T t$. Writing this in homogeneous coordinates, the inverse transform is: $T^{-1} = \begin{pmatrix}R^T & -R^T t\\ 0^T & 1\end{pmatrix}$

$\endgroup$
2
  • $\begingroup$ A stupid question, can't we just invert the matrix in this case? $\endgroup$ – rkachach Oct 29 '18 at 13:14
  • $\begingroup$ @rkachach - You could invert the matrix, but then you're looking at a 4x4 matrix inversion versus a 3x3 matrix transpose and a 3x3 matrix multiplication with a 3x1 vector. It's a lot more computationally efficient to get the inverse transform in pieces as above. $\endgroup$ – Chuck Nov 27 '18 at 15:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.