Denavit-Hartenberg parameters for SCARA manipulator

I'm going through the textbook Robot Modeling and Control, learning about the DH convention and working through some examples.

I have an issue with the following example. Given below is an image of the problem, and the link parameter table which I tried filling out myself. I got the same answers, except I believe there should be a parameter d1 representing the link offset between frames 1 and 2. This would be analogous to the d4 parameter.

If anyone could explain why I might be wrong, or confirm that I have it right, that would be great. I hate it when it's me against the textbook lol.

Cheers.

• This book is not really that good. It does not even show a good diagram for the scara robot with clear indication of link and joint numbering and labels. Looking at the diagram you show, it does not even show d1 on the diagram. I think these diagram were made in Latex/Tickz, and may be it was hard for them to add many notations on the diagrams, so they are missing many details. I like diagrams that are close to physical shape of robots, like this !Mathematica graphics in the MLS book Jan 26 '15 at 15:14
• It depends on where the origin of the first joint is. In the book, the origin is chosen so D1 is 0.
– user9139
Feb 20 '15 at 21:28

You are right he made a mistake there.

This is probably one of many typos in this preprint of Mark Spong. You should rather turn to other good books, such as the mathematically more elegant book of Richard Murray,Zexiang Li and Sankar Sastry, A Mathematical Introduction to Robotics Manipulation (MLS94). The mathematics they use is consistent in other of their books such as Yi Ma, etal An Invitation to 3D-Vision. screw theory and Lie group theory instead of Denavit and Hartenberg's minimal approach are used in the book. It is much more superior than the D-H approach, and is widely adopted in the academia (the industry is another story).

Finally, a bonus is that the book MLS94 is completely free to download (under an agreement with the publisher CRC press). It also did a terrific job in systematic treatment from kinematics to dynamics to control.

Edit:

I shamelessly refer to one of our not-so-recent publication on robot kinematics calibration, in which you may find additional information on how one may switch between screw representation and DH parametrization of joint axes. The point is, one can easily deal with parametrization singularity of DH parameters if he/she looks at the problem from a geometric (differential geometry of Lie groups) aspect.

• First of all, thank you for confirming... these little things drive me mad. Second of all, thank you for the other reference (MLS94). I will definitely check it out. Coming from a slightly more mature mathematical background, I find stuff like D-H conventions to be... archaic.
– JDS
Aug 15 '14 at 14:40
• @JDS If you are really mathematically sophisticated, you should not put too much in robotics kinematics and dynamics. There is really nothing left for you (unless you are willing to spend years on solving open problems). Try some CS oriented direction instead :-). Aug 15 '14 at 15:42
• Just looking to get myself up to speed on the basic physics. Though my interests lie more in control and path planning.
– JDS
Aug 15 '14 at 20:59

If the axes zi−1 and zi are parallel,A common method for choosing oi is to choose the normal that passes through oi−1 as the xi axis; oi is then the point at which this normal intersects zi. In this case, di would be equal to zero. Once xi is fixed, yi is determined, as usual by the right hand rule. Since the axes zi−1 and zi are parallel, i will be zero in this case.

There is no mistake here. The scara robot has 2 vertical Z-axis in wich it rotates. therefore There is no real translation in the Z-direction between j0 j1 and even j2.

that's why d1 and d2 are zero because there is no change of Z opposed to the previous joints.

If you would fix that mistake, you could move j0 up so it coincides with j1 and j2. and then add a j-1 and a new row at the top of the table for joint 0. then d0 is indeed needed. (distance between X-1 and X0 along Z.

You can either have $$d_1 \neq 0$$ or set $$d_1=0$$ and embed the vertical displacement in $$d_3^*$$.