I am studying the forward kinematics for robot manipulators, and I am focusing on the Denavit Hartenberg convenction for assigning frames to the various joints of the manipulator.

The problem is that I am often confused, and so it is easy to make mistakes for me.

I have understood the concept of the D-H convenction and how it assigns frames, but when I start having more complex manipulators to analyze, for example spacial manipulators with both prismatic and revoulute joints , I start making confusion and assigning frames wrongly.

So, my question is:

Is there a way to assign frames being sure (or at least reducing a lot) the chances of making mistakes?


First of all, I have to share with you this link:


I like to think of a few tricks with D-H params. First, the Z-axis is the axis of rotation/translation. Then, theta rotates along the Z-axis to align with the start of the next D-H frame. You then translate along the Z axis such that the point is tangent to the next frame's Z-X plane. Then, the A term moves along the CURRENT X-axis to the start of the next frame. Finally, you rotate about the X-Axis to align the Z-axis with the rotation/translation axis of the next frame.


  1. Rotate about Z-axis (theta)
  2. Translate along Z-axis (z)
  3. Translate along X-axis (a)
  4. Reorient Z-Axis about X-axis (alpha)


The starting X-axis can be anywhere. You will want to choose a convenient orientation such that the math is easy later. If there is a world frame you are trying to align to, that can help you think of a start. Remember, you do NOT use the Y-axis for anything.

Does this make sense?


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.