# Identifying joints from transformation matrix (DH matrix)

Given a transformation matrix formed using the Denavit Hartenberg method, is there a way to identify joint paramters: for example the order of joints?

I've come across a solution to an exam question that seems to imply so but I am struggling to see how the order of joints can be identified by looking at a matrix.

Many thanks in advance for any help!

• Welcome to Robotics, HWWW. Do you have a higher-resolution version of the image you've attached? It's very difficult for me personally to see any details in the question, notably the matrix element subscripts, which I believe is how you answer the question.
– Chuck
Aug 18, 2021 at 16:36
• @Chuck my apologies I didn't realise how small the attached image was! Thank you for pointing this out, I have attached a new one now which should hopefully be readable:-)
– HWWW
Aug 18, 2021 at 16:59

Okay, so let me preface this with the statement that I think this is a lame question. First, because I can't imagine a scenario where you're going to be given just the transform matrix and have to divine the structure, and second because if you chain your $$T_{01}T_{12}T_{23}$$ transforms together you don't wind up with the transform provided in the question statement; the rotation matrix portion is a lot messier.

That said, here are some things to consider:

1. If you look only at the rotation matrix portion of the transform (upper-left 3x3 submatrix) the z row/column has a single 1 in it. This indicates that there's one axis that's not getting any rotation in or out of the z-plane. This, in turn, could indicate a planar/2D robot because you can't twist into the third dimension.
2. If you look only at the translation vector (upper-right 3x1 subvector) then you can see $$d$$ is occupying the $$z$$ position.

So right off now you can see that there is some rotation "stuff" in your 3x3 rotation matrix that will modify x/y points, and there's some value $$d$$ in the translation vector that will modify z points, so this looks like a planar robot that can telescope up and down. This eliminates the first option, which is the only answer to call it a 2D robot.

The only thing I have left to look at to try to solve the problem now is that translation vector. If you go back and look at the x/y translation entries, you see that the x-values are offset by $$c_{\phi}(l_1 + l_2)$$ and the y-values are offset by $$s_{\phi}(l_1 + l_2)$$.

What's notably missing there is the other rotation term, $$\theta$$. You know there's something rotating with $$\theta$$, because of the rotation matrix portion, but it's not affecting your translation or your link offsets $$l_1$$ or $$l_2$$, which must mean that the $$\theta$$ rotator is at the end of the robot arm.

Similarly, because both $$l_2$$ and $$l_1$$ are modified by $$\phi$$, this must mean that the $$\phi$$ rotator is in a position to move both links.

This leaves you with choice D - a 3D arm with a $$\phi$$ rotator first, the $$\theta$$ rotator last, leaving the $$d$$ prismatic joint in the middle.

You might be able to pick apart the transforms for all configurations; it's late and I'm not positive about this, but wow it's tedious. Typically stuff like this you'd just plug into Matlab or Simulink or something and get the answer. You might get to the point with enough practice that you'd get some intuitive feel for looking at the transform matrices, but typically I'd just call the total transform T03 or whatever and not ever look inside it.

• I don’t dislike the question as much as you do. Even though it is not in any way similar to real-world robotics situations, it does get at whether or not the student understands how T matrix multiplications work, and what the individual elements of the final transformation represent. Aug 19, 2021 at 13:05
• @SteveO - Yeah it might just be my mindset at this particular point in time. I feel like it's possible to probe for the same knowledge with a different approach.
– Chuck
Aug 19, 2021 at 15:00