In CS223a homework there is a question to calculate DH parameters of given robot as below:

Robotic arm

When he try to solve DH parameters of the robot in the solutions he set first and second frame positions same as below:

enter image description here

As you can see first frame of the joint shifted through Z, and now first and second frame starting positions are same.

I would like to know what is the rule for this? By intuition I believe joints frames can be shifted through Z axis. Is it the only rule? Is there any other thing I should know?

PS: Solution manual for HW2 https://see.stanford.edu/materials/aiircs223a/solution2.pdf


1 Answer 1


If I understand your question correctly you are asking about what rules there are for assigning coordinate frame axes compatible with DH parameters?

There are definitely rules when assigning coordinate frames. In order to guarantee that there exists a homogenous transformation from frame 1->0 must follow the properties

  • Axis $x_1$ is perpendicular to axis $z_0$
  • Axis $x_1$ intersects axis $z_0$

In order to guarantee these the textbook Robot Modeling and Control introduces three possible cases for how to set up the frames compatible with the DH convention. This is in sections 3.2.2 on page 80.

In short the coordinate frames are assumed to be right handed and picked iteratively based on some guidelines. $z_0$ can be assigned arbitrarily and the following are assigned based on the cases

  1. $z_{i-1}$ and $z_{i}$ are no coplanar
  2. $z_{i-1}$ is parallel to $z_{i}$
  3. $z_{i-1}$ intersects $z_{i}$

For a more thorough explanation and examples reference the book: Robot Modeling and Control by Spong, Hutchinson, and Vidyasagar.

  • $\begingroup$ Ok, would moving a joint in in Z direction affect a system? In this video, a part from DH parameters, It seems moving a joint in Z axis doesnt affect the system in total, Can we say that? youtube.com/watch?v=rA9tm0gTln8 $\endgroup$ Feb 4, 2020 at 10:28
  • $\begingroup$ Or moving frame of a joint in Z direction? $\endgroup$ Feb 4, 2020 at 10:58
  • $\begingroup$ I mean lets say you have a prismatic joint for example. By actuating the joint you cause an extension, $d$. This $d$ will manifest itself in either the link length or link offset DH parameter. This is no different than with a revolute joint, except revolute joint actuation effects link twist or joint angle. $\endgroup$ Feb 4, 2020 at 16:28
  • $\begingroup$ Actuation of the joints will impact the numerical values of the DH matrix, one can use variables representing joint parameters, $q$ for example, to derive a general DH transformation matrix and substitute joint parameter values to get a specific numerical solution for a given orientation. $\endgroup$ Feb 4, 2020 at 16:30
  • $\begingroup$ In short: moving the frame of a joint in the z direction will have an impact. For example: link offset can be defined as "distance from $o_{i-1}$ to intersection of $x_i$ with $z_{i-1}$ along $z_{i-1}$". So shifting frame $i$ along $z_{i-1}$ will obviously change $d_i$. $\endgroup$ Feb 4, 2020 at 16:33

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.