# Assigning parameters in perpendicular axes: D-H is a must

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$). And I assigned them like this: 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!

• 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. Oct 13 '16 at 3:08

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.

EDIT

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.

• Yes I have read this video. However, I could not find a correct answer, see the above edit. Oct 13 '16 at 3:07
• 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. Oct 13 '16 at 3:11
• Ahh, I think I found out what the issue was, I have revised my answer. Oct 13 '16 at 4:50
• 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)? Oct 13 '16 at 5:06
• 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). Oct 13 '16 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

• 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. Oct 13 '16 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.