next up previous contents
Next: DYNAST Example Up: Kinematic descriptions Previous: DYNAST Example   Contents

Forward kinematics

Usually, any tools or handling devices of a manipulator can be described with the help a constant homogeneous transformation, if related to the last, outmost link of the robot.

In this tool frame, environmental objects can be easily located relative to the tool tip or gripper. So here it is quiet simple to find relative motions necessary for the tool tip in order to handle objects.

However, to really achieve the related joint motion to move the tool tip appropriately, the necessary motion trajectory of the tip with respect to the base frame has to be calculated. The resulting base frame description can then be used to solve the inverse kinematics problem, that is to find the related joint coordinates.

Let us assume, we have to treat an industrial manipulator with 6 revolute joints:

$\theta_i$ Joint variables (actual arm posture)
$a_i, \; \alpha_i, \; d_i$ constant Denavit-Hartenberg parameters
${}^6\mbox{\boldmath$T$}_E$ Tool frame, described in the
  coordinate frame system of the outmost link






The homogeneous transformation relating the tool frame to the fixed base frame is given by:


\begin{displaymath}
{}^0\mbox{\boldmath$T$}_E \; = \; {}^0\mbox{\boldmath$T$}_1 ...
..._5
\; {}^5\mbox{\boldmath$T$}_6 \; {}^6\mbox{\boldmath$T$}_E
\end{displaymath} (3.2)

This equation shows the complete homogeneous transformation, that transforms the position and orientation of the tool through the kinematic chain towards the cartesian base frame. This transformation depends on actual joint positions, which are included as variant Denavit-Hartenberg parameters into all individual link transformations ${}^{i-1}\mbox{\boldmath$T$}_i$.

The joint positions $\theta_i$, which describe the posture of the robot definitively, are called joint coordinates. The above equation transforms them into a cartesian (base) frame, a procedure called direct kinematics problem or forward kinematics problem.

It is immediately clear, that a definitive solution to the direct kinematic problem can be obtained for arbitrary joint positions, joint configurations and any number of joints. Of course it is helpful to have a notation such as the Denavit-Hartenberg notation available, which allows a very systematic treatment of kinematic descriptions and homogeneous transformations.

The solution of the direct kinematics problem is now explained for an industrial robot with 6 joints, which is thePUMA 562 robot.

Figure 3.5 shows the robot with its joints and links. The figure immediately following presents the robot with its different frame locations.

Figure 3.5: PUMA industrial robot wih 6 revolute joints
\begin{figure}
\begin{center}
\epsfig {file=PICS/puma1.eps,width=8.5cm}\end{center}
\end{figure}

The link frame assignment for the PUMA 562 is presented according to DH-notation in figure 3.6.

Figure 3.6: DH frame assignment for the PUMA robot
\begin{figure}
\begin{center}
\epsfig {file=PICS/puma2.eps,width=10.5cm}\end{center}
\end{figure}

The location of DH-frames and DH-parameters is shown in figure 3.7, where the 'zero' position for the PUMA joints is assumed.

Figure 3.7: PUMA frames in joint 'zero' position
\begin{figure}
\begin{center}
\epsfig {file=PICS/KoordNull.eps,width=8.0cm}\end{center}
\end{figure}

Transformations between all neighboring frames are given by the following DH-transformations:


\begin{displaymath}
{}^0\mbox{\boldmath$T$}_1 \, = \,
\left( \begin{array}{cccc...
...1 & 0 \\
0 & -1 & 0 & 0 \\
0 & 0 & 0 & 1
\end{array} \right)
\end{displaymath}


\begin{displaymath}
{}^1\mbox{\boldmath$T$}_2 \, = \,
\left( \begin{array}{cccc...
...ta_2 \\
0 & 0 & 0 & d_2 \\
0 & 0 & 0 & 1
\end{array} \right)
\end{displaymath}


\begin{displaymath}
{}^2\mbox{\boldmath$T$}_3 \, = \,
\left( \begin{array}{cccc...
...heta_3 \\
0 & 1 & 0 & 0 \\
0 & 0 & 0 & 1
\end{array} \right)
\end{displaymath}


\begin{displaymath}
{}^3\mbox{\boldmath$T$}_4 \, = \,
\left( \begin{array}{cccc...
...& 0 \\
0 & -1 & 0 & d_4 \\
0 & 0 & 0 & 1
\end{array} \right)
\end{displaymath}


\begin{displaymath}
{}^4\mbox{\boldmath$T$}_5 \, = \,
\left( \begin{array}{cccc...
..._5 & 0 \\
0 & 1 & 0 & 0 \\
0 & 0 & 0 & 1
\end{array} \right)
\end{displaymath}


\begin{displaymath}
{}^5\mbox{\boldmath$T$}_6 \, = \,
\left( \begin{array}{cccc...
... & 0 \\
0 & 0 & 1 & d_6 \\
0 & 0 & 0 & 1
\end{array} \right)
\end{displaymath}

Multiplication of these matrices leads to the complete transformation from tool frame towards base frame, which solves the direct kinematics problem:


\begin{displaymath}
{}^0\mbox{\boldmath$T$}_6 \,=\,{}^0\mbox{\boldmath$T$}_1 \; ...
...\
n_z & s_z & a_z & p_z \\
0 & 0 & 0 & 1
\end{array} \right)
\end{displaymath}

\begin{eqnarray*}
n_x &=& c_1(c_{23}(c_4c_5c_6-s_4s_6)-s_{23}s_5c_6)-s_1(s_4c_5c...
...
p_z &=& d_6(c_{23}c_5-s_{23}c_4s_5)+c_{23}d_4-a_3s_{23}-a_2s_2
\end{eqnarray*}



The following abbreviations have been used here:

$s_i := \sin\theta_i$, $c_i := \cos\theta_i$, $s_{ij} := \sin(\theta_i+\theta_j)$ und $c_{ij} := \cos(\theta_i+\theta_j)$.



Subsections
next up previous contents
Next: DYNAST Example Up: Kinematic descriptions Previous: DYNAST Example   Contents
Michael Gerke
2000-08-18