Amazing April Sale! 🥳 25% off all digital certs & diplomas!Ends in  : : :

Claim Your Discount!
    Study Reminders
    Support

    Introduction to Robotics Professor. Dr. T. Asokan Department of Engineering Design Indian Institute of Technology, Madras Lecture – 2.12 Differential Relations Hello good morning. Welcome back. So, in the last few classes we discussed about the Forward and Inverse Kinematics of manipulator. So, this forward and inverse basically is a position relationship so we were trying to see how we can relate the joint positions to the tool position or if we know the tool position how can we get the joint position or if we know the joint position how can we get the tool position. So that was the forward and inverse kinematic relationships. But in most of the robot applications we are not only interested in position, but we are interested in the velocity relationship also. (Refer Slide Time: 00:57) For example, if you have a robot and the tool tip is given like this. So we want this to move to this position and this position we just want this to have a particular velocity also. So we want this to move from here to here with a particular velocity in the Cartesian space or we want to say the tool configuration we want to have a velocity. So, we want this to be move from this position A to B with a particular velocity. As a constant velocity or velocity profile defined by the user we want this to move and if that is the case we need to move the joints also so this joint also need to have some velocity to get the Cartesian velocity. So, if we have an X dots we want to X dots we need to know what is the theta dot corresponding to that and then how can this be related that is the velocity relationship or differential relationship. So, how this theta dot the joint velocity and the Cartesian velocity X dot are related is known as the differential relationship or differential kinematics in manipulator kinetics or in the manipulator analysis we call this as the differential kinematics. So, we will try to see how we can develop this relationship once we have the position relationship how can we convert or derive the differential relationship for manipulator so that is going to be the discussion we are going to have. (Refer Slide Time: 02:37) So, we will talk about the tool configuration and joint space velocity. So, joint space velocity is basically the theta dot and then the theta dot and tool configuration velocity is the X dots. So, you have theta dot and x dots. What is the relationship between theta dot and x dot is the one which we will see that is the tool configuration velocity and joint space velocity. When I say x it shows that it is xyz as well as the angular velocities linear and angular velocity in the Cartesian space. And when we have when we develop this relationship we will see that this two are related to a matrix and then that is basically we called as Jacobian of the manipulator or Jacobian matrix. So, we will talk about the tool configuration Jacobian as a velocity relationship and then we we can mentioned this as the manipulator Jacobian which is the generalized form of this Jacobian which can be used for other applications also. Not only velocity relationship we can use it for the force relationship also. Now when we go through this and when we know that you need to get theta dots x dot from theta dot we can actually get the x dot from theta dot if we know theta dot we will be able to get x dots because theta dot is what we can control so we will be able to get x dots. The other way is also possible that theta dot can be represented as a function of x dots. And we call this as a inverse relationship and when we have this kind of relationship and we will see that in some situation or within the workspace of the manipulator there may be many points where we cannot move the manipulator because of some constraints and that we call it as the singularity in the workspace. So, we will talk about the singularity and how they are actually related to the tool configuration and space joints space velocity and also we will try to understand. And then when we talk about singularity, there are two types basically the boundary singularity and the interior singularity which we will discuss and we will talk about something called generalized inverse because when we try to find out this inverse relationship for the velocity we will find some difficulty in getting the inverse of a matrix then we will use something called generalized inverse to solve this problem. And finally we will that is pseudo inverse is one form of the generalized inverse and finally we will talk about the statics also where we will be using the relationship that we developed in the differential kinematics to solve for the static analysis of manipulators. So, this is going to be the discussion that we are going to have of course we will solve the examples as the discuss in all this topics. (Refer Slide Time: 05:46) So, I already mentioned about the differential relationship so we have theta that is the joint parameters or the joint positions and then you have this position of the tool tip which has got the position vector and the orientation also. So you have the position and orientation of the tool in the Cartesian space that is known as the tip location Cartesian space and then you have the tip location in joint space. So, the tip location in joint space is represented by the corresponding joint angles which give you the tip location and as we know that they are related through the forward kinematics so F is forward kinematics of theta and theta is the inverse kinematics of X. So if we know X, we can apply inverse kinematics and get the theta and if you know theta, you will be able to get the X using the forward kinematics so that is the relationship we have. Now what we are interested in this getting the X dot and theta dots. So, the the reason why we need to do is to the robot path planning and problem is formulated in tool configuration space because you are interested in the velocity of the tool and most of our problem will be formulated as velocity of tool or end effector and the robot motion is controlled at the joint space. So always the motion is controlled at the joint space we cannot control the tip directly though we want the tip to have a particular velocity we cannot comment that the velocity directly we need to comment the joint velocity. So, we can control the theta dots and then we need to get the x dots. So, what kind of relationship exist between these two is important for us to comment theta dots. So, how do we actually comment theta dots to get a x dot or for a given for a desired X dot so I have a desired x dots I want to know what theta dot will give actually give me this X dots. So that is the relationship we are interested so that I can move theta or move the joint with a particular velocity so that I will get to decide X dot at the end effect. So this can actually be obtained if you represent x as wq where w is the relationship between q, q is the joint variable. So we will refer theta in case theta, theta is angle, but we refer q as a joint variable where it is theta or d for prismatic or rotary joint we can use q as the joint variable and then we can say that x is wq that is the function of q instead of FK with that axis wq where w is the tool configuration function and q is a joint variable. Now we can actually x dot if you want to write we will be able to write x dots as a function of q dot. And the relation between this x dot and q dot this is theta dot, theta dot and x dots so this can be written as x dot is equal to J q q dot. So, we will be able to write this x dot as the function can be written as J q q dots where J is known as the Jacobian and it can be obtained by taking the partial derivative of w with respect to q. So if we have X is wq so we have x is equal to wq so we can write it as x dot is equal to partial derivative of w q dots. So, that is the relationship that you can get. So when X is equal to wq, we will be able to write x dot is equal to partial derivative of w with respect to q, q dots so that is the relationship that we can see. So, we will be able to write x dot is equal to J q q dots where J is the matrix which relates the joint velocity and Cartesian velocity and this matrix is known as the Jacobian matrix of the manipulator or we call the tool configuration Jacobian. Because it relates the tool configuration velocity to the joint velocity so we call it as the tool configuration Jacobian and the elements of J so now J will be 6 by n matrix because n is the number of degrees of freedom and we have 3 linear velocity and 3 angular velocity so this will be 6 and it will be a 6 by n matrix and this element of J Jk Jq is given as partial derivative of w kq with respect to qj so that is basically the elements of Jacobian. So, once we have the forward relationship x wq so that is basically the forward kinematic relationship. We can take the partial derivative of that relationship with respect to the joint variables and that will give you the Jacobian matrix and then x dot will be Jacobian multiplied by q dot so that is the relationship velocity relationship that you can derive from the forward kinematics. So, J is the Jacobian which relates the tool configuration velocity to the joint velocity. So, this is the relationship x dot is J q dots so if you know q dots, you can actually get the x dots by simply multiplying q dot with J so that is Jacobian. So, k is 1 to 6 and then j is 1 to n, n is the number of degrees of freedom. (Refer Slide Time: 11:31) So, this can be written in the matrix form as like this, so if your X is wq we will be able to write down the J elements as like this. So, you have this x dots as x dot y dot and z dots these are the three linear velocities in x direction, y direction and z direction in Cartesian space and then you have this omega x, omega y, omega z which is the angular velocity with respect to x, y and z axis. So, these are the 3 linear and 3 angular velocities and then you get this element by taking the partial derivative of w1 with respect to q1, q2 to qn. So, w1 is the relationship for x Px is function of so we write only the position of x we know it is a function of q so we consider this w1 we write it as w1 q then you take the partial derivative of w1 with respect to q1, q2, q3, qn you will get the first row of the Jacobian that is what the x velocity. And for y velocity you take the second relationship Py relationship so you will be having end relation Py is equal to w2q then you take the partial derivative this w2 with respect to q1, q2 etcetera. So, this is the way how you will get the Jacobian elements the elements of the Jacobian matrix. Now you can see this, this is the 6 by 1 vector 3 linear velocity and 3 angular velocity. And this is an n by 1 vector because you have n joints and therefore there will be n joint velocities so it is a n by 1 vector and then this would be a 6 by n matrix. So, it may not be a square matrix it will be Jacobian will be matrix depending on the dimension of n, depending on the n, the dimension of matrix will be 6 by n. So, for a 7 degree of freedom it will be 6 by 7, for a 5 degree of freedom it will be 6 by 5, for a 6 degree of freedom it will be a 6 by 6 matrix. So, this is the Jacobian how we get the Jacobian. So, we will take few examples to see how the Jacobian can be developed for any manipulator. So, first we look only the linear velocity parts and then later on I will explain how the angular velocity can be calculated and angular velocity part can be calculated. So, the for the rotary manipulator it will be J theta, theta dots and you can actually get the inverse also. Suppose you have this x dot Known then we can get the theta dots. So, if theta dot that is a joint velocities are none we can easily calculate the x dots using the J theta, theta dots. Now the other case you know what is Cartesian velocity you want to find out the corresponding theta dots for a given x dots what is the theta dot can be obtained by getting the inverse of Jacobian. We take the J inverse x dots. So, in the workspace suppose you have the workspace this is the work space and you want this to move from here to here A to B in the workspace, we can specify what is the velocity you want this want this tool tip to move from A to B if we can specify these velocity we can find out what is the corresponding joint angles, joint velocities using this relationship J inverse x dot. So, that is the inverse relationship for the velocity so x dot is J theta dot and theta dot is J inverse x dots. Although, it is a direct problem of getting theta dot and x dots that will create lot of issues when we start computing the theta dot for a corresponding x dots. We will be discussing that what are the issues, but one issue is that the J theta inverse so we have to get an inverse of J. And one problem immediate problem is that when it is non square matrix how do we take the inverse? So, 5 degree of freedom robots so for a 5 degree of freedom robot this will be 6 by 5 matrix and how do we get the inverse of 6 by 5 matrix and we know that the inverse need to be calculate the inverse we had to have a square matrix and then only we will be able to get the inverse. But in this case when it is 6 by 5 what we will do does it mean that for this relationship is applicable only for the 6 degree of freedom robots or other robot also can actually use the same relationship that is one immediate problem and another problem is that this J even if it is a square matrix as you know not all matrices can be inverted again depending on the type of matrix and its properties you may find sometime that it cannot be inverted. Because of its rank, its rank is not equal or there is some problem with the matrix condition number then you would be able to get the inverse. So, these are the two major problem that we will face when we go for the calculation of theta dot from x dots. So, we will discuss that issue later so first let us see how do we get the J for a manipulator, how do we first calculate the Jacobian for a manipulator we will see then later on we will discuss about the problems associated with the inverting of Jacobian. (Refer Slide Time: 17:28) We will take a very simple example initially to see how to calculate the Jacobian. So, we know that these differentiation with respect to theta so we will take a very simple manipulator of a one degree of freedom so we will take a one degree of freedom single link manipulator planar manipulator to make it very simple. So, we will we know that this is the P, I mean this is the tip and this is theta. So, you have only one degree of freedom. So, we can easily write Px and Py so Px is equal to something and Py is equal to something so that is giving x is equal to something multiplied by theta dots and theta so this is we will be able to write x dot is something multiplied by theta dot and these elements are basically you will get that this partial derivative of Px with respect to theta. And partial derivative of Py with respect to theta so that will be the element here, partial derivative of x and partial derivative of y theta. So this would be the two element in this case and yes you know it is only x dot and of course x dot means x dot and y dot in this case Px dot Py dot. So, this is the way how we can actually get it. Now if I do this, we know that Px is equal to r cos theta Py is equal to r sin theta. And then to get the Jacobian we take the partial derivative and find out what is the Jacobian that you are getting. So, take the partial derivative of Px with respect to theta it will be minus r sin theta, theta dot Px dot will be minus r sin theta, theta dot and Py will be r cos theta, theta dots. Now if we write it as a matrix we will get it as x dot y dot when I say x dot y dot Px dot Py dot is minus r sin theta r cos theta theta dot. So, that is the relationship we get and this is for the Jacobian for the single degree of freedom manipulator, it is minus r sin theta r cos theta. So, you are talking only about the linear velocity for the time being we will discuss the angular velocity later. So, this is the x dot and y dot for this manipulator. So, this is the principle to be followed whether it is a 6 degree of freedom or 7 degree of freedom we will follow the same principle and then start calculating the Jacobian that is what we do in this case. (Refer Slide Time: 19:54) So, let us the take the 3R planar manipulator. Again it is only planar we are talking about we will see how can we get the Jacobian. So, look at these so this is the planar manipulator which we already discussed during the forward and inverse kinematic analysis. So, we know what is Py and Py and Pz also we know. So, we have the relationship for Px, Py, Pz because if this is taken as l1, l2 and theta 1, theta 2 etcetera and this is theta 3 we will be able to get it. So, the relationship is obtained from the forward kinematics like this Px is l1 C1 plus l2 C12 and Py is l1 S1 plus S12 and Pz is d3 so, that is the relationship. Now what we want to I mean if you want to get Px dots what we need to do is to take the partial derivative of Px with respect to theta 1 and so if you write it like this we will get it as x dot is Px with respect to theta 1, theta 2 and theta 3 and Pz theta 1, theta 2, theta 3. That is the way how we get x dot, y dot and z dots. So, we can see this is 3 by 1 vector, 3 by 3 matrix and it is a 3 by 1 vector. Now, we take Px with respect to theta 1 it is l1 C1 plus l2 C12 so we will be getting this as minus l1 S1 minus l2 S12 and this would be minus l2 S12 and this is l1 C1 plus l2 C12 l2 C12 and this should be 0 because Px with respect to theta 3 Py with respect to theta 3 and Pz with respect to theta 3 are 0. So this will be the Jacobian for the linear velocity of the manipulator so this is how you can get the Jacobian for manipulators so whether it is a 3 degree of freedom or 5 degree of freedom use the same principle because get the relationship from your forward kinematics Px relationship or X relationship and then take the partial derivative get the matrix so you will be getting the Jacobian for this manipulator. (Refer Slide Time: 22:08) There is another example again 4 axis manipulator which is SCARA manipulator 4 axis. So just to ensure that you are thorough with this process, so I am just showing one more example again you will be getting Px like this if you do a forward kinematics you would be getting Px as l1 C1 plus l2 C1 minus 2 then Py is l1 S1 plus l2 S1 minus 2 and Pz is d1 minus q3 minus d4. So, in this case it is a linear joint so you have one linear joint that is why it is known as q3 it is the variable joint 3 the last one is basically a, the third one is a prismatic joints that is why q3 is a variable and d4 is a constant. Again the same principle you apply the take the partial derivative with respect to theta 1, theta 2 and q3 and theta 4. So, here you have Px with respect to theta 1, theta 2, theta 3, q3 and theta 4 same Py Pz also. So, these are the joint velocities theta 1 dot, theta 2 dot, q3 dot and theta 4 dots and if you do this partial derivative we will be getting it as this so Jacobian will be this matrix minus l1 S1 minus l2 S1 minus 2 minus l2 S1 minus 2 like that. So, you will be able to get the linear part of the Jacobian by taking the partial derivative like this. I hope you understood this method. (Refer Slide Time: 24:02) So, let us briefly talk about the issues with Jacobian when we try to do the inverse. So, as I mentioned you can do the theta dots by taking the Jacobian inverse if you know x dots we will be able to calculate theta dot by taking the inverse of the Jacobian J inverse, but many cases you will be having difficulty in calculating the J inverse because J is a function of theta. So, the Jacobian is a function of theta as you saw in the previous cases. You can see this is a function of theta as theta value changes, the Jacobian matrix also changes. So, for any different position of that tool tip you have different matrix the elements of matrix changes so your Jacobian matrix also changes so, it is not fixed for a manipulator as the position changes your J also varies and there maybe some position in the workspace that this J become non invertible. That is when that is moving or when the theta value changes, there may be a situation where the Jacobian may not be invertible for all the values of theta. Assuming that J is a square matrix for the time being in that case also when the matric the manipulator is moving in the workspace, then you will see that at some for some values of theta, the Jacobian may not be invertible that is because the Jacobian loses its rank. So, if it s 6 by 6 matrix then the rank of the Jacobian will actually come down to 5 at some point then you would not be able to invert it. So, that kind of situation will be common in manipulator or workspace and that kind of situations are known as the singularity. So, at certain points in joint space Jacobian loses its rank. Therefore, some values of theta the Jacobian loses its rank. And there is a reduction in number of independent rows and columns in the Jacobian. So, initially it was a 6 by 6 matrix, but then after sometime it actually become matrix is still 6 by 6, but the independent rows or columns reduced reduces because of the position of theta and its loses rank it becomes 5 that situation then such situation are called as joint space singularities and you would not be able to invert the Jacobian at that point. And when you are not able to invert you would not be able to find the theta dots because you have an x dots and at that particular configuration of the manipulator that particular joint positions you find that J inverse is not existing and therefore you will find it theta dot cannot be calculated. For any values of x dot you would not be able to find theta dot for any theta dots you would not be able to get an x dot. So, if you look at from the other point you want to move the joint, you want to command the joint at very high velocity, but still you are not able to get the desired x dots this situation is known as the joints space singularities and this is common because the Jacobian since it is a function of theta as the theta takes a particular set of value, then for that particular set of value we will see that this relationship is not possible to be evaluated or any value of theta dot you would not be able to get x dots. Or to get an x dot desired x dot, the theta dot should be infinite that is the way how you can look at it. If you want to have an x dots then you need to have an infinite velocity at the joint to get this x dots such situations are known as joint space singularities or that position of that manipulator is known as singular point or a singular point in the workspace. It can be multiple points need not be a single point. It can be multiple points or as it reaches that point you will find that the manipulators the Jacobian loses its rank. So, this situation is the joint space singularity. So, the Jacobian matrix Jq is of full rank as long as q is not a joint space singularity. So, the Jq will be of full rank as long as the q is not a joint space singularity. When this is singular the joint space at singularity then Jq loses its rank. And this can actually measured by something called dexterity measure. So, how close the manipulator is to a singular point can be measured by the term dexterity. So, we would define dexterity as the determinant of J transpose J or JJ transpose depending on the value of n is less than or equal to 6 or more than 6. So, this is used to get the dexterity measure if it is greater than 6 then use JJ transpose. So, either J transpose J or JJ transpose you find out the determinant of JJ transpose and that is known as that will give you the dexterity of the manipulator and for the general, case the tool Jacobian matrix is less than full rank if then only n by n matrix J is singular and for redundant manipulators determinant of 6 by 6 matrix must be used n is less than 6 or more than 6 and you have to use J transpose J or JJ transpose. Now a manipulator is a joint space singularity if and only if dexterity is 0. So, when the dexterity is 0, that is the determinant is 0, for J transpose J or JJ transpose, then we call this as the singularity or that space singularity dexterity will be 0. So, when manipulator is starting from one point which is not a singular point or the dexterity is very high then this value will be having a very high value. Then as it moves towards the singular point you will be getting it as 0. So, as it moves to the singular point it will start coming down very small values and then finally at the singular point you will be getting a dexterity value as 0. So, this is actually a measure of singular space I mean this dexterity that is, if you have a manipulator workspace like this, then there may be a singular points somewhere here. Assume that there is a singular point here that is a point the dexterity will be 0 and in other places you will see that as it moves here the dexterity will start coming down to 0. So, it may be having some values dexterity here, but as it moves towards this you will see that it actually comes down to 0. So, neighborhood of this will be having very small value of dexterity and again you will find difficulty in moving the manipulator in this area. This whole area you will find difficulty because the dexterity has come down and therefore, this will have a difficulty in getting the inverse so the theta dot will keep on increasing as it as it goes close to this area. For getting at different constant velocity if you want this to move with a constant velocity along this path, then you will find it as it passes here this area you will be having difficulty in getting the desired velocity. And it has to pass through this, then you will decide somewhere here it will stop and you would not be able to pass through that point. So, that is the way how the dexterity measure is used to find out the dexterous workspace of the manipulator. So, any manipulator will be having dexterous workspace, but the dexterity is very high and other spaces where actually dexterity is low we will try to avoid going towards to going that space. So, the manipulator when you design the manipulator we look at the dexterous workspace and ensure that most of our operations will be done within dexterous workspace when we try to avoid the other workspace for normal operations and if you want to move some other point we also try to avoid the dexterous space and then move or we will plan a path in such a way that the singular space is avoided and then robot is moving to the target. That is the importance of knowing the dexterity of the manipulator and then as J is a function of theta you would be able to find out the dexterity I mean dexterity at every point in the workspace and you can make a plot of the dexterous workspace. So, that is the singularity then there is something called boundary singularity. A boundary singularity occurs when the tool tip is on the surface of the work envelop. That is when you have a workspace, when you have a workplace like this, and the tool tip has already reached here the tool tip has already reached this position then we call as this will not be the right representation. So, the tool tip has already reached this point now this is also a kind of singularity because if you want to move it in this direction you would not be able to move if you want to give a direction velocity in this direction, then you would not be able to move. You have actually reached the maximum of that you can reach and then again you have a velocity in this direction you would not be able to give, but you can actually move in this other directions you can move in this direction or this direction, but you cannot move in this direction. So, that is the kind of singularity and that we call it as the boundary singularity of the manipulator. But we can have it insight that is a interior singularity and when it is at the boundary we call it as boundary singularity and boundary singularity exist for our manipulator you cannot have velocities in particular direction when the manipulators has already reached the boundary. So, that is boundary singularity and the other one is the interior singularity. (Refer Slide Time: 35:05) Just to tell you to explain you how the boundary singularity is calculated so look at this manipulator for the manipulator where you have a Jacobian like this. So, we saw this Jacobian for the manipulator. Now if you have a Jacobian like this we can find out what is the boundary singularity of this manipulator. What we need to do is find out the dexterity and then see when the dexterity will be 0. So, we can identify this dexterity as like this it determinant J transpose J and then find out this is the dexterity in terms of the joint angles. So, we will see that l1 l2 S2 is the dexterity and this will be 0 when S2 is 0. So, when your sin theta 2 is 0 you will be getting dexterity as 0 and that will be the boundary singularity. You can see that when theta 2 is 0 or pi the manipulator will be singular. So, this is the case for the SCARA robots so we can see that when it is fully extended then it is at the boundary and theta 2 is 0 it is at the boundary so it is a singular configuration. Similarly, when it is fully closed then it is theta 2 is pi again inside the boundary so again boundary singularity. So, you will see that this theta 2 is equal to 0 or pi is a boundary singularity for the manipulator. So, this is how we get the boundary singularity of any manipulator. We can actually find out the manipulator boundary similarities by finding out the dexterity when it actually becomes 0 then you will be able to find out the boundary singularities. So, whenever theta 2 is 0 it is actually