I'm trying to apply modified DH parameters (from Craig's version) to Puma 560.

As per modified DH says,

Modified DH Parameter Convention

And the robot Puma 560 with axes and frame are,

Puma 560

As per above sign convention, the sign of d2 and d3 should be negative. However, for the correct result, it seems that the sign of d2 should be positive.

My question is, should the sign here be positive and if yes, then doesn't it contradict the sign convention for above mentioned modified DH convention?

  • $\begingroup$ Where is $a_3$ in your schematic? $\endgroup$
    – csg
    Commented May 5, 2018 at 20:19

1 Answer 1


I'm not sure if there's a typo in your question (maybe you're asking the question after working in a zero-based programming language?) but you're asking about the signs of d2 and d3, but I don't see a d2 anywhere in Picture 1 or Table 1. Do you mean d3 and d4? I'll assume this is the case for the answer.

Consider your statement,

$$ \mbox{Offset length, } d_i \mbox{ is the distance from } x_{i-1} \mbox{ to } x_{i} \mbox{ measured along } z_i \\ $$

So, start at $x_{i-1}$, go to $x_i$, and compare the direction you're going to the direction that $z_i$ points. If you're moving in the same direction, it's positive.

So, I get that both $d_3$ and $d_4$ are positive; here's my work:

Modified DH parameter orientation

Again, in the top image I'm comparing the line from $x_2$ to $x_3$ to the orientation of $z_3$. They point in the same direction, so $d_3$ is positive. The same goes for the bottom graphic.

  • $\begingroup$ Sorry, my mistake. You are right, it is d3 and d4 (i changed the figure but didn't check for the d number, my mistake). $\endgroup$ Commented Mar 17, 2017 at 16:49
  • $\begingroup$ Thank you very much! I have now used the positive notation as you shown, it seems this example only solve if arm is up. I started with all joint angle zero, I used a robot simulator called RoboDK to see what position I get. When I attach frame when the arm is down like in figure, I get negative value for zero but if I attach frame if arm is up then I get correct values. This bring me another important question, how can one know which robot pose to start with? $\endgroup$ Commented Mar 17, 2017 at 16:55
  • $\begingroup$ @NitinKumar - Glad this helps. If this answers the question you asked, please accept it so the question is marked as complete (check mark between the up and down arrows). Regarding how you know the pose - the pose is dictated by the joint angles $\theta$. Each of the other parameters, $a$, $\alpha$, and $d$ work to describe how one joint relates physically to the next (or previous, as in modified DH) joint. The joint angles describe how the link is oriented. Remember that polarity counts for describing rotations; use the right hand rule!. $\endgroup$
    – Chuck
    Commented Mar 17, 2017 at 17:42
  • $\begingroup$ If your question is more detailed than this (or my brief comment here is insufficient), then please create a new question and add the specifics of what you're providing as the joint angles and what the particular answers are that you're getting. Questions are free, so please use as many as you want. If you would like to include this question to give the other one context, then simply click the "share" button under this question and paste that link into your new question. You can hyperlink text by using the following: [link text](http://robotics.stackexchange.com/q/11878/9720). $\endgroup$
    – Chuck
    Commented Mar 17, 2017 at 17:44
  • $\begingroup$ I can only assume that I am getting negative values for z axis when arm is down as in figure is because the robot's base is located where frame 1 is located and therefore, even though the convention say that we must take d4 positive w.r.t z3 axis but these dimensions should get sign as per direction of z axis at origin (z_origin). So d4 should be negative instead of positive OR we must assign all up or down z-axis after z_origin in the same direction as z_origin? What would you like to say on this? $\endgroup$ Commented Mar 17, 2017 at 18:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.