When one wants to model a kinematic chain and in particular define the frames attached to each body, it is common to use the Denavit-Hartenberg parameters.

What are the advantages of this representation?

I can understand the interest of having a normalized representation but does it impact the algorithms performance? The algorithm is not trivial to implement, what gain can we expect from this instead of, for instance, just fixing reference frames by hands (i.e. arbitrarily) like this is done in many robotics formats such as URDF.


Aside from getting the final result as a composition of matrix multiplication, which helps a lot indeed, one crucial aspect of DH convention is the possibility of describing a rototranslation in terms of 4 variables only for each link (namely, the link length, twist, offset, and the joint angle), in place of the canonical 6 (i.e. 3 for translation and 3 for rotation).

To sum up, given that in DH we can conveniently assign the location of the subsequent reference frames complying with the specified standard, we are thus able to compact the representation: e.g. for a anthropomorphic manipulator equipped with 7 degrees-of-freedom, we can deal just with 7*4=28 independent variables/parameters instead of 7*6=42.


I believe this to be the key factor:

In this convention, coordinate frames are attached to the joints between two links such that one transformation is associated with the joint, [Z], and the second is associated with the link [X]. The coordinate transformations along a serial robot consisting of n links form the kinematics equations of the robot,

[T] = [Z1][X1][Z2][X2]...[X(n-1)][Zn]

where [T] is the transformation locating the end-link.

That is, to get a transformation from a serially attached links you can just multiply transformation matrices which is much easier to write and much easier to work with than calculating everything manually using basic geometry.


  • 2
    $\begingroup$ There is another representation, called product of exponentials (POE), that also does this but is much more intuitive. The problem with D-H is that it strictly (but not always uniquely) constrains the coordinate system for each joint, which often doesn't match what we would naturally choose. POE allows the coordinate systems to be arbitrary so the engineer can pick the most natural coordinate system. $\endgroup$ – ryan0270 Apr 10 '14 at 12:51
  • $\begingroup$ Still I mean in URDF for instance you would define around which axis you rotate so you basically have (for rotational joint) three matrices depending on which axis of rotation you choose. And then you have a static transformation before/after to let you position your frame where you want... More parameters in the model (not like it impacts modern computer) and more flexibility, no? The only interest I see is for kinematic calibration (then here having fewer parameters is important) $\endgroup$ – Thomas Moulard Apr 10 '14 at 14:11
  • 1
    $\begingroup$ In addition, if you hand someone else your DH parameters, they are guaranteed to derive the same coordinate system you defined. $\endgroup$ – Andrew Capodieci Apr 10 '14 at 16:43
  • $\begingroup$ That's no different than handing someone else the transformation between joint n and joint n-1 coordinate frames. It doesn't need to be D-H params. $\endgroup$ – ryan0270 Apr 10 '14 at 18:33

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.