# Mixing coordinate frames and transformations

Could somebody explain to me the mixing of coordinate frames and transformations with each other in Robot Manipulators: Mathematics, Programming and Control by Richard Paul?

On page 102 it says:

The $$A$$ transformations were set up in such a manner (...)

while a little later in the same paragraph

For example, joint 3 of the Stanford manipulator translates along the $$z$$ axis of coordinate frame $$A_2$$

So what are they, frames or translations between them?

It's a new information for me and this lack of specificity is very confusing and in my opinion unfitting for an engineer.

Assume the space $$\mathbb{R}^3$$ is equipped with two frames $$F_0$$ with $$O_0$$ as origin and $$F_1$$ with $$O_1$$ as origin. The orthonormal basis of the first frame is $$(\mathbf{e_1^0}, \mathbf{e_2^0}, \mathbf{e_3^0})$$, and $$(\mathbf{e_1^1}, \mathbf{e_2^1}, \mathbf{e_3^1})$$ for the second one.

Now, the question is what is the relative position and orientation of $$F_1$$ with respect to $$F_0$$? For the position, this is quite easy, it is simply the vector that goes from $$O_0$$ to $$O_1$$ (called the translation vector) that is $$\mathbf{\overrightarrow{O_0O_1}}$$, if the coordinates of this vector in $$F_0$$ are $$(t_1^0, t_2^0, t_3^0)$$, (that is $$\mathbf{\overrightarrow{O_0O_1}} = t_1^0\mathbf{e_1^0}+t_2^0\mathbf{e_2^0}+t_3^0\mathbf{e_3^0}$$) then $$a_1 = [t_1^0 \quad t_2^0 \quad t_3^0]^T$$ represents the position of $$F_1$$ with respect to $$F_0$$.

For the orientation, the question is how are the basis vectors of $$F_1$$ with respect to those of $$F_0$$? A natural answer is simply to express $$(\mathbf{e_1^1},\mathbf{e_2^1}, \mathbf{e_3^1})$$ in $$(\mathbf{e_1^0}, \mathbf{e_2^0}, \mathbf{e_3^0})$$. If $$\mathbf{e_1^1} = r_{11}\mathbf{e_1^0}+r_{21}\mathbf{e_2^0}+r_{31}\mathbf{e_3^0}$$, $$\mathbf{e_2^1} = r_{12}\mathbf{e_1^0}+r_{22}\mathbf{e_2^0}+r_{32}\mathbf{e_3^0}$$ and $$\mathbf{e_3^1} = r_{13}\mathbf{e_1^0}+r_{23}\mathbf{e_2^0}+r_{33}\mathbf{e_3^0}$$, then we define $$R_1$$ (called the rotation matrix) to be the $$3 \times 3$$ matrix whose coefficients are the $$r_{ij}$$.

$$a_1$$ and $$R_1$$ contain the information about the position and orientation of $$F_1$$ with respect to $$F_0$$. We can stake them in a $$4 \times 4$$ matrix $$A_1$$ (called the homogeneous transformation matrix) in the following way: $$$$A_1 = \begin{bmatrix} R_1 & a_1\\ 0_{1 \times 3} & 1 \end{bmatrix}$$$$

Assume now that there is a third frame $$F_2$$, let $$A_2$$ be the homogeneous transformation matrix representing the position and orientation of $$F_2$$ with respect to $$F_1$$ (using the same process as before but with $$F_2$$ and $$F_1$$ instead of $$F_1$$ and $$F_0$$).

Now, the interesting thing is that the homogenous transformation matrix has the property that $$A_1A_2$$ (matrix product) represents the position and orientation of $$F_2$$ with respect to $$F_0$$.

Here I illustrated how the homogenous matrix can represent a frame in another frame, but it can be shown that this matrix also allows to change the reference frame of a point, a vector or even a frame. It also allows to displace a point, a vector or a frame. (for more information I recommend you the third chapter of the book "Modern Robotics: Mechanics, Planning, and Control" by Lynch and Park.) So this is the answer to your question, these matrices have multiple uses, they represent frames but also transformations.

In the context of robotics the frame $$F_0$$ is the robot base frame, while $$F_1$$ is attached to the first link, $$F_2$$ to the second link, etc. There are multiple ways of attaching a frame to a link but usually we use conventions like Denavit-Hartenberg or Khalil-Kleinfinger.

• Thank you for the book recommendation and your informative post. Mar 15 at 8:42