Denavit–Hartenberg parameters

From testwiki
Jump to navigation Jump to search

Template:Short description Template:About

In mechatronics engineering, the Denavit–Hartenberg parameters (also called DH parameters) are the four parameters associated with the DH convention for attaching reference frames to the links of a spatial kinematic chain, or robot manipulator.

Jacques Denavit and Richard Hartenberg introduced this convention in 1955 in order to standardize the coordinate frames for spatial linkages.[1][2]

Richard Paul demonstrated its value for the kinematic analysis of robotic systems in 1981.[3] While many conventions for attaching reference frames have been developed, the Denavit–Hartenberg convention remains a popular approach.

Denavit–Hartenberg convention

A commonly used convention for selecting frames of reference in robotics applications is the Denavit and Hartenberg (D–H) convention which was introduced by Jacques Denavit and Richard S. Hartenberg. In this convention, coordinate frames are attached to the joints between two links such that one transformation is associated with the joint Template:Math, and the second is associated with the link Template:Math. The coordinate transformations along a serial robot consisting of Template:Mvar links form the kinematics equations of the robot:

[T]=[Z1][X1][Z2][X2][Xn1][Zn][Xn]

where Template:Math is the transformation that characterizes the location and orientation of the end-link.

To determine the coordinate transformations Template:Math and Template:Math, the joints connecting the links are modeled as either hinged or sliding joints, each of which has a unique line Template:Mvar in space that forms the joint axis and define the relative movement of the two links. A typical serial robot is characterized by a sequence of six lines Template:Math, one for each joint in the robot. For each sequence of lines Template:Mvar and Template:Math, there is a common normal line Template:Math. The system of six joint axes Template:Mvar and five common normal lines Template:Math form the kinematic skeleton of the typical six degree-of-freedom serial robot. Denavit and Hartenberg introduced the convention that z-coordinate axes are assigned to the joint axes Template:Mvar and x-coordinate axes are assigned to the common normals Template:Math.

This convention allows the definition of the movement of links around a common joint axis Template:Mvar by the screw displacement:

[Zi]=[cosθisinθi00sinθicosθi00001di0001]

where Template:Mvar is the rotation around and Template:Mvar is the sliding motion along the Template:Mvar-axis. Each of these parameters could be a constant depending on the structure of the robot. Under this convention the dimensions of each link in the serial chain are defined by the screw displacement around the common normal Template:Math from the joint Template:Math to Template:Math, which is given by

[Xi]=[100ri,i+10cosαi,i+1sinαi,i+100sinαi,i+1cosαi,i+100001],

where Template:Math and Template:Math define the physical dimensions of the link in terms of the angle measured around and distance measured along the X axis.

In summary, the reference frames are laid out as follows:

  1. The Template:Mvar-axis is in the direction of the joint axis.
  2. The Template:Mvar-axis is parallel to the common normal: xn=zn×zn1 (or away from Template:Math)
    If there is no unique common normal (parallel Template:Mvar axes), then Template:Mvar (below) is a free parameter. The direction of Template:Mvar is from Template:Math to Template:Mvar, as shown in the video below.
  3. the Template:Mvar-axis follows from the Template:Mvar- and Template:Mvar-axes by choosing it to be a right-handed coordinate system.

Four Parameters

The four parameters of classic DH convention are shown in red text, which are Template:Mvar. With those four parameters, we can translate the coordinates from Template:Math to Template:Mvar.

The following four transformation parameters are known as D–H parameters:[4]

There is some choice in frame layout as to whether the previous Template:Mvar axis or the next Template:Mvar points along the common normal. The latter system allows branching chains more efficiently, as multiple frames can all point away from their common ancestor, but in the alternative layout the ancestor can only point toward one successor. Thus the commonly used notation places each down-chain Template:Mvar axis collinear with the common normal, yielding the transformation calculations shown below.

We can note constraints on the relationships between the axes:

Denavit–Hartenberg matrix

It is common to separate a screw displacement into product of a pure translation along a line and a pure rotation about the line,[5][6] so that

[Zi]=TransZi(di)RotZi(θi),

and

[Xi]=TransXi(ri,i+1)RotXi(αi,i+1).

Using this notation, each link can be described by a coordinate transformation from the concurrent coordinate system to the previous coordinate system.

n1Tn=[Zn1][Xn]

Note that this is the product of two screw displacements. The matrices associated with these operations are:

Transzn1(dn)=[10000100001dn0001]
Rotzn1(θn)=[cosθnsinθn00sinθncosθn0000100001]
Transxn(rn)=[100rn010000100001]
Rotxn(αn)=[10000cosαnsinαn00sinαncosαn00001]

This gives:

n1Tn=[cosθnsinθncosαnsinθnsinαnrncosθnsinθncosθncosαncosθnsinαnrnsinθn0sinαncosαndn0001]=[RT0001]

where R is the 3×3 submatrix describing rotation and T is the 3×1 submatrix describing translation.

In some books, the order of transformation for a pair of consecutive rotation and translation (such as dnand θn) is reversed. This is possible (despite the fact that in general, matrix multiplication is not commutative) since translations and rotations are concerned with the same axes zn1 and xn, respectively. As matrix multiplication order for these pairs does not matter, the result is the same. For example: Transzn1(dn)Rotzn1(θn)=Rotzn1(θn)Transzn1(dn).

Therefore, we can write the transformation n1Tn as follows:
n1Tn=Transzn1(dn)Rotzn1(θn)Transxn(rn)Rotxn(αn)
n1Tn=Rotzn1(θn)Transzn1(dn)Transxn(rn)Rotxn(αn)

Use of Denavit and Hartenberg matrices

The Denavit and Hartenberg notation gives a standard (distal) methodology to write the kinematic equations of a manipulator. This is especially useful for serial manipulators where a matrix is used to represent the pose (position and orientation) of one body with respect to another.

The position of body n with respect to n1 may be represented by a position matrix indicated with the symbol T or M

n1Tn=Mn1,n

This matrix is also used to transform a point from frame n to n1

Mn1,n=[RxxRxyRxzTxRyxRyyRyzTyRzxRzyRzzTz0001]

Where the upper left 3×3 submatrix of M represents the relative orientation of the two bodies, and the upper right 3×1 represents their relative position or more specifically the body position in frame n − 1 represented with element of frame n.

The position of body k with respect to body i can be obtained as the product of the matrices representing the pose of j with respect of i and that of k with respect of j

Mi,k=Mi,jMj,k

An important property of Denavit and Hartenberg matrices is that the inverse is

M1=[RTRTT0001]

where RT is both the transpose and the inverse of the orthogonal matrix R, i.e. Rij1=RijT=Rji.

Kinematics

Further matrices can be defined to represent velocity and acceleration of bodies.[5][6] The velocity of body i with respect to body j can be represented in frame k by the matrix

Wi,j(k)=[0ωzωyvxωz0ωxvyωyωx0vz0000]

where ω is the angular velocity of body j with respect to body i and all the components are expressed in frame k; v is the velocity of one point of body j with respect to body i (the pole). The pole is the point of j passing through the origin of frame i.

The acceleration matrix can be defined as the sum of the time derivative of the velocity plus the velocity squared

Hi,j(k)=W˙i,j(k)+Wi,j(k)2

The velocity and the acceleration in frame i of a point of body j can be evaluated as

P˙=Wi,jP
P¨=Hi,jP

It is also possible to prove that

M˙i,j=Wi,j(i)Mi,j
M¨i,j=Hi,j(i)Mi,j

Velocity and acceleration matrices add up according to the following rules

Wi,k=Wi,j+Wj,k
Hi,k=Hi,j+Hj,k+2Wi,jWj,k

in other words the absolute velocity is the sum of the parent velocity plus the relative velocity; for the acceleration the Coriolis' term is also present.

The components of velocity and acceleration matrices are expressed in an arbitrary frame k and transform from one frame to another by the following rule

W(h)=Mh,kW(k)Mk,h
H(h)=Mh,kH(k)Mk,h

Dynamics

For the dynamics, three further matrices are necessary to describe the inertia J, the linear and angular momentum Γ, and the forces and torques Φ applied to a body.

Inertia J:

J=[IxxIxyIxzxgmIyxIyyIyzygmIzxIzyIzzzgmxgmygmzgmm]

where m is the mass, xg,yg,zg represent the position of the center of mass, and the terms Ixx,Ixy, represent inertia and are defined as

Ixx=x2dm
Ixy=xydmIxz=

Action matrix Φ, containing force f and torque t:

Φ=[0tztyfxtz0txfytytx0fzfxfyfz0]

Momentum matrix Γ, containing linear ρ and angular γ momentum

Γ=[0γzγyρxγz0γxρyγyγx0ρzρxρyρz0]

All the matrices are represented with the vector components in a certain frame k. Transformation of the components from frame k to frame h follows the rule

J(h)=Mh,kJ(k)Mh,kTΓ(h)=Mh,kΓ(k)Mh,kTΦ(h)=Mh,kΦ(k)Mh,kT

The matrices described allow the writing of the dynamic equations in a concise way.

Newton's law:

Φ=HJJHt

Momentum:

Γ=WJJWt

The first of these equations express the Newton's law and is the equivalent of the vector equation f=ma (force equal mass times acceleration) plus t=Jω˙+ω×Jω (angular acceleration in function of inertia and angular velocity); the second equation permits the evaluation of the linear and angular momentum when velocity and inertia are known.

Modified DH parameters

Some books such as Introduction to Robotics: Mechanics and Control (3rd Edition) [7] use modified (proximal) DH parameters. The difference between the classic (distal) DH parameters and the modified DH parameters are the locations of the coordinates system attachment to the links and the order of the performed transformations.

Modified DH parameters

Compared with the classic DH parameters, the coordinates of frame Oi1 is put on axis i − 1, not the axis i in classic DH convention. The coordinates of Oi is put on the axis i, not the axis i + 1 in classic DH convention.

Another difference is that according to the modified convention, the transform matrix is given by the following order of operations:

n1Tn=Rotxn1(αn1)Transxn1(an1)Rotzn(θn)Transzn(dn)

Thus, the matrix of the modified DH parameters becomes

n1Tn=[cosθnsinθn0an1sinθncosαn1cosθncosαn1sinαn1dnsinαn1sinθnsinαn1cosθnsinαn1cosαn1dncosαn10001]

Note that some books (e.g.:[8]) use an and αn to indicate the length and twist of link n − 1 rather than link n. As a consequence, n1Tn is formed only with parameters using the same subscript.

Surveys of DH conventions and its differences have been published.[9][10]

See also

References

Template:Commons category Template:Reflist