Loading
Nota de Estudos
Study Reminders
Support
Text Version

DH Algorithm - Examples

Set your study reminders

We will email you at these times to remind you to study.
  • Monday

    -

    7am

    +

    Tuesday

    -

    7am

    +

    Wednesday

    -

    7am

    +

    Thursday

    -

    7am

    +

    Friday

    -

    7am

    +

    Saturday

    -

    7am

    +

    Sunday

    -

    7am

    +

Introduction to Robotics. Professor. T. Asokan. Department of Engineering Design Indian Institute of Technology Madras Lecture 2. 7 Algorithm- Examples So, in the last class we discussed about DH Algorithm, how do you assign the coordinate frames and once you assign the coordinate frame, how do you get the DH parameters. So, for each joint axis there will be one coordinate frame assigned including the base frame and then looking at the coordinate frames you can identify the DH parameters. So, this was what we discussed. So, we saw the algorithm as first number the joints from 1 to n starting with the base and ending with the tool yaw, pitch and roll. (Refer Slide Time: 00:49) So, a right hand orthonormal coordinate frame to the robot base, making sure that set 0 aligns with the axis of joint 1 that is the first coordinate frame you assign and then align the next joint axis, Zk with the joint axis and then identify the origin of the coordinate frame. So, align the axis, then identify the origin Lk at the intersection of Zk and Zk minus 1 and if they are not intersecting, identify a common normal and the common normal intersection with Zk will be the origin of the coordinate frame. Then select Xk orthogonal to both Zk and Zk minus 1 and if they are parallel point Xk away from Zk minus 1. You get Z axis and X axis and the origin, now follow the right handed coordinate frame and assign yk to form the complete coordinate frame Lk. So, that is the way how you assign the coordinate frame. So, continue this, till you get the last, till you get to the last point where n is less than k, k is less than n and for k is equal to n you assign the coordinate frame at the tooltip based on the roll pitch yaw axis. So, the normal approach and sliding vectors will be the XYZ and therefore, you will be getting the last coordinate frame also. (Refer Slide Time: 02:22) And once you get the other coordinate frames, then you go for the bk, point bk, which will be the intersection of Xk and Zk minus 1. So, b1 will be X1 and Z0, b2 will be X2 and Z1. So, like that find out the intersection and if they are not intersecting, use the intersection of Xk with a common normal between Xk and Zk minus 1. So, this way you will be able to get all the bks and then you can find out theta as the rotation from Xk minus 1 to Xk measured about Zk minus 1 and then dk as a distance from the original frame Lk minus 1 to Bk. So, Lk minus 1 to bk will be dk measured along Zk minus 1 and then compute ak as a distance from point Bk to the origin of frame Lk measured along Xk. So, that will be the ak. So, you have dk, ak and theta k and finally alpha will be the Zk minus 1 to Zk, the angle of rotation from Zk minus 1 to Zk measured about Xk. So, this way, you will get all the four parameters associated with each joint and depending on the number of joints you will be getting 4 by n parameters associated with the manipulator, that is the first step in getting the forward kinematics of this manipulator. (Refer Slide Time: 03:49) So, few points. So, as I mentioned earlier, this need not be unique because you can have the Zk direction differently and therefore, you may get a different assignment of coordinate frame. So, need not be a unique assignment of coordinate frame. But finally, the parameters and if you use the parameters properly you will be getting the final forward relationship will be the correct one and another important point is that this Xk should always intersect with axis Zk minus 1 when k is equal to k is less than n. So, we found that Xk should be orthogonal to Zk and Zk minus 1 that was one condition we mentioned and if they are parallel, you have keep it away from Zk minus 1 and when one condition, another condition is that it should always intersect with the axis XZk minus 1. That is, if you have a link like this and joint here and another joint here. So, you will be having one Xk here, one coordinate frame here and then you will be having another Z axis here, so I put it as Z axis is like this, is a Z axis Zk minus 1, Z0 and Z1. So, now, you can see that this Xk if you, it can be normal like this also, it should be orthogonal to both. So, this is orthogonal it is away from here that rule is applied, but apart from that, we should ensure that this Xk intersect with the axis Zk minus 1. So, if you do this, in this way if you assign Xk, it will not intersect and therefore, what we need to do is, you have to assign a X axis in this direction. Xk will be assigned like this, this will be Xk minus 1 and this will be Xk. So, it actually intersect with the Z axis. So, this will be Xk minus 1 and Xk, you will see an angle theta. So, this theta will be a permanent, it is not a variable, but there will be a constant theta always should be existing between these two. So, that is basically what it says intersect with the X axis, intersect with the Zk minus 1 axis. So, this is what I already explain and as I mentioned it is not unique. So, the direction of any of the Z axis could be reversed and therefore you will be getting a different assignment of coordinate frame also. But, once you assign the Z axis then you should follow that it should actually be right handed coordinate frame and all other rules are applied. So, hope you understood, how do we actually assign coordinate frames and then get the DH parameters. Any questions? So what we will do, we will take an example, a very simple example which I already indirectly showed you. We will take a real robot and its parameters we will try to find out, an existing commercial robot. (Refer Slide Time: 07:19) So, this is a 5-axis articulated robot. So what is an articulated robot? Anybody? What do you mean by articulated robot? Yeah, all the joints are rotational, then we call it an articulated robot, that is all. So now, this is alpha 2, its a commercial robot manufactured by one company. So, this is the configuration of this robot. So we can see, so there is a vertical joint, it is known as the shoulder joint, there is a joint here and there is a shoulder here and there is a, this is a base joint, which is actually shown here. So, base joint is this one, there is a base joint, then you have a shoulder joint, then you have an elbow joint, then you have a tool pitch and then you have a tool roll. So, there is no tool yaw axis that is why it has 5 degree of freedom, it does not have all the 6 degrees of freedom it has only 5 degrees of freedom and the dimensions are given like this from the base to this shoulder is 215, and from this shoulder to the elbow is 177. 8 and then elbow to pitch is 177. 8 and then the pitch to that tooltip is 129. 5. So, these are the dimensions. Now we need to see, we need to find out what are the DH parameters. So, if I want to know the tip position, position of this tooltip with respect to the base for any value of this joint angles, I need to find out a relationship and that relationship can be developed only through DH parameters. So, we will try to find out how to get the DH parameters for this robot. So what is the first step? What? Base frame. So first step, probably you can make it as a more like to find a home position, cause all these positions, you will be having different joint values. So, we will take a home position a comfortable home position and then try to find out the DH parameters. So I will take it as, suppose this is a home position I will say and then I will say this is the shoulder joint, this is the elbow joint, this is the pitch joint and this is the vertical, the roll axis, roll joint and this is the tool. So this one we, I call this as the, a home position of the robot. You can assume any home position as I mentioned in previous class. So, this one I will assume as a home position. So now, I have a joint here which actually can rotate with respect to this, I have another joint here, I have a joint here, I have not join here and I have a joint here also, it is for the roll. Yeah but it is a roll axis, so there may be a joint here, which I do not know where actually this, it can be anywhere. So, I put this as a roll joint and then finally the last point will be the tooltip, this is the tool. So, the first step is to number the links and joints. So, we normally give this as the link 0, the 0th link and then 1, 2, 3, 4 and then one more 5 because this is a thing that, we call it as a fifth link. Then we have the joints. So, I will put this as the joint 1. So, I will call this as joint 1 and I call this as joint 2, joint 3, joint 4 and I have a joint 5 which is the roll axis or the roll joint. Depending on the mechanical if I know the exact point where the motor is fixed and the joint is fixed then I can do it, but for the time being you can assume it anywhere this joint can be anywhere in this land, so we do not know. So, that is the first step you give the numbers, link and joint can be numbered J1, J2, J3, J4, J5, etc, that is the joints and then the link 0, 1, 2, 3, 4, 5. You just 6 degree of freedom, you will have 1 more joint, sixth joint also will be there. Now, next question our next step is basically to assign the base coordinates frame. So, we need to give a base coordinate frame. How will you assign the base coordinate frame? What is the procedure? Chinmay knows it right? No. What will you do? First thing is find out their axis. Any coordinate frame, the first step is to identify the Z axis and how do you find out Z axis? Student: Rotational axis. Professor: Rotational axis. So, what is the rotational axis the first one, this is the rotational axis. So, that going to be the, your Z0 axis and once you know the Z0 axis then you need to find out the X 0, what is the X axis. So, X axis should be orthogonal to it and in this case I can assume it in the positive direction, I can assume it in any direction I can actually assume it this way or I can assume it this way also. So, that is up to me your first one. So, I assume this as, this way because I want to operate the robot in this XZ plane, I assume that my operation plane is XZ. So, I assume that this is the X0 axis. So, I have this X and Z axis. So, what will be the Y axis, Y axis how do you get? Basically on the right hand coordinate frame. So, this is X, this is Z, if this is X, this is Z, this is Y. So, it will be inside so towards the, so I will put it as, so X0, Y0, Z0, done. I hope all of you are clear about this, there is nothing complex here. Just you need to identify the Z axis and then all the other things you can get it. I can actually think of an X axis in this direction also, then the Y will be in the other direction. So, I can actually have that option for the time being I am just taking it for convenience. So, what is the next step? So, we have got the base coordinate frame L0. So, I call this frame as L0, coordinate frame L0. Now, next step, I have two find out the next coordinate frame, next joint coordinate frame I have to find and what will you do Z axis, first thing is Z axis and Z axis is always assigned based on the joint rotational axis. So, this is the rotational axis, this is the point. So, I assume that this is the Z axis, I am mean with respect to that axis it is rotating. I put it as Z1. I put it here. Once you assign the Z axis what is next, not X axis. We do not know where the origin is. So, origin need not be at the joint always. So, do not take it for granted that the joint will be always the origin. So, we have to find out where is the origin of this coordinate frame and this origin of coordinate frame is obtained by taking the intersection of Zk minus 1 and Zk. So, find out where they are intersecting. Zk minus 1 and Z k, they are intersecting at this point. So, we will assign the origin L1 at this point that is the origin of the coordinate frame here. Now X, X1 should be orthogonal to Z0 and Z1. So Z0 and Z1 should be orthogonal. So I will take it like this. Since I took my first X in this direction, it is always good to take in the same direction. So, it will be always along the axis, otherwise you will get end up with the DH parameters differently. So, this is how you can take the X1. So what will be y, downward, so you will get the Y axis like this. X naught, how will you get it. Yeah, so first you fix X naught. So, X naught I can actually say that X naught is in this direction or this direction I can say. I have an option. Yeah you can. So, basically when I do this, I am telling that initially I assumed the robot to be in this plane but now I am saying that my X is in this direction my robot is actually in this plane. That is what I am telling. So, there is a theta already there with respect to the previous one that is our only thing. So, does not that really matter whether you are take the X0 this direction or this direction, Y also will change, accordingly the parameters also will change later. So, do the same thing for the next joint. Look at the axis. So we will find out the Z axis which is this joint. So, we got the coordinate frame for this Y1. Then do this, repeat the same thing for the next one also. So, when you do this. Yeah, you can actually assume it in this direction also. So, that is what you are saying. Right? That rule is only when they are not, they are parallel. If they are parallel, it should be away from that one, away from Z0. Your question is whether this X can actually go in the other direction? No no okay. Okay we are coming to that, you are jumping. So, this is Z2. So, Z1 and Z2 and origin the next is origin where is L2. So, this is L1, this is L2. So, where is the origin of the second coordinate frame L2, what do we get, intersection of Z1 and Z2. So, where is the intersection, are they intersecting? No they are not intersecting. So, what do you do? You find a common normal and the intersection of common normal with Z2 will be the origin. So, your L2 will be, origin will be here and then you can assume X2 here since all the X2 are same way, I mean you are assuming this direction you can assume this X2 as this way and therefore, Y2 will be this, X2 Y2 Z2. So, please assign next one, next coordinate frame please assign, let me see whether you are able to do it. Pardon. Coincide. Where is Z axis? This is Z axis and where will be the origin, Z2. Correct right then where will be the origin, origin is intersection of Z2 and Z3, they are not intersecting, they are parallel. So, take a common normal and find out where the common normal intersects Z3 that is your L3. So, this is L2, L3. Now, you have a joint which is along this direction. So, the next joint we do not know where the origin is, where the coordinate frame is. So, we try to find out what is the next Z axis. What will be Z4, what will be the direction of Z4? What is Z4, basically what is that the joint? Student: Roll. Professor: Roll. What is the roll axis? This tool is rotating, so this tool is rotating with respect to an axis, what is that axis? So, that axis is this one. That is the Z4. Direction of Z4 is along this. Where will be the origin of the frame, where will be the origin? Intersection of Z3 and Z4. Basically that is the way how you get the origin. So, here Z3 and Z4 are intersecting at this point and therefore, your L4 also should be at the same point. So for clarity, I will just mark it somewhere here, because I do not want to show both the frame there. So, I will share that it is the same point but I am trying to mark it. So, this will be Z4, X4 will be orthogonal to both. So, it can be up or down, you can take in both directions. So, basically we are telling the tool can actually go up or go down, that is basically we are saying. So, you can actually assume it is either up or down and accordingly you give a Y axis also. So, you can actually find out, I mean first find out the Z4 axis and then decide that your X4 axis and once you identify X4 you identify that Y4 axis. So, I assume X4 as up and then Y4 will be in this direction. You can assume this direction and Y4 can be other directions, just basically we want this to be orthogonal. I hope you understood this point because I have found that many people make mistakes here. They do not know where actually the origin is. So, they will put somewhere here in origin, saying that there is a joint here also I will put an origin here. See there is no joint, there is no origin there, the origin of the coordinate frame should be always the same point in this particular case and many a cases where the roll axis is there, you will find that this is happening and there is a roll, roll, pitch, yaw. So, most of the time you will find that this is the situation, because roll is the last joint, so always you will be having this kind of a system. But you have 3 dimensional case no. So, our theta is only giving you one plane, but this may be already moved to another plane and then start moving there. So, how do you actually relate that position to this. So, we need to have the Cartesian representation here and you have only one joint variable. So, not possible to represent it that way, got it. So, now, the last coordinate frame, when k is equal to n, k is equal n is k is equal to 5. So, you need to have a coordinate frame L5. So, this is L3 and L4. This is L4, so your frame L5, where will be the L5? So, L5 is always assigned at the tooltip. So, the origin will be always here and the coordinate frames are assigned based on the normal sliding and approach vector. So, normally is X sliding is Y and approach is Z axis. So, normal sliding and approach vector. So, approach vector is basically along the tool rotational axis. So, if this is the tool or this is the tool. So, this axis is known as the roll axis, so you will be calling this as the approach vector. So, this will be Z5 and then Y is basically the sliding and then this will be the normal vector. So, a normal, sliding and approach, so this will be X, this will be Y. They are not joints, L6 is, L5 is not a joint, it is a coordinate frame. We are not saying that it is a joint, we are saying it is a coordinate frame you have to assign to get it. So, L0, L1, L2 represent the coordinate frames, not the joints, but some of them will be attached to the joints, the last one is not attached to any joint. So, any robot if you take n degree of freedom robot, you will see n plus 1 frames, because we need to have a tool frame also. Pardon, L4, L4 is for the roll joint, roll of the tool. So, because there is a motor here which actually provides you the roll motion and that is basically L4. Because this is pitch motion, then there is a roll motion which we need to find out. So, that is provided here. L5 basically tells that it is a tool tip point, which is of our interest. So, we want to know where the tooltip is moving. So, we assign a coordinate frame there and tell that wherever the coordinate frame goes, that is the tooltip position. So, that position of the origin that coordinate frame is the tooltip position. So, that is what actually we mean by that. So, what is next? What is the next step? Next step is basically to find out something called bk. So it is an imaginary point, which we want to assign in order to get the parameters. So, what is bk, bk is the intersection of Xk and Zk minus 1. So, bk is the intersection of Xk and Zk minus 1. Now look at X1 and Z0, so b1 is X1 and Z0, b2 is X2 and Z1, b3 is X3 and Z2 like this. So, find out the intersection of X1 Z0. So, X1 Z0. So you have the b1 here. Where will be b2? b2 will be the same point because X2 and Z1 intersect at the same point. X2 is this one and Z1 is this, so X2 and Z1 intersect that b1. So, this will be b2 and then you will be having b3 here, because Z2 and X3 and b4 will be here, b5, what is b5? X5 and Z4, where will they intersect? X5 and b, this is X5, X5 and Z4 where do they intersect? Student: Tooltip. Professor: Tooltip. So, you have b5 here. (Refer Slide Time: 30:00) So, we have b1, b2, b3, b4 and b5. So, now we are ready to get the DH parameters. For each joint we will be getting a DH parameter. So we can actually have a table theta, a d and alpha, joint 1, 2, 3, 4, 5. So theta a, d, alpha these are the parameters associated with joints and we will be able to get the parameters. So, in this case which one is the variable and which one are, which are constants? Which one will be a variable here? Student: Theta. Professor: Theta, because all are rotary joints, so all thetas will be variable. So, we do not need to really worry about the actual value of it because depending on this configuration it may change. So any theta, it can take any value of theta, so in this configuration you can find a value, but when it changes the configuration theta will keep changing. So, we do not really need to know the theta this stage, so we will be make it theta 1, theta 2 as variables, theta 1, theta 2, theta 3, theta 4, theta 5. But if you want you can find out what is the angle between X0 and X1, X1 and X2, X2 and X3, X3 and X4 that is the way how you get the joint angles, you can calculate it. There is no offset in this case. So, for this home position, you will see that there is a 90 degree theta, for this position. Yeah, so mean you can actually, that is what, you can actually find out because this X3 and X4, this is X3 and this is X4, so there is a rotation. So, you will find there is an angle between X3 and X4, X4 and X5 it will be there. So, why I am saying is that our whole aim is to get a relationship in terms of theta. So, this is need not be considered as offset, because this offset depend on what how you actually just assumed it. Student: For home position. Professor: Yeah, so for home position, so you can say home position it is 90 degree that we can say in this case. So, for the time being, I will make this as a variable and I assume that there is no need to calculate the value per say in this case, because it is a variable in any case. For different configuration, you will get different values of theta. So, I do not really worry about the current value for this home position, because this is just a arbitrary position I have taken from this position. Therefore, I am not really worried about the actual value here now, but I can, if I want I can find it out, no issues. Now, the next one is, let us go for dk. So, let us find out what is dk. How is dk defined? dk is the distance between L0 and, Lk minus 1 and bk measured along Zk, Zk minus 1. Can you check? So, basically this is L0 the distance from L0 to b1, L0 to b1 measured along Z0 is basically d1. So, d1 is measured as the distance from Lk minus 1 to Bk along Zk minus 1. So dk, this will be the d1, so d1 you will see that the distance from here to here, measured along this axis is bk, which is given as 215 here. So, d1 will be 215. What is a k? ak is the link length, ak is defined as the link length measured along Xk and Lk to Bk. L1 to b1 measured along X1, that is a1. Please check your notes. What is ak, so ak is the distance from, what is it? No one has the notes. What is ak defined? bk. Yeah. bk to Lk along Xk. So, b1 and L1 are at the same point and therefore, you will see this as 0. a1 is 0, b1 is 215, what is alpha 1? Alpha 1 is the angle of rotation from Zk minus 1 to Zk measured with respect to Xk. So, alpha 1 is X0 to X1, Z0 to Z1 measured about X1. So, what is the angle X0 to X1, Z0 to Z1? Z0 to Z1 measured with respect to X1 is alpha 1. So, alpha 1 is Z0 to Z1 measured with respect to X1. Now look at this, this is X1 and this is Z0 and this is Z1. So, now you have a X axis, you have an X axis like this. So, this is the X axis and this is the Z1. So, originally this X0 was like this, Z0 was like this and then with respect to this it is rotated like this. So, you look from X1, this is X1 with respect to X1 the rotation is like this. So, it is clockwise 90 degree it has rotated. So, Z0 has rotated by an angle 90 degree in the clockwise direction with respect to this axis. So, what will be the angle, what will be alpha 1? Alpha 1 will be minus 90. So, alpha 1 is minus 90, you have to do the same procedure for all the joints, then you will be getting all this parameters. Yeah, each one we have to see, Z3 and Z4 with respect to X4. So, now what we will do we will assume this Z4 and X4 or we will go one by one or we want to jump to this. So your Z, so this is this one, Z4, X4 and Y4. Now, the Z3 was here. Now we have to measure with respect to X4, the rotation with respect to X4 to be measured. So, it was like this, Z3 was like this it has rotated like this. Now, if you look at from this point, this moved from, this Z has moved from here to here. So, if you look from here, it is again a clockwise rotation of 90 degrees. So, you will see this as minus 90 degree rotation. So, again alpha will be minus 90. So, this is the way how you look at the rotation with respect to the X axis and then find out what is the alpha here. Because we have now all the parameters, we have these Bks. So, using Bk we can always find out dk and then find out the ak, also alpha can be find out with rotation of Z axis with respect to the X axis. So, this way if you do all these steps you will get the parameters as this way. So, you will see this d is 215, alpha is minus 90, a1 and a2 will be this one, this is a1, a2 and a3, a1 is 0, this is a2, a3 and there is no a4, a4 is 0 because there is no length over here, link length, because origin is at the same point, therefore you do not see an a4 and then you will find that d5 is this distance. This is the d5 distance and alpha is minus 90 and this minus 90 which I already explained how you get the minus 90. So, from here this Z3 to Z4 with respect to X4 is actually a clockwise rotation of 90 degree and therefore you have a minus 90 rotation. You want me to explain again, have you understood? Is there anyone who needs one more round of explanation of getting these parameters? Then I assume that you have understood this and how to get the parameters. So, what we will do, tomorrow I will give you some examples in the class. I already, these questions are there in the moodle. So, please try to solve it and then come to the class and then you see whether you are able to get the right answers, then submit in the class. So, I want you to submit the answers to make sure that you have understood the procedure for assigning coordinate frames and getting DH parameters. Because one of the most important task in manipulator kinematics is getting the parameters. Once you got the parameters then things are very straightforward. You just need to substitute this values in your relationship you will get the parameter, I mean the forward relationship. (Refer Slide Time: 42:21) So, why do we need to know all these parameters because you can actually give the relationship. So, once you have these two coordinate frames here, so one coordinate frame here and another coordinate frame here, assume that this is Z1, X1 and Y1. So, the relationship between these two coordinate frames can always be expressed as a function of these parameters and therefore, the relation between these two coordinate frame can be represented using a transformation matrix, which will be 1 to 0. I can find out a transformation matrix a homogeneous transformation matrix, which relates this coordinate frame to this coordinate frame and that can be expressed using this four parameters theta, d, a and alpha and so, up to here also if there is a coordinate frame here, I will be able to again represent it using this four parameters. So, what are this four parameters or how they are related. You can say that how much it is moving along Z axis the coordinate frame is represented by d. How much move moves along the X axis is given by a, so the coordinate frame can move in this direction I mean in one axis and the another axis also and then it can actually rotate with respect to its own axis, about X or Z axis. So, theta represents the rotation with respect to Z axis and alpha represents rotation with respect to X axis. So, you can have two rotations and two translations, which will completely define displaced position of this coordinate frame. I can say that this coordinate frame is obtained by having one translation, then another translation, one rotation and another rotation will bring this coordinate frame completely to this point. So, if I have a coordinate frame here, I can get this coordinate frame, this coordinate frame can be obtained by four transformations, four individual homogeneous or fundamental homogeneous transformations will make this coordinate frame to this coordinate frame and therefore, I can say that, this is explained here. So, you have this Z axis here, this coordinate frame here. Now, how this coordinate frame is becoming to this coordinate frame how they are actually, how can I say that the transformation of coordinate frame, you can say it translates along Z axis and then translates along X axis then it rotates this and then there is a theta rotation which I cannot show here. So, it can rotate with respect to Z axis and you get a rotation about theta also. So, all the transformations can be represented using this four fundamental operation, which is rotate Lk minus 1 about Zk minus 1 translate Lk minus 1 along Zk minus 1, translate Lk minus 1 along Xk minus 1 and rotate Lk about alpha. So, these four fundamental transformations make the transformation of this coordinate frame to this coordinate frame and therefore, if I can find out this four transformation matrix using this parameters theta k, dk, ak and alpha k, I will be able to find out what is the transformation from this coordinate frame to this coordinate frame, if I know these parameters. And same way I can do this for any number of coordinate frames and finally, I will be able to get the transformation of this coordinate