Denavit–Hartenberg Parameters
   HOME

TheInfoList



OR:

In
mechanical engineering Mechanical engineering is the study of physical machines that may involve force and movement. It is an engineering branch that combines engineering physics and mathematics principles with materials science, to design, analyze, manufacture, ...
, the Denavit–Hartenberg parameters (also called DH parameters) are the four
parameter A parameter (), generally, is any characteristic that can help in defining or classifying a particular system (meaning an event, project, object, situation, etc.). That is, a parameter is an element of a system that is useful, or critical, when ...
s associated with a particular convention for attaching
reference frame In physics and astronomy, a frame of reference (or reference frame) is an abstract coordinate system whose origin (mathematics), origin, orientation (geometry), orientation, and scale (geometry), scale are specified by a set of reference point ...
s to the links of a spatial
kinematic chain In mechanical engineering, a kinematic chain is an assembly of rigid bodies connected by joints to provide constrained (or desired) motion that is the mathematical model for a mechanical system. Reuleaux, F., 187''The Kinematics of Machine ...
, or robot manipulator. Jacques Denavit and Richard Hartenberg introduced this convention in 1955 in order to standardize the coordinate frames for spatial linkages. Richard Paul demonstrated its value for the kinematic analysis of robotic systems in 1981. 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 physics and astronomy, a frame of reference (or reference frame) is an abstract coordinate system whose origin, orientation, and scale are specified by a set of reference points― geometric points whose position is identified both mathem ...
in
robotics Robotics is an interdisciplinarity, interdisciplinary branch of computer science and engineering. Robotics involves design, construction, operation, and use of robots. The goal of robotics is to design machines that can help and assist human ...
applications is the Denavit and Hartenberg (D–H) convention which was introduced by
Jacques Denavit Ancient and noble French family names, Jacques, Jacq, or James are believed to originate from the Middle Ages in the historic northwest Brittany region in France, and have since spread around the world over the centuries. To date, there are ov ...
and Richard S. Hartenberg. In this convention, coordinate frames are attached to the joints between two links such that one
transformation Transformation may refer to: Science and mathematics In biology and medicine * Metamorphosis, the biological process of changing physical form after birth or hatching * Malignant transformation, the process of cells becoming cancerous * Tran ...
is associated with the joint, , and the second is associated with the link . The coordinate transformations along a serial robot consisting of links form the kinematics equations of the robot, : = _1X_1] _2X_2]\ldots _Z_n] _n\! where is the transformation locating the end-link. In order to determine the coordinate transformations and , the joints connecting the links are modeled as either hinged or sliding joints, each of which have a unique line 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 , one for each joint in the robot. For each sequence of lines and , there is a common normal line . The system of six joint axes and five common normal lines 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 and x-coordinate axes are assigned to the common normals . This convention allows the definition of the movement of links around a common joint axis by the
screw displacement A screw axis (helical axis or twist axis) is a line that is simultaneously the axis of rotation and the line along which translation of a body occurs. Chasles' theorem shows that each Euclidean displacement in three-dimensional space has a screw ...
, : _i\begin\cos\theta_i & -\sin\theta_i & 0 & 0 \\ \sin\theta_i & \cos\theta_i & 0 & 0 \\ 0 & 0 & 1 & d_i \\ 0 & 0 & 0 & 1\end, where is the rotation around and is the slide along the -axis—either of the parameters can be constants 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 A screw axis (helical axis or twist axis) is a line that is simultaneously the axis of rotation and the line along which translation of a body occurs. Chasles' theorem shows that each Euclidean displacement in three-dimensional space has a screw ...
around the common normal from the joint to , which is given by : _i\begin 1 & 0 & 0 & r_ \\ 0 & \cos\alpha_ & -\sin\alpha_ & 0 \\ 0& \sin\alpha_ & \cos\alpha_ & 0 \\ 0 & 0 & 0 & 1\end, where and 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: # the -axis is in the direction of the joint axis # the -axis is parallel to the common normal: x_n = z_n \times z_ (or away from )
If there is no unique common normal (parallel axes), then (below) is a free parameter. The direction of is from to , as shown in the video below. # the -axis follows from the - and -axis by choosing it to be a
right-handed coordinate system A Cartesian coordinate system (, ) in a plane is a coordinate system that specifies each point uniquely by a pair of numerical coordinates, which are the signed distances to the point from two fixed perpendicular oriented lines, measured in t ...
.


Four parameters

The following four transformation parameters are known as D–H parameters:. * : offset along previous to the common normal * : angle about previous , from old to new * : length of the common normal (aka , but if using this notation, do not confuse with ). Assuming a revolute joint, this is the radius about previous . * : angle about common normal, from old axis to new axis A visualization of D–H parameterization is available
YouTube
There is some choice in frame layout as to whether the previous axis or the next 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 axis collinear with the common normal, yielding the transformation calculations shown below. We can note constraints on the relationships between the axes: * the -axis is perpendicular to both the and axes * the -axis intersects both and axes * the origin of joint is at the intersection of and * completes a right-handed reference frame based on and


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, so that : _i= \operatorname_(d_i) \operatorname_(\theta_i), and : _i\operatorname_(r_) \operatorname_(\alpha_). Using this notation, each link can be described by a
coordinate transformation In geometry, a coordinate system is a system that uses one or more numbers, or coordinates, to uniquely determine the position of the points or other geometric elements on a manifold such as Euclidean space. The order of the coordinates is signi ...
from the concurrent coordinate system to the previous coordinate system. : ^T_n = _cdot _n/math> Note that this is the product of two screw displacements, The matrices associated with these operations are: : \operatorname_(d_n) = \left \begin 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & d_n \\ \hline 0 & 0 & 0 & 1 \end \right : \operatorname_(\theta_n) = \left \begin \cos\theta_n & -\sin\theta_n & 0 & 0 \\ \sin\theta_n & \cos\theta_n & 0 & 0 \\ 0 & 0 & 1 & 0 \\ \hline 0 & 0 & 0 & 1 \end \right : \operatorname_(r_n) = \left \begin 1 & 0 & 0 & r_n \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ \hline 0 & 0 & 0 & 1 \end \right : \operatorname_(\alpha_n) = \left \begin 1 & 0 & 0 & 0 \\ 0 & \cos\alpha_n & -\sin\alpha_n & 0 \\ 0 & \sin\alpha_n & \cos\alpha_n & 0 \\ \hline 0 & 0 & 0 & 1 \end \right This gives: : \operatorname^T_n = \left[ \begin \cos\theta_n & -\sin\theta_n \cos\alpha_n & \sin\theta_n \sin\alpha_n & r_n \cos\theta_n \\ \sin\theta_n & \cos\theta_n \cos\alpha_n & -\cos\theta_n \sin\alpha_n & r_n \sin\theta_n \\ 0 & \sin\alpha_n & \cos\alpha_n & d_n \\ \hline 0 & 0 & 0 & 1 \end \right] = \left[ \begin & & & \\ & R & & T \\ & & & \\ \hline 0 & 0 & 0 & 1 \end \right] 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 d_nand \theta_n ) is replaced. However, because matrix multiplication order for such pair does not matter, the result is the same. For example: \operatorname_(d_n) \cdot \operatorname_(\theta_n) = \operatorname_(\theta_n) \cdot \operatorname_(d_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 n-1 may be represented by a position matrix indicated with the symbol T or M : \operatorname^T_n = M_ This matrix is also used to transform a point from frame n to n-1 : M_ = \left \begin R_ & R_ & R_ & T_x \\ R_ & R_ & R_ & T_y \\ R_ & R_ & R_ & T_z \\ \hline 0 & 0 & 0 & 1 \end\right Where the upper left 3\times 3 submatrix of M represents the relative orientation of the two bodies, and the upper right 3\times 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 : M_= M_ M_ An important property of Denavit and Hartenberg matrices is that the inverse is : M^ = \left \begin & & & \\ & R^T & & -R^T T \\ & & & \\ \hline 0 & 0 & 0 & 1 \end \right where R^T is both the transpose and the inverse of the
orthogonal matrix In linear algebra, an orthogonal matrix, or orthonormal matrix, is a real square matrix whose columns and rows are orthonormal vectors. One way to express this is Q^\mathrm Q = Q Q^\mathrm = I, where is the transpose of and is the identity ...
R , i.e. R^_=R^T_ = R_ .


Kinematics

Further matrices can be defined to represent velocity and acceleration of bodies. The velocity of body i with respect to body j can be represented in frame k by the matrix : W_=\left \begin 0 & -\omega_z & \omega_y & v_x \\ \omega_z & 0 & -\omega_x & v_y \\ -\omega_y & \omega_x & 0 & v_z \\ \hline 0 & 0 & 0 & 0 \end\right/math> where \omega 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 : H_=\dot_+W_^2 The velocity and the acceleration in frame i of a point of body j can be evaluated as :\dot = W_ P :\ddot = H_ P It is also possible to prove that :\dot_ = W_ M_ :\ddot_ = H_ M_ Velocity and acceleration matrices add up according to the following rules : W_= W_ + W_ : H_= H_ + H_ + 2W_ W_ 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_=M_ W_ M_ : H_=M_ H_ M_


Dynamics

For the dynamics three further matrices are necessary to describe the inertia J , the linear and angular momentum \Gamma , and the forces and torques \Phi applied to a body. Inertia J : : J=\left \begin I_ & I_ & I_ & x_g m \\ I_ & I_ & I_ & y_g m \\ I_ & I_ & I_ & z_g m \\ \hline x_g m & y_g m & z_g m & m \end\right where m is the mass, x_g,\, y_g,\, z_g represent the position of the center of mass, and the terms I_,\,I_,\ldots represent inertia and are defined as : I_ =\iint x^2 \, dm : \begin I_ & =\iint xy \, dm \\ I_ & = \cdots \\ & \,\,\, \vdots \end Action matrix \Phi, containing force f and torque t : : \Phi = \left \begin 0 & -t_z & t_y & f_x \\ t_z & 0 & -t_x & f_y \\ -t_y & t_x & 0 & f_z \\ \hline -f_x & -f_y & -f_z & 0 \end\right/math> Momentum matrix \Gamma, containing linear \rho and angular \gamma momentum : \Gamma = \left \begin 0 & -\gamma_z & \gamma_y & \rho_x \\ \gamma_z & 0 & -\gamma_x & \rho_y \\ -\gamma_y & \gamma_x & 0 & \rho_z \\ \hline -\rho_x & -\rho_y & -\rho_z & 0 \end\right/math> 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 : \begin J_ & = M_ J_ M_^T \\ \Gamma_ & = M_ \Gamma_ M_^T \\ \Phi_ & = M_ \Phi_ M_^T \end The matrices described allow the writing of the dynamic equations in a concise way. Newton's law: : \Phi = H J - J H^t \, Momentum: : \Gamma = W J - J W^t \, The first of these equations express the Newton's law and is the equivalent of the vector equation f = m a (force equal mass times acceleration) plus t = J \dot + \omega \times J \omega (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)'' 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. Compared with the classic DH parameters, the coordinates of frame O_ is put on axis ''i'' − 1, not the axis ''i'' in classic DH convention. The coordinates of O_ 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: : ^T_n = \operatorname_(\alpha_) \cdot \operatorname_(a_) \cdot \operatorname_(\theta_n) \cdot \operatorname_(d_n) Thus, the matrix of the modified DH parameters becomes : \operatorname^T_n = \left[ \begin \cos\theta_n & -\sin\theta_n & 0 & a_ \\ \sin\theta_n \cos\alpha_ & \cos\theta_n \cos\alpha_ & -\sin\alpha_ & -d_n \sin\alpha_ \\ \sin\theta_n\sin\alpha_ & \cos\theta_n \sin\alpha_ & \cos\alpha_ & d_n \cos\alpha_ \\ \hline 0 & 0 & 0 & 1 \end \right] Note that some books (e.g.:) use a_n and \alpha_n to indicate the length and twist of link ''n'' − 1 rather than link ''n''. As a consequence, ^T_n is formed only with parameters using the same subscript. In some books, the order of transformation for a pair of consecutive rotation and translation (such as d_nand \theta_n ) is replaced. However, because matrix multiplication order for such pair does not matter, the result is the same. For example: \operatorname_(d_n) \cdot \operatorname_(\theta_n) = \operatorname_(\theta_n) \cdot \operatorname_(d_n) . Surveys of DH conventions and its differences have been published.


See also

*
Forward kinematics In robot kinematics, forward kinematics refers to the use of the kinematic equations of a robot to compute the position of the end-effector from specified values for the joint parameters. The kinematics equations of the robot are used in ro ...
*
Inverse kinematics In computer animation and robotics, inverse kinematics is the mathematical process of calculating the variable joint parameters needed to place the end of a kinematic chain, such as a robot manipulator or animation character's skeleton, in a gi ...
*
Kinematic chain In mechanical engineering, a kinematic chain is an assembly of rigid bodies connected by joints to provide constrained (or desired) motion that is the mathematical model for a mechanical system. Reuleaux, F., 187''The Kinematics of Machine ...
* Kinematics *
Robotics conventions There are many conventions used in the robotics research field. This article summarises these conventions. Line representations Lines are very important in robotics because: * They model joint axes: a revolute joint makes any connected rigid ...
* Mechanical systems


References

{{DEFAULTSORT:Denavit-Hartenberg parameters Robot control