Shifting through Z axis for Calculating Kinematics?

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

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

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

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.

• 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 – Meric Ozcan Feb 4 '20 at 10:28
• Or moving frame of a joint in Z direction? – Meric Ozcan Feb 4 '20 at 10:58
• 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. – Morten Nissov Feb 4 '20 at 16:28
• 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. – Morten Nissov Feb 4 '20 at 16:30
• 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$. – Morten Nissov Feb 4 '20 at 16:33