So I was given a course assignment to assign frames and write D-H parameters for this robot using only 5+1 frames (with Frame $\{5\}$ at $P$ and Frame $\{0\}$ at $O$).

Original figure

And I assigned them like this:

My frames

My question is: From Frame $\{1\}$ to Frame $\{2\}$, what are joint distances $a$ and $d$?

The best answer I could get was 0. But obviously it should be zero for one axis and $a_1$ for the other. What's wrong?

I have read a similar question here. But the answer points me to another method which is impossible for me.

Edit: No matter I put $a_1$ in $a$ $$(\alpha,a,d,\theta)=(-90^\circ,a_1,0,\theta_2-90^\circ)$$ or in $d$ $$(\alpha,a,d,\theta)=(-90^\circ,0,a_1,\theta_2-90^\circ)$$ The joint distance $a_1$ does not appear in $z$. What it gave out is $$\left( \begin{array}{cccc} \sin{\theta_2} & \cos{\theta_2} & 0 & a_1 \\ 0 & 0 & 1 & 0 \\ \cos{\theta_2} & -\sin{\theta_2} & 0 & 0 \\ 0 & 0 & 0 & 1 \end{array}\right) \text{ or } \left( \begin{array}{cccc} \sin{\theta_2} & \cos{\theta_2} & 0 & 0 \\ 0 & 0 & 1 & a_1\\ \cos{\theta_2} & -\sin{\theta_2} & 0 & 0 \\ 0 & 0 & 0 & 1 \end{array}\right)$$ Obviously, $a_1$ should appear in $Z$-translation instead!

  • $\begingroup$ I am aware of the steps in D-H convention. Just that I could not get a answer that sounds reasonable to me. See Edit. $\endgroup$ Oct 13, 2016 at 3:08

3 Answers 3


I found this video helpful when learning about the DH method.

DH is all about describing the differences between coordinate systems using rotation and translation about/along the X and Z components of the coordinate system.


It seems that your frames {0} and {1} are not in the correct location if your wanting to follow the DH convention. When your on a rotation (pivoting) joint (such as the first joint), you should move up the coordinates to the next joint. That should make joint distances a and d be 0, allowing the DH convention to sufficiently describe the differences in frames.

  • $\begingroup$ Yes I have read this video. However, I could not find a correct answer, see the above edit. $\endgroup$ Oct 13, 2016 at 3:07
  • $\begingroup$ I am anticipaing "It is 0 traveling in one axis and a1 for traveling in the other because you need to travel 0 in the x axis for frame {1} to get to frame {2} and a1 in the z axis for frame {1} to get to frame {2}." but the result I derived is not. $\endgroup$ Oct 13, 2016 at 3:11
  • $\begingroup$ Ahh, I think I found out what the issue was, I have revised my answer. $\endgroup$ Oct 13, 2016 at 4:50
  • $\begingroup$ So, when expressed in $\{0\}$, origins of $\{1\}$ is $(0,0,a_1)$, $\{2\}$ is $(0,a_2,a_1)$ and so on (if the joints are at initial positions as shown)? $\endgroup$ Oct 13, 2016 at 5:06
  • $\begingroup$ No. Both origin {0} and origin {1} would be at the origin of {2}. When I say rotation joint, I'm taking about looking at if from a 2D perspective. If looking at it head on, the first joint would be a rotation joint (or pivot point if you prefer). $\endgroup$ Oct 13, 2016 at 5:18

Here are the step that are in my course for using D-H convention:

Step 1

Define the z axis of every joint

Step 2

Define the origin frame R0 (O0, x0, y0, z0)

Step 3

For i in [1, n] (n=number of joint)

Step 3.1

Define Oi that belongs to zi, and to the common normal to zi-1 and zi

Step 3.2

Define xi such as xi is normal to the plan formed by zi-1 and zi

Step 3.3

Define yi such as xi, yi, zi form a right handed coordinate frame

Step 3.4

Define the frame of the tool (or the ending point of your arm)

Step 3.5

Find the parameters:

  • Qi is at the intersection of xi and zi-1
  • α_i is the angle between zi-1) and zi around xi axis
  • ai is the distance |Qi,Oi|
  • di is the distance |Oi-1, Qi| along zi-1 axis

Hope this helps

  • $\begingroup$ This is a nice set of steps. 3.2 needs improvement I think, since a common plane for $z_{i-1}$ and $z_i$ is a degenerate (though often seen) case. $\endgroup$
    – hauptmech
    Oct 13, 2016 at 23:06

Each parameter is for a simple transform such that when all 4 are combined you go from one frame to the next. It can be helpful to understand each of the 4 simple transforms, and you should do that if you haven't already.


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.