Rigid transforms are used to specify both the transformation of points and vectors between coordinate frames, as well as the relative position and orientation between coordinate frames.
Consider two 3D coordinate frames in space, A and B (Figure A.3). The translational position of B with respect to A can be described by a vector from the origin of A to the origin of B (described with respect to frame A). Meanwhile, the orientation of B with respect to A can be described by the rotation matrix (Section A.1). The combined position and orientation of B with respect to A is known as the pose of B with respect to A.
Now, assume we have a 3D point , and consider its coordinates with respect to both frames A and B (Figure A.4). Given the pose descriptions given above, it is fairly straightforward to show that
(A.10) |
and, given (A.2), that
(A.11) |
If we extend our points into a 4D homogeneous coordinate space with the fourth coordinate equal to 1, i.e.,
(A.12) |
then (A.10) and (A.11) can be simplified to
where
(A.13) |
and
(A.14) |
is the rigid transform matrix that transforms points from B to A and also describes the pose of B with respect to A (Figure A.5).
It is straightforward to show that and describe the orientation and position of with respect to , and so therefore
(A.15) |
Note that if we are transforming a vector instead of a point between B and A, then we are only concerned about relative orientation and the vector transforms (A.3) and (A.4) should be used instead. However, we can express these using if we embed vectors in a homogeneous coordinate space with the fourth coordinate equal to 0, i.e.,
(A.16) |
so that