# Homogenous Transformation Matrix for DH parameters

I'm studying Introduction to robotic and found there is different equations to determine the position and orientation for the end effector of a robot using DH parameters transformation matrix, they are :

Example: Puma 560, All joints are revolute

Forward Kinematics:

Given :The manipulator geometrical parameters.

Specify: The position and orientation of manipulator.

Solution:

For Step 4:

for step 3 :Here I'm confused

Here we should calculate the transformation matrix for each link and then multiply them to get the position and orientation for the end effector.

I've seen different articles using one of these equations when they get to this step for the same robot(puma 560)

What is the difference between them? Will the result be different? Which one should I use when calculating the position and orientation?

• I mean why there are three versions of this transformation matrix – Lama Sonmez Jun 24 '15 at 13:45
• I guess it'd be very helpful if you could provide some information on the structure of the robot. A picture says more than a thousand words... – Bending Unit 22 Jun 24 '15 at 15:00

Given a robotic arm, if you derive homogeneous transformation matrix for it , it will be equal to one of the above mentioned equations.

Those equations are the basic scenarios for reaching the end point, any robotic arm will satisfy one of the three equations . The equations simply mean the order of manipulations carried out by the arm. A translation along x axis followed by a rotation Or A rotation followed by a translation .

If you observe the equations you can notice that there can be two consecutive translations but not rotations. These are the basic scenarios, however for a custom robot the equations can be different

For example,let us consider a robotic arm with a revolute base followed by prismatic joint, and another revolute joint

The scenario of this robot is

rotation->translation->rotation.

If another robot has a prismatic base, revolute joint, and again a prismatic joint, the equation would look like

translation->rotation->translation

So, it depends on the robotic arm that you are working on. But these are the basic situations to understand that sometimes translation is followed by rotation or vice versa, or two consecutive translations but no consecutive rotations. If you understand these equations, you can build your own using them.

Additional info: After reading back and forth in my robotics and modelling book, i forgot to tell you one thing in DH notation matrices.

The Transaltion matrices Trans(z,d), Trans (x,a) are identity matrices with just one vale in the last column.

1 0 0 0
0 1 0 0
0 0 1 d
0 0 0 1


and

1 0 0 a
0 1 0 0
0 0 1 0
0 0 0 1


So, they dont change the overall result even if they are multiplied before or after the rotation matrices. I used the second equation to calculate transformation matrix for puma 560 in a java program. It was perfect. I hope this clears your confusion, sorry for the delay.

• OK,you are saying there is no difference and if i used any of these equations for any robotic arm will be true ,and they should give the same result – Lama Sonmez Jun 26 '15 at 11:14
• The result is not same for the three equations. One of the three equations best suits to a robotic arm that you are working . If you build your own robotic arm, you can write your equation and at the end of the day your equation will be similar to any of the given three equations – Trinadh venna Jun 26 '15 at 13:42
• This answer is not very clear, and off the topic of DH parameters. Prismatic or rotational joints are handled easily with DH notation. The big question is why you have 3 equations, all different, that's not because of joint structure. The statement "dont change the overall result even if they are multiplied before or after the rotation matrices" is not true in general and needs more specific caveats. – Peter Corke Oct 20 at 7:19

Without knowing more context, the clearest answer is; the different "versions" represent different end effector configurations. Following the DH approach, you could take a robot in one configuration, assign it the DH parameters, and arrive at a transformation matrix, then rearrange the robot and come up with a new transformation matrix...But both versions could have the same parameters. There is no single solution you should use unless you're using an "off the shelf" robot such as a SCARA manipulator, which has DH solutions already worked out.

I am not sure if this is what is confusing you, but it is definitely something to be aware of when looking at DH parameters from different sources. You shoudl read this paper: "Lipkin 2005: A Note on Denavit-Hartenberg Notation in Robotics". It explains the 3 main DH parameter conventions and how they differ. Different people use different conventions. It makes the parameters and transformation matrices slightly different. But as long as you stick to one convention, it all works out. The paper is also a good background reading on DH parameters.

The paper mentioned by @Ben is a good one, but sadly not well known.

There are two different DH conventions in common use:

• Standard DH, used in books by Paul, Siciliano et.al., Spong et.al., Corke etc. is defined by parameters $$d_j$$, $$\theta_j$$, $$a_j$$ and $$\alpha_j$$
• Modified DH, used in the book by Craig (which is where I'm guessing your figures come from) is defined by parameters $$d_j$$, $$\theta_j$$, $$a_{j-1}$$ and $$\alpha_{j-1}$$

All too often articles/papers don't mention which convention is used, which is a pity because the equation for the link transformation matrix is very different in each case.

You list 3 equations at the top of your question:

• The first is correct for modified DH parameters
• The second and third are not correct for modified DH. They are somewhat like the equations for standard DH, expect that they should have $$a_j$$ and $$\alpha_j$$ not $$a_{j-1}$$ and $$\alpha_{j-1}$$. Where did these come from?
• The second and third are equivalent (even if not correct) since you can change the order of a rotation and translation about the same axis. In general you cannot change the order of transformations in an expression.