Loading

Alison's New App is now available on iOS and Android! Download Now

    Study Reminders
    Support

    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.9 Forward Kinematics - Examples So, yesterday we briefly talked about this problem, the Forward Kinematics of six-axis articulated robot intelledex. (Refer Slide Time: 00:22) And the first part as I mentioned, we were to assign the coordinate frame. So, we saw that there are I mean, six-axis robots, so you will be able to identify L0 to L6 as the coordinate axis. The recording is going on? So, we first assign the coordinate frame Zi L0 and then we will have L1, so L1 is a shoulder roll, so we will have this as the Z axis, that is your Z1. And then you can have Z2 in this direction, or in this direction, whatever the direction you choose. So, if I choose this direction it will be Z2, then you have 3, 4. And Zy is the tool roll, so it will be like this, same origin. And finally, you have, Z6. So, you can identify all those joint axes. Nobody is there? Just call here. So, this way you can identify all the joint axis, and once you have the joint axis then you next you assign the X axis, X axis should be normal to, I mean identify the origin first, the origin will be the intersection of both the Z axis, Z1, and Z0, Z2, Z1, etc. So, we will get L1, then you will get L2 at the same point, so you will actually mark it at some other point, somewhere here. Then there you have L3, L4, L5, and finally L6. So, this is the way how you can get the coordinate axis, coordinate origins. So, once you have this origin identified, then you identify the assign X axis, X axis should be normal to Z0, Z1 and Z0 and away from Z0, so you can assign the X axis accordingly. And you will get all the coordinate frames, as shown here. So, you can identify the coordinate axis. So, once you have this, the next part is to get the DH parameters. So, we assume that theta is variable, so for the time being we do not try to find out the actual value of theta, first we will try to find out all the fixed parameters a, d, and alpha. So, we can actually have theta 1 and then what will be a 1, a 1 will be 0. So, this is a, d and alpha, so a will be 0, d will be this d1, which is 373.4 and alpha is Z0 to Z1, so there is a 90 degree rotation you have to look at with respect to X1 what is the rotation and then you will be able to get the alpha. So, this way you will be able to get all the parameters, please get alpha 1, alpha 2, alpha 3, that is more tricky, others are more straightforward. So, what will be alpha 1, alpha 1? Value? 90 or minus 90, plus 90? So, alpha 1 is basically measured from Z0 to Z1, measured with respect to which axis, X 0 or X 1? X 1. So, which is X 1 here, so this is X 1, this is X 1 axis, you have to look at from this axis, this axis. Professor: And then see how much it has rotated, so it has rotated clockwise or anticlockwise? Student: Clockwise. Professor: Clockwise, so it should be minus 90. So, if you look at from look at from, look at from X1, so look at from this, so this is the original position and it has rotated like this. So, you look at from here it has actually rotated in the clockwise direction. No, I did not get your question, once again? X0 to X1, you are talking about X? Z0 to Z1, Z0 to Z1 with respect to X1 that is what you need to measure. Alpha 2, you can cross check your answers later. So, find out what is alpha 2, alpha 2 is Z1 to Z2, Z1 to Z2, so Z1 was like this, it has actually moved like this, and with respect to X2. Professor: So, X2 is downwards… Student: Avinash S Pramod Professor: Pardon? Student: plus 90 Professor: Plus 90, find out why it is plus 90. Because if you are looking from here, it is this was the, this is your X, this is your X, this was your Z0 just move like this, it has moved anticlockwise. So, that is the way how you look at, this was Z0 axis, this is your X1, X1 has moved Z0 has become like this in the anti-clockwise direction, therefore it is plus 90. Yeah. Now, you have to look at X Z2 to Z1. So, Z1 was actually it has moved like this from, from this position it has move like this, the Z axis and you have to look from here. So, it has moved like this, if you looking from here these axis, it has move like this. So, what will be the angle, plus 90, again it is anti-clockwise moment, so you will be a plus 90. So, this is the way each one you need to check and then see what is the value of alpha. So, you have this 90, 90, 0, 0, 90, 0, so that is the way how you get the alpha. Because Z2, Z3, Z4, are parallel that is why you get these three, two zeroes, and then Z4 and Z5 are rotated by 90 degree, Z5, and Z6 are same points, I mean same direction, so it is 0 again. And you apply the rules then we will get the d1, then finally you get d6 and you will get a3 and a4, a2 is 0. So, this is actually a3, a4 and this is d1 and this is d6. So, you have all the parameters identified all the DH parameters identified, and once you have this you need to get the DH matrix, or the transformation matrix between each coordinate frame, so you can actually find out what is T1 0 by substituting the values of theta 1, d1, a1 alpha 1. So, you will be getting all the transformation matrices. Only thing you can note down here is that, we assumed a home position here, we assumed a home position here and for this home position you will be able to find some values for theta, that is for the this home position you can find a theta value, what is the value. So, you will be able to find out theta 1 to theta 6, for the given home position. Yes, it is a variable when you change the position you may get a different theta, but at this for the given position you will be able to find this theta. So, theta 1 is the angle between X0 and X1, you can see there is an angle between X0 and X1, that is 90 degree plus 1 minus you have to check based on the Z0 axis. So, with respect to Z0, so with respect to Z0 you have to look at that this has actually moved, from here it has moved inside. So, it has moved like this, so you need to find out what is the angle of, call this theta 1. So, that way you will be able to get the home position, so if I call this as the home position of the robot, you will be able to find out the home position theta as 90, minus 90, 90, 0, 90, and 0. So, this is the home position theta values, theta is a variable but for the given configuration that we are used for hitting the coordinate frames, there is an angle between X0 and X1, similarly X1, to X2, etc. So, that is in as 90, minus 90, 90, 0, 90, 0, you will be able to, you can verify this later, how you are getting these values 90, minus 90, etc. Why we need this information is that, we can actually cross-check our forward kinematics by looking at these values, substituting these values we can cross-check our forward formulation, where you are doing it correctly or not, that is why we need to have this information. So, now let us do the forward relationship let us make the forward relationship. So, what I will do, I will look at this elbow as the point where you are bifurcating it for their convenience, so that you can get 3 and 3 joints. So, elbow I will take it as the elbow to base I will first consider and then tool to elbow, then finally tool to base I can consider. (Refer Slide Time: 11:20) So, let us find out this. So, if you want to find out elbow to base transformation, so this is T 1 0, this is T 2 1 and this is T 3 2. We simply substituted the values of theta, alpha a and d into this and we got this information. So, I do not substitute the, I mean value here, but this put it as a3 and d1. Substitute the value of alpha in order to get the matrix. So, now if you multiply these three matrices, you will get the elbow to base relationship as this, you can cross check later, I am going to do the multiplication here. But this is somewhere, where you normally make mistakes, there is either multiplication, or substitution you may make some small mistakes. But then before you proceed further you need to cross check whether your formulation is correct, or not. If your formulation is wrong here, then the next part also you will make the mistake, you may end up with a completely wrong forward relationship. Professor: Yes, any question? You, you I mean I said, as i mentioned it is not unique, but then you need to make sure that you follow some convention so that it not be, it will not go wrong. So, how do you cross check whether you are correct, formulation is correct. So, what we need to do is to look at the theta values, theta 1, theta 2, theta 3, for the home position. So, we took this as the home position, so this is a elbow point we had taken. And now, we are actually finding out the base to elbow as the relationship here, substitute the value of theta, 1 theta, 2 and theta 3 into this relationship. Px, Py, Pz, so this represents the position of elbow with respect to the base frame. So, this is the X position of the elbow, this is the Y position of the elbow, and this is the Z position of the elbow. Now, substitute the value of theta 1, theta 2, that is 90, minus 90, and 90, I think. So, substitute the values of theta 1, 90, theta 2, 90, and theta 2 minus 90 and theta 3, 90 into this equation and find out what will be the value of Px. When you substitute value of theta 1, theta 2, theta 3, into this what will be the value of Px? What do you get as Px? Yes theta, theta2, theta3, 90, so this will become 0, this will become 1. So, you will get Px is equal to a3. And then you will get Py equal to 0 and Pz will be, because this will become 0, this will become 0, cos theta 3, therefore this will be d1. That actually tells you that, the position of elbow with respect to the base frame in the home position is a3 away from the origin of base, it says that this distance is a3. So, simply tells that, what you have got elbow from the base is a3 which is correct, as per the diagram it is correct. Py is 0, because it is in the X-Z axis, Y-coordinate is 0 and your Z coordinate is basically d1, elbow Z coordinate is d1 which is correct, because as per the home position we assume this position and elbow is at a3 and d1, X and, X and Z coordinates. So, shows that the formulation what you already got is correct. So, your angles whatever the DH parameters you assumed and coordinate frames you assigned everything is perfect and that is why you are actually able to cross-check your formulation. So, this way you can make sure that your formulation is correct. So, whenever you do a forward kinematic relationship at some point basically in the first three joint, you do first and cross check whether you are getting it correct and it is as per your home position, then you are able to verify it. And then that will tell you that you are correct. Student: Can alpha be a variable Professor: Alpha cannot be a variable. No, no alpha you cannot vary, because once a configuration is given for a robot, alpha normally, unless it is a reconfigurable robot. We are not talking about a reconfigurable robot, we are talking about an industrial robot which is already designed, you already have a design for it, and you cannot, then you cannot change their joint axis arbitrarily. No, no, no, you cannot do that. Z0 is always along the joint axis. And that joint axis is already fixed for a given configuration, because you have a motor attached to join like this and you are rotating in this direction only, you cannot say that I will change the motor to this direction, motor is not going to be change in a real configuration. So, the joint axis is always fixed for a given configuration. Oh, you mean, you are saying that why do not you take joint axis along x axis. Oh then the whole formulation will be, then you cannot follow these formulation, you need to have a different formulation for doing that. No, no then you do not call this DH parameter, because DH parameter says that you assign that joined axis as Z, then you get the parameter then only we call this DH parameters. So, DH parameter has a based of that formulation only, you are telling this is the DH parameters. So, if you say that okay, I will assign joint axis by X, Y, or Z, then you cannot say that this is DH parameter, then this is a, you need to have a different formulation for doing that. But this is the standard formulation that you can use to get the DH parameters. If you say that on my joint axis is not along Z, then no more this DH formulation is valid. Then you need to have a different way of approaching it, that is complex, that is why a standard formulation has been made. No, no, it will be more complex, you cannot have that kind of, because then it we are becoming arbitrarily assigning joined axis, then you cannot really formulate a standard. No, why X or Z, why not Y? No, see all this assignment comes after the first assumption of Z axis, then if you are saying that is not Z axis then your alpha is not more defined with respect to X axis, or Z axis. X0, Y0, Z0, is again you can decide what you want to have, which way you want to have or origin say. No, no, no, see no, you should understand one thing, see where a theta is a variable, alpha we are defining as the rotational axis or the rotational axis are oriented. So, you are saying that you are, you have one rotational axis Z, and then how these rotational axis is related to the next rotational axis is basically the alpha, that is how they are defining alpha, the angle between two joined axis. And now you are saying this is Z, and the next one is X, then you have to define the alpha is between Z and X with respect to some other axis, that will actually makes more complication of the system instead of having a standard formulation. So, this gives you a more standard formulation, then the other one is more arbitrary. So, you do not have any control over the angle, because each one you have to look at which axis you are defining it as joint axis, then you have to defend that as the alpha. So, this is much more easier, I do not know why you would say that that is more easy. Yeah. So, you are saying between 3 and 1, instead of making 2. No, then why 3? Why not 4? That question will come no. So, why 3? It can be 6 and 1, directly. Probably, we can discuss this later, I think you have a different view. So, probably we will discuss it separately, can meet me and we will discuss it. So, this is how you cross check then you can make sure that whatever the substituted there are actually getting it as the 1. (Refer Slide Time: 22:06) So, elbow to base, or home position. Again see, this is your elbow and so this is a3 and this is d1 and now we know that this position of the elbow is the coordinate of this is a3, 0, d1. So, this way you can cross check your position information. And you can check your orientation also, you will see that the X axis of the third frame or the elbow frame is aligned with the origin frame, origin of, origin of X0 of the origin. And therefore, you will see this is 1, 0, 0, the vector is aligned around the same direction both X axis, so it will be 1, 0, 0. Now, you will see that Y, the Y axis of this, this is the Y axis of elbow and that is along the Z0 axis. So, you have this as 0, 0, 1, here, because Y is aligned along the Z axis, so it I get 0, 0, 1, sliding vector. And then you will see that, the Z3 that is the Z axis of the elbow is opposite to the Y of the origin. Therefore, you will get the 0 minus 1, 0. So, this way you are sure that your formulation is correct whatever the joint angles you assumed, the alpha you assumed a3, d3, all the parameters are correct up to this point, there is no problem, so you can go ahead. So, that is the confirmation that you can have a crosscheck, you can have with your formulation. So, now we can do the, the next 3 that is the tool to elbow, you can find out this transformation again using the same three transformation matrices, I mean the similar transformation matrices, we can get this is as elbow, tool to elbow as this. So, you find the individual transformation matrix, and then multiply the three individual transformation matrices, then you get the tool to elbow transformation as this. So, as I mentioned, 45 represents C45 represents theta 4 plus theta 5, cos cos theta 4 plus theta 5. Now, again if you are interested you can actually cross check this once again, but with respect to this you have to cross check, you will see that the X coordinate as per this is this one a4, this is a 4, and this is d 6. So, you will see a4 plus d6 will be its X coordinates. So, if you substitute the value of theta 4 and theta 5, you will find this as a4 plus d6, and others will be 0, 0, because Y and Z will be 0 here, so you will be able to cross check it. Again, substituting the value of theta 4, theta 5, and theta 6, or you can do it as a final one, you want to find out finally you want to find out what is T tool to base. So, multiply these two matrices, that is the elbow to base and tool to elbow, multiply you will be getting it as another 4 by 4 matrix, which gives the position of the tool with respect to base frame. (Refer Slide Time: 25:44) And when you do this, again it is a multiplication of matrices, you will get it as this way. So, this is the position vector, just separating the position and orientation. So, the position vector will be like this, Px, Py, and Pz, this is what you get in the last column of the 4 by 4 matrix. And the other three will be the orientation will be this one, R, R matrix will be this. So, I, separately I have given, so this is your normal vector, this is the sliding vector, and this is the approach vector. And this is the Px of the tool with respect to base frame, Py of the tool with respect to base frame, and Pz of the tool with respect to base frame. Again, you can cross check your formulation, because you have this theta 1 to theta 6 identified for the home position, substitute the values of theta 1 to theta 6, theta in this case only theta 5, substitute here in this matrix to get the Px, Py, Pz and check whether you are getting it correctly. So, if you do this, if you are done it properly your Px should be equal to a3 plus a4 plus d6, because that is the X direction length of the manipulator. And your Py should be equal to 0 and Pz should be equal to d1, by substituting the value of theta 1 to theta 6 home position values of theta 1 to theta 6 in this matrix, if you are getting this as the relationship, that means you have done it properly and you are formulation is correct. If you are not done it, I mean you are not getting it that means something is wrong with your formulation, either the joint angle taken for the home position, or the alpha you have taken, or the origin that you assumed, that may be something wrong, that is a cross-check that you can do to make sure that your formulation is correct. (Refer Slide Time: 28:03) So, if you want to cross-check, you can cross check it here and you will get this as a3 plus a4 plus d6, 0 and d1. So, you can see that this is a3 plus a4, plus d6 the X coordinate with respect to base frame of the tool and the Z coordinate with respect to this is d6. So, your formulation is correct and therefore, what are the parameters you assume that whatever parameters you calculated I think is correct. You want to have one more cross-check, you can check the orientation of the tool frame. So, this is the tool frame, how this tool frame is oriented with respect to the base frame can be cross-checked and you will see that this Z axis is aligned with the X axis and therefore you will see this is 0, 0, 1, and X axis is aligned with the Z axis, and therefore you will see this 1, 0, 0. And then, this is Y axis is along the Y of this negative Y, it will be 0, minus 1, 0. So, your formulation is correct you have got the forward kinematics correctly. So, that is the checking that you can do when you have a when you are doing a forward kinematic analysis of manipulate. Whatever may be the manipulator configuration, assume a home position, and then for that home position you assign the coordinate frame, get the DH parameters, find out the home position theta, and then substitute this in the forward formulation up to the wrists, or up to the tool and then cross check, and finally make sure that what you are getting is correct. If you are not getting it correctly, something has gone wrong, that is the final length, then you can go check and then find out, what has gone wrong. Any questions on the forward kinematics, or we will not be doing any more example for forward kinematics, we will be moving to the inverse problem now. (Refer Slide Time: 30:21) So, two things; one is about tutorial tomorrow. So, there are two questions from the previous tutorial which you could not complete, along with that you will be doing this also in the next class that is tomorrow 9 O’clock, 8 O’clock you will be doing the forward kinematics of this and then trying to verify your answers with the, with the soft composition values. So, it is again a simple manipulator, which you already, we have done it in different ways, so no complications, we can get it straight forwards. So, try to finish, try to do this and then submit the answers in the next class. So, this is your position, what you are interested, tool position. You need to find out the tool to base matrix as a 4 by 4 matrix and get the Px, Py, and Pz as a function of the DH parameters. So, this will be done tomorrow in the class, so please come prepared, do not say I did not get enough time to do it, tutorial will help you to solve it. But you should come prepared with basic things that we already discussed in the class. So, there will be an assignment given to you. So, the assignment will be questions will be released by today or tomorrow, you have to submit by next Wednesday, next Wednesday 18th or so. Basically, there is a one problem on the forward kinematics of a industrial manipulator and then the second one will be a coding problem. So, you have to write a code for the forward kinematics of any manipulator, a general code basically how do you get the DH parameters, I mean once the DH parameters are given to you how do you actually find out the, how do you write a code for the forward kinematics and then getting the position. Student: which software should we use? Professor: Pardon, you can use do not use MATLAB any other software can be done. MATLAB will be the easiest thing to do. And I do not want you to write it in MATLAB, you can write it, I mean Python or any other language. So, finally you have to use that one for a standard manipulator and then show the results also the using the code how do you get the results. So, basically that is one which will help you to find out the workspace of a manipulator, once you have, so once you do substitute the value of theta for any value of theta you should be able to get the position and orientation of the tooltip. So, by sweeping the joint angles you will get all the points that the robot can reach, then you will get that as a work space of the robot. So, questions will be released by tomorrow you have to submit the result, I mean answers in Moodle by 18th. (Refer Slide Time: 33:24) So, just to test how much you understood whatever we discussed in the last few classes, there are few questions for you, you have to answer these questions. When the arm of a robot has one revolute and two prismatic joints, its work space will be? Fast. Student: cylindrical Professor: RPP, cylindrical, should not think this much. If the axes used to intersect, used to orient the tool intersect at a point, then the robot is said to have kind of wrist? What kind of a wrist? They are intersecting at one point all the joint axes are intersecting at one point, then you call it as? Student: spherical wrist Professor: Spherical wrist, so it is known as a spherical wrist. What will be the Y axis? Student: Downward Professor: Downwards, correct. T is a homogeneous transformation matrix. So, T is basically R if this is T, what is T inverse? Student: R transpose minus R tarnspose P Professor: R transpose minus R transpose P, so that is the inverse of this matrix. What is alpha, or how is alpha defined? Alpha is defined as the angle between? Student: Zk and Zk minus 1 Professor: Z K and, Z K minus 1 measured with respect to? Student: Xk Professor: XK, so that is the alpha. So, now you know theta what is theta, what is a, d and etc What are the joint parameters? Student: theta and d Professor: Theta and? Student: d Professor: d, link parameter? Student: a and alpha Professor: a and alpha. (Refer Slide Time: 35:26) So, you know all the answers, so we will have an assignment. So, question will be available for this is 19 March, I am not sure, 19 March is Thursday. So, I will make it on 18 March, 19 your exams starts so I do not want to do it, during, probably 18 we can finish it. 18 March you have to submit assignments. So, I thought of starting inverse problem today, but I think we do not have much time. So, what we are doing trying to do is, so far what we did was you see if you know the joint parameters theta what is the P that you can reach is the forward problem. That is, if you have a manipulator and if I know these values of theta 1 to theta 6, I know where this tool will reach, that is basically the forward problem. So, I can actually command joint the angle and move it to a particular position. So, that is what we, and we know when we command from joint angles we know where this will reach. So, we can find out the position, but most of the problems in industrial robots is not that one, I have a work piece here, I want the robot to go and pick up this work piece, and I know where the work piece is at present. So, what I know is that there is a work piece here, and I know the position and orientation of this work piece, I want to know what should be these joint angles to reach this position. So, what should be this, what should be the joint angles to reach this position so that the robot can pick up the object. So, the object position orientation is known, I want to calculate what should be my joint angles to reach here, that is basically the important problem in industrial robots, or most of the industrial problems are like that, where the robot reaches is not that critical. But how can I reach an object and pick up the object, or if I want to place this object here I do, I know where to place the object with respect to the base of the robot I know where to place the object. But then to place this object here what should be the joint angle to reach there, that is what I do not know. So, this problem of getting theta if the P is known is known as the inverse problem. So, the forward problem was theta is known what is P is the forward problem, but then P is known theta is not known is an inverse problem. And this is much more complex compared to the forward. So, forward now appears to be more straightforward if you have the, you have standard formulation, we just apply the standard formation to get an inverse solution, forward problem. But for inverse there is no standard solutions, each robot has to have its own inverse problem, inverse solution there is no standard formulation like a forward problem, you have to look at the forward of the particular manipulator and then see how to solve for the inverse, so it becomes much more complex. And another problem is that, if suppose there is an object here and I want to reach the object I can calculate joint angles to reach here. But I can actually reach like this also. So, I have two ways to access this or sometimes multiple ways to access this, then it becomes more complex because I will be have multiple solutions. So, how do I actually tackle the multiple solutions as well as the manipulated specific solutions for the inverse is the challenged. And therefore, the inverse problem is complex are much more complex than the forward problem. And there is no standard formulation like DH in this case, you will be using DH to solve it but there is no standard way to solve all the robots with the same kind of a solution. Forward we have the same solution for all kinds of robots, where it is 5 axis, 6 axis or any configuration you can use the same DH formulation and get the solution. But inverse, that is not possible you need to have manipulator specific solutions to solve the inverse problem. So, we will discuss this in the next class, and then we will talk about velocity relationship also. So, we will stop here, so come prepared for the tutorial tomorrow and check your Moodle for the questions on assignments questions. Thank you.