0
$\begingroup$

I am working on a robot arm with 7 rotational joints. I can generate the T of any position, what I want to do ist to represent the vector Xf of the end effector frame in the base frame. How can I do it?

$\endgroup$
0
$\begingroup$

Assuming: * the T you mention is a 4x4 transformation matrix * "by any point you want" you meant any given pose (pose is position and orientation)

So the T transformation matrix links the end effector frame to the base frame. Let's assume that you have a given position (X=10, y = 20, z = 30) and orientation (A = 0, B = 0, C = 0). for this pose, the T matrix is trivial to make:

$$T=\begin{bmatrix} 1 & 0& 0 & 10 \\ 0 & 1 & 0 & 20 \\ 0 & 0 & 1 & 30 \\ 0 & 0 & 0 & 1\\ \end{bmatrix}$$

This matrix can be used to calculate the coordinates of a point given in the end effector frame in the base frame.

E.g. the point (X = 1, Y = 1, Z = 1) in defined in the End Effector Frame will have the following coordinates in the base frame:

$$ \begin{bmatrix} 1 & 0& 0 & 10 \\ 0 & 1 & 0 & 20 \\ 0 & 0 & 1 & 30 \\ 0 & 0 & 0 & 1\\ \end{bmatrix} \times \begin{bmatrix} 1 \\ 2 \\ 3 \\ 1 \\ \end{bmatrix} = \begin{bmatrix} 11 \\ 22 \\ 33 \\ 1 \\ \end{bmatrix} $$

If you want to represent the coordinate fram visually, you will need to take one point on each axis and the origin and see what coordinates corespond to these points in the base frame, so:

$$P_X= \begin{bmatrix} 1 & 0& 0 & 10 \\ 0 & 1 & 0 & 20 \\ 0 & 0 & 1 & 30 \\ 0 & 0 & 0 & 1\\ \end{bmatrix} \times \begin{bmatrix} 1 \\ 0 \\ 0 \\ 1 \\ \end{bmatrix} = \begin{bmatrix} 11 \\ 20 \\ 30 \\ 1 \\ \end{bmatrix} $$

$$P_Y= \begin{bmatrix} 1 & 0& 0 & 10 \\ 0 & 1 & 0 & 20 \\ 0 & 0 & 1 & 30 \\ 0 & 0 & 0 & 1\\ \end{bmatrix} \times \begin{bmatrix} 0 \\ 1 \\ 0 \\ 1 \\ \end{bmatrix} = \begin{bmatrix} 10 \\ 21 \\ 30 \\ 1 \\ \end{bmatrix} $$

$$P_Z= \begin{bmatrix} 1 & 0& 0 & 10 \\ 0 & 1 & 0 & 20 \\ 0 & 0 & 1 & 30 \\ 0 & 0 & 0 & 1\\ \end{bmatrix} \times \begin{bmatrix} 0 \\ 0 \\ 1 \\ 1 \\ \end{bmatrix} = \begin{bmatrix} 10 \\ 20 \\ 31 \\ 1 \\ \end{bmatrix} $$

$$P_O= \begin{bmatrix} 1 & 0& 0 & 10 \\ 0 & 1 & 0 & 20 \\ 0 & 0 & 1 & 30 \\ 0 & 0 & 0 & 1\\ \end{bmatrix} \times \begin{bmatrix} 0 \\ 0 \\ 0 \\ 1 \\ \end{bmatrix} = \begin{bmatrix} 10 \\ 20 \\ 30 \\ 1 \\ \end{bmatrix} $$

In order to visualize the coordinate system, you need to draw lines between $P_O P_X$, $P_O P_Y$ and $P_O P_Z$. If the coordinate system drawn is too small, you can use a point on each axis which is further away from the origin (instead of alway useing 1 you can use 10, 100 or even larger numbers)

The above method works also if the rotation part of the transformation matrix is different from the identity matrix, this example was chosen for the easy calculations.

$\endgroup$

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.