Denavit-Hartenberg parameters

From Robotics
Jump to: navigation, search
← Back: Assigning coordinate frames Overview: Denavit-Hartenberg Convention Next: A-matrices

Review.png

There are exercises as selftest for this article.

Matlab.png

You can use MATLAB for the content of this article.

margin-top: 10px

When the coordinate frames are assigned to a manipulator, the transformation between each two consecutive frames has to be described. As before for the assignment of the coordinate frames, the manipulator has to be in its zero position as well for the determination of the parameters. The figure on the right shows the two coordinate frames K_{n-1} and K_n in their zero position and the corresponding common normal represented by a dashed red line. To describe the transformation of K_n with respect to K_{n-1}, the 4 Denavit-Hartenberg parameters \theta_n, d_n, l_n and \alpha_n are used. These parameters describe the static transformation within link L_n, but as well include the dynamic influence of the joint parameter of J_n, that could change over time. The figure illustrates the parameters, that are defined as follows:

\theta_n

The angle \theta_n is defined as the angle about the z_{n-1}-axis to align x_{n-1} with the new x_{n}-axis.


Dh-param-theta.png
In case of a revolute joint
The Denavit-Hartenberg parameters should include the dynamic influence of the joints. So as a revolute joint J_n located in the coordinate frame K_{n-1} allows for a rotation about the z_{n-1}-axis, the joint parameter (here \theta_J) has to be included in the Denavit-Hartenberg parameter \theta_n.
The figure on the right shows a link L_n in dark grey with the two coordinate frames K_{n-1} at its beginning and K_{n} at the distal joint. The coordinate frames are shown in their zero position. The angle \theta_L describes the rotation about the z_{n-1}-axis to align the two x-axes.
So in case of a revolute joint, there is not only the static rotation by \theta_L, but as well the dynamic rotation angle \theta_J caused by the joint itself. Thus the parameter \theta_n is the sum of the static and the dynamic rotation:

\theta_n = \theta_L + \theta_J
Hint: In the Robotics course at the University of Paderborn, cases with a static rotation \theta_L for a revolute joint are usually avoided. So for revolute joints, there is only the actual joint parameter as \theta_n and the x-axes are aligned in their zero position: \theta_n = \theta_J
d_n

d_n is the offset or translation, respectively, along the z_{n-1}-axis from the origin of K_{n-1} to the intersection with the common normal.


Dh-param-dn.png
In case of a prismatic joint
If the joint J_n is a prismatic joint, its degree of freedom is the translation along the z_{n-1}-axis. In these cases, similar to \theta_n for a revolute joint,d_n consists of a static and of a dynamic offset. Like can be seen in the figure on the right, the static offset d_L is based on the geometric structure of the link and also valid in the zero position. The dynamic offset d_J corresponds to the joint parameter and so to the displacement of joint J_n and is zero in the manipulator's zero position. The displacement is illustrated in dark grey in the right part of the figure.

d_n=d_L+d_J
Hint: In the Robotics course at the University of Paderborn, the parameter d_n is usually just defined as a single value corresponding to the complete offset along the z_{n-1} axis. In the figure on the right, this value is indicated as k. So no distinction between the static and the dynamic part is made for reasons of simplification: d_n = k.
If there is actually a static offset, then this certain offset is just assumed as the lower limit for k.
Dh-param-dn-upb.png
l_n

The parameter l_n corresponds to the translation along the new x_n-axis. The translation distance is equivalent to the length of the common normal.

It has to be kept in mind, that x_n and the common normal can be antiparallel and that, in such cases, a positive translation is directed in the negative direction of the common normal.

If the related joint J_n is a revolute joint, l_n can also be regarded as the radius of the rotation about the z_{n-1}-axis

\alpha_n

The angle \alpha_n corresponds to the angle about the new x_n-axis, which is collinear to the common normal, to align the z_{n-1}-axis with the new z_{n}-axis. So the rotation direction for positive angles depends on the direction of x_n.


Placement in the context of transformations
The 4 parameters can rather be determined by just regarding the two coordinate frames, their axes and the common normal like visualized above. To completely understand the parameters and their meaning, the figure below illustrates what the parameters actually describe. \theta_n, d_n, l_n and \alpha_n define 4 transformations that are applied consecutively to transform the coordinate frame K_{n-1} to K_n. First a rotation about the x_{n-1}-axis by \alpha_n is applied followed by a translation along the same axis by l_n. Then the coordinate frame is rotated about the z_{n-1}-axis by \theta_n. Finally a translation along the z_{n-1}-axis by d_n leads to the next coordinate frame K_n. Some further aspects about the meaning and the use of the 4 parameters are described in the following article about the A-matrices.
Dh-params-steps.png

The videos at the end of this page explain the assignment of the coordinate frames and the determination of the 4 parameters very vividly and comprehensibly.

Hint: Notation of the Denavit-Hartenberg parameters
The Denavit-Hartenberg parameters are usually noted in a table with columns for the parameters and a row for each link or transformation, respectively.
T\theta_nd_nl_n\alpha_n
1\theta_1d_1l_1\alpha_1
...
Example: Determination of the Denavit-Hartenberg parameters
Dh-ex-params.png

The table below contains the Denavit-Hartenberg parameters for the manipulator shown in the figure on the right. For further information about the already assigned coordinate frames, have a look on the examples of the previous articles. The necessary lengths of certain parts of the manipulator are indicated by the variables k_1 to k_7.

T\theta_nd_nl_n\alpha_n
1\phi_1k_1-k_2-90^\circ
2\phi_2k_300^\circ
30^\circk_40-90^\circ
4-90^\circ+\phi_4k_5k_6180^\circ
5\phi_50k_70^\circ

Considerable aspects of this manipulator are:

  • For the revolute joints J_1, J_2 and J_5 in zero position, there is no rotation around the z-axes necessary to align the x-axes. Thus \theta_L is zero in these cases and so the \theta_n parameters just contain the corresponding angles \phi_n.
  • At the coordinate frame K_4, the x-axis changes its direction and is no longer collinear with the previous one. A rotation by -90^\circ about z_3 is necessary to align x_4 with x_3. As joint J_4 is a revolute joint with joint parameter \phi_4, the corresponding \theta_4 results in \theta_4=-90^\circ+\phi_4.
  • d_n=-k_2 as the translation is applied in negative direction along the x_1-axis.
  • d_3=k_4 is the only dynamic offset along the z_{2}-axis as the corresponding joint J_3 is a prismatic joint. Like explained above, the whole offset along z_{n-1}, here indicated with k_4, is used as d_n-parameter in case of a prismatic joint.

Multimedial educational material

Multimedia.png