 Good morning. So, we yesterday we looked at the kinematics and inverse kinematics of the robots. Today we will look at the robot dynamics and servo control. So, basically the problem is that robot has a number of joints and each joint is powered and it is powered typically by different type of actuators for heavier robots. These are hydraulic actuators for smaller robots typically they are electric actuators. The electric actuators are advantages because you do not require a additional power supply hydraulic power supply and it does not have to be as messy. So, it is much easier to have electric drives. So, let us consider those and if you look at this diagram here this shows the cutaway section of a what is called a SCARA robot. SCARA standing for selective compliance assembly robot. So, basically this type of a robot is often used in assembly and there are some good design features that one can notice in this. So, if you look at that first of all it is using DC servos and which means they have linear characteristics and all that and you have motors which have been designed to be at the base. So, if you look at the heavy motors for example, joint one motor is represented here in this area and this area you can see the stator and the you know rotor coils are there and this rotates a whole of this column here. What says joint one drive tube that rotates a whole of the upper body this is the trunk rotation of the robot. Then there is no shoulder rotation in this robot that is how you get selective compliance that means some directions it is very stiff other directions it is not as stiff which is useful for assembly tasks. So, in this you have directly another vertical axis which is at this point here. So, this is joint two and joint two is driven not by a motor on the in the joint, but it is driven by a motor which is again located at the base. So, base drives this second drive tube which is connected to this kind of a pulley it is not really a pulley, but it has a steel band on it. There is thin steel strip which is used to drive this and the strip because the rotation is not multiple rotations it can be we can we can fix this drive on the cylinder here this band on the cylinder and then there is no slip and it stretches very little because is steel. So, you get a backlash free very good transmission here. So, using that then the other part of the forearm is rotated and then there are two more axis in this since essentially for this to go up and down is the joint three and joint four once again is a motor here and then there is a belt drive here to rotate this axis about this vertical axis. So, there are three vertical axis and one up and down motion predominantly in this robot. So, what we are looking at is we are looking at the problem of joint drive how do we drive the joint? So, it can take. So, basically if you look at the control system in the servo servo system, servo system means it is a feedback control system. Servo system is a feedback control system in which some mechanical motion is achieved. So, it is a servo mechanism what is called a servo control. So, it consists of the system will consist of actuator which we saw in this particular case motor transmission could be hydraulic cylinders. You will have to have some sensors. So, that we can have feedback and that feedback typically the most common sensor is encoder. It is basically a non-contact type of position sensing device if you are not familiar with it. It basically is basic you know looks at a disc which is coded and you have a light beam or multiple light beams which tell you where the disc is with relation to the two parts which are moving. Then you can have other type of sensors you can have potentiometers which give you position also, but they are not as reliable you have 4 sensors etcetera, etcetera, but not necessary. Now, what is necessary is that some kind of a position feedback must at least be there because we are doing a task robot is doing task which is basically positioning the joints at various positions. Some kind of controller is necessary which will look at the sensory feedback and then give command to the actuator. Then our plant which is the terminology in the control system this thing is the robot which is what we are trying to make move or change the characteristics dynamic characteristics of. So, this kind of a system we will need to know what is the what kind of actuator should be used. So, if we assume that we are going to use electric motors then one way to go about selecting is it is not I am not going to go into details of this, but just enumerate the steps which are necessary or which are useful is that you first of all decide on what kind of motor you are looking at and then look at all the several sizing the torque capacity and specifications you arrange them arrange whatever motors are available to you or you are considering in the order of increasing torques. Then what you do is you because we do not know what the torques actually are. So, this is the main problem. So, we assume that robot parameters are all 0. So, you know you know acceleration know this thing all those things are let us assume for the time being 0 and just consider what the load is. So, if it is picking up some part at a some distance etcetera one can estimate easily what the torque requirements on the motor are and you can assume a motion that is to be achieved that is desirable and that motion one can assume it to be having a known profile. So, if you assume a trapezoidal profile which means there is some constant acceleration phase in which the joint accelerates then you have a uniform maximum velocity motion and then you decelerate. So, all these if you have approximately you can figure out what the timing should be depending on the task and from that one can get acceleration information also. So, if you look at the load part how the load is accelerating one can then determine what the torque due to these things are. So, you consider all these torques at different time basically when you look at the trapezoidal profile you are saying I require this torque for acceleration, this torque for deceleration this node torque is required or only some friction or some other gravity torque which can be estimated from the task is required and you have a time line of what the time profile of the torques which are required. So, one can then estimate from that the RMS value of the torque which is what you will require to choose the motor. So, once you have the RMS value of the torque you choose the minimum frame size which is going to give you that kind of torque and select that and then what you do is you once you have this motor then you estimate various things like once you know the motor then you know the motor characteristics and add various inertia's of the robot system and revise the torque and see whether the motor will still suffice or not. If it does not suffice you go to the next winding in the same frame and if all the windings are finished you cannot get any more torque then you go for the next frame size. In this process you do this kind of estimations for peak current requirement which is simply the torque divided by the motor constant. So, once you have selected a motor then you can find out what the peak current is see whether the peak current is exceeding the maximum or not right. So, like that and then check for temperature rise in armature there are formulae available for that given the current flowing in the thing and the time duration you will know what kind of temperature rise you can expect in the armature then you will see whether the temperature rise is allowable or not. Typically you can go up to about 150 degrees for the armature, but you would like to keep it much below that if possible ok. So, if any of the allowable limits across then you revise the motor this is one procedure one practical type of a way of going about choosing the motor. Now, having chosen the motor we need to model this and see what kind of dynamics how we should be doing the control. So, here if you look at this this is just a representation of a robot drive. So, let us look at joint one typically it will be a motor which will you cannot see the shaft the shaft is below and there is some let us say a pinion on it which is driving this big gear which is driving this whole column up and which is moving the trunk motion of the robot. So, you have some inertia's you have some transmission you have. So, if you want to simplify that let us simplify this to a permanent magnet DC motor which has linear characteristics and good torques at low velocities which is what we require to start the acceleration of the various members. We will assume constant inertia. The inertia in robot is not necessarily constant in fact it is anything but constant. So, but to handle to start out how we look at this control problem let us assume that the inertia is also constant the transmission is ideal that means there is no backlash. So, and there is meaning 100 percent efficient and you lump all the inertia of this arm and the transmission across the transmission which is called reflected inertia. So, it the square of the transmission ratio comes into picture here and then one can lump it all together as if the inertia is at the armature itself. The basic motor dynamics is pretty simple for DC motors. These are the differential equations which one can write this is simply saying that position derivative of position is velocity and then if you look at the torque which is available at the motor which is generated in the motor now that is equal to some motor constant times the current flowing in the armature. For permanent magnet DC motors this is the case for separately you know if you have series motor and all that then it will be different, but for permanent magnet DC motors this is simple relationship and that torque is used to overcome the inertia which means to accelerate the inertia. So, you have the acceleration term here angular acceleration times the moment of inertia and it has to overcome some friction viscous damping type of friction. So, that is the term here. So, it is quite simple and similarly on the electrical side you apply some voltage to the armature and that voltage is then gives rise to current in the armature which is depending on what the inductance of the armature is and what the resistance of the armature is and then you have something called back EMF which equals the motor constant times the angular velocity. I am using the same constant here and here some places you will find they use different symbols and if you are dealing with SI units then the two have the same value anyway. So, we can use the same symbol. So, these equations can be recast in a standard format you put all the derivatives on the left hand side and you write every term as a product of one of these. So, this becomes a constant matrix here which has got all the parameters are coming in here. So, this is called a state equation. It has a form that some x dot vector is equal to some matrix times x plus some matrix or vector times some input. So, input here is let us say taken as the input voltage v. So, this is good one can then translate this into a transfer function. Transfer functions are basically relationships between output and input and in the Laplace domain. So, then your differential equations become algebraic equations and that you do by simply looking at the derivatives and depending on what derivative you have the first derivative simply means multiplication by the Laplace variable s. So, one usually does it in the scalar case one can also do it in the matrix case vector case and one can write the Laplace transform of the state equation and the output equation. Output equation means simply some combination of the state is considered as the output. So, this you manipulate this and then you can take this on the left hand side and you can find out what x is in terms of u and. So, you get expression like this and if you want to have the ratio of output to input output being y which in this case let us say if position is the output we are trying to control the position then your C matrix is nothing but 1 0 0 because C multiplied by x which is theta omega i right. So, 1 0 0 times this will simply give you theta which is the output. So, it is nothing mysterious and this gives you the transfer function which relates the output to the input in the Laplace domain. Then one can start to think about what should be the input to this transfer function which means that will determine what the output would be. So, since it is a ratio of output to input in Laplace domain if you take the Laplace transform of the inputs you will in multiplied by the transfer function then you will get the Laplace transform of the output. So, you write a transfer function and in this case your open loop transfer function basically looks like this for the motor dynamics and where these two constants this should have been m here subscript m. So, tau m and tau e are what are called mechanical and electrical time constants. They give you an idea about how fast the dynamics is for the mechanical side and for the electrical side and as you would expect that time constant for the mechanical side is going to be usually much larger than the electrical side. The electrical side time constant depends on the inductance in the coil. So, how fast the current rises in the in the in the armature when some voltage is applied and mechanical time constant tells you if you apply a torque how fast does it accelerate ok. So, and the controller gain k is is lumped into this parameter here which also has some other you know constants which are there. So, we are not going to detail of these derivation of these, but these are typical this is how the transfer function will look like. Now, for that transfer function one can apply various control tools which are available I do not know how many people are familiar with control theory everybody is familiar ok. So, basically root locus plot tells you where the closed loop poles of the system would be given the feedback and you use one of the parameters or one of the gains in the system you vary it and you see how those closed loop poles shift around in the S plane. Now, the reason this is very useful is because one has an idea that if the poles are located in some part of the S plane then what kind of response can you expect ok. So, you know if your poles are located somewhere on the real axis to far to the left that means it is going to be a first order type of response with the time constant which is going to be very small because you can see that all the points here located are looking like 1 over some time constant 1 over some time constant. That means if the time constant is very small this number is going to be large and it is on the negative side. So, it is on the far left side and it will gives rise to e to the power t over tau type of terms and if this term is far to the left then you get very fast response ok. So, in our case we can see that there is a pole open loop pole at the origin. So, our closed loop poles are going to start from open loop poles and then migrate to some places according to some simple rules by which you can draw the root locus. So, but the point is that since we are starting from 0 there are going to be some poles close to the origin and as you increase the gain k what happens is these two poles come together and they fork out into complex conjugate poles and then they migrate towards the asymptotic direction whatever that is and. So, eventually it crosses the imaginary axis and it crosses for some k cross which in this particular case turns out to be related to the time constants in this manner ok. So, the point is that as you keep on increasing the gain initially for very small gains you have all the closed loop poles are on the real axis. So, they show first order type of response no oscillations and as you continue to increase the gain at some point here you will have fairly oscillatory or slow response meaning there will be before it settles down you are going to have a lot of oscillations. So, since we can interpret where the what the poles mean in the S plane this gives us an idea where we would like to have our closed loop poles and typically critical damping you know something slightly less than critical damping is what people look for to place the poles ok. So, now if it turns out that for the gain that we require for sufficiently fast response if the gain is very small the response is going to be little slow. So, if you want robot to be able to move fast then you need to increase the gain a little bit and if you increase the gain you finding here that your system becomes a little oscillatory this is typically what happens when you increase the proportional gain or the position gain here. So, in that in such cases we may require velocity feedback ok. When you put velocity feedback that means you have a tachometer some kind of measurement of velocity and then you are using that also to determine your controller action then we have a open loop transfer function which has a 0 now appearing here and that tau D basically is something to do with sorry S is missing there there should have been a S along with the tau D ok. So, this tau D is going to determine where the 0 is going to be placed and what happens is now we have a 0 depending on the value of tau D it may be here it may be here. So, if the 0 is between the first 2 poles then the root locus will look like this that starts out from the open loop pole to the open loop 0 and there these 2 poles will come together and fork out again into the complex plane. This is simplified this is not exactly right this will be slightly curved and going straight up. So, but we are not looking at the quantitative information here we are looking at the qualitative information here for time being. If the 0 was further to the left between these 2 poles then your root locus will look like this the 2 close closer to the imaginary axis poles will come together and fork out yes please yes yes yes of course, that S S from numerator has gone down to the denominator yes. Thank you for pointing that out there is this should have been 1 plus S T E ok. So, now if you look at this situation for example, now you have 1 pole which is remaining far to the left which is not going to be very significant. So, there is a concept of dominant poles that if you have some poles close to the imaginary axis and some far away from the imaginary axis then the imaginary far away from imaginary axis poles can be ignored as far as the dynamics is concerned because they are much faster responding and the overall behavior of the robot is going to be dominantly determined by these. So, one can look at the dominant poles one can look at how k relates to the damping ratio. So, damping ratio it turns out has this T D coming in the numerator. So, it basically means that by choosing the velocity feedback one can increase the damping in the system. So, one if one increases the velocity gain then damping increases if one increases the proportional gain the damping decreases ok. Now, these are not the only things sometimes even PDE this proportional and derivative controller is not sufficient and this happens particularly when you have friction and gravity loads. Because the situation is like this if you look at the robot here is our joint that we are considering let us say this particular drive and you have a gravity load acting here that means there is a constantly there is a torque there. So, if this error was 0 supposing it was in the right position suppose the arm is in the right position gravity load is acting controller is going to say I am in the right position I do not need to put any control input. So, it will put 0 motor voltage then because of gravity the arm will continue to go down then there will be some error created then the controller will say ok now there is some error I am going to apply some torque to restore it and at some equilibrium point it will come and there will be error from what we want. So, there is going to be a steady state error in presence of friction and gravity because what happens is in the case of friction for example, you are moving your close to again the goal point where you want to be the desired position, but it is slightly off, but the error is so small that when the controller applies whatever gains you have chosen the control input to the motor to the amplifier then it does not generate enough torque to overcome that friction value ok. So, in both these cases similar type of phenomena takes place and you end up with a steady state error and if you simply try to increase the gain proportional gain to get rid of this steady state error because it turns out that the proportional gain reduces the error. So, error is something like 1 over k p. So, but if you keep on doing that then you can run into other problems because the system response will become more and more oscillatory and that will not be desirable because it will overshoot a lot. So, therefore, one may have to then require integral part of the control also. You had a question? It will also vary depending upon the type of the great position of the arm itself. That can happen. So, that how to incorporate that part like suppose the arm is perfectly downward. So, gravity load is there and creating no requirement of torque. Yes. But the friction is there. Right. When it increases with a load say the friction force also increases in a certain part part of the bearing. So, that is the friction load will not be constant because it is all contacting friction. The friction forces will not be constant. Yeah, that is correct. How do you take care of that? No, see that takes integral control that will get taken care of. So, let us look at integral control. So, in the integral control or in PID control which has integral action also you have another term here which is some gain divided by S which means integration. So, what it means is that whatever errors are there. So, like you are saying there is friction and the friction may be changing when is stationary the friction is larger because static coefficient of friction is higher. Therefore, when the robot is come to a halt in some position and it is off from the air you know desired position then there is some error small error. Now, what this integral control does is it keeps on integrating that small error over time. So, the control control input U keeps on increasing over time if the error remains. So, eventually this will become large enough that the motor will move when of course, you may not get a very good behavior because the motor will you know move and suddenly you will cross the desired position on the other side by a small amount then the friction will again will have to wait for the integral action to build up for this to correct itself. So, it may have a limit cycle behavior it may jitter hunting. So, those kind of phenomena is also come. So, obviously, you ideal thing is that you want to have no friction and you know all these kind of good drives. So, that is why in robots the transmissions are very very important. What kind of transmission you have backlash is how you can eliminate backlash. So, this is the name of the game in designing good robots is to have good transmissions. That is why people talk about direct drives you must have heard that some of the robots use direct drives. The adept robot that I showed you also uses direct drives. So, it eliminates the gearing and all that backlash problems, but for that you require bigger actuators and the way they solve the problem is because the robot base is big they get a large diameter torqueer. So, you get large torques and smaller velocities for which is what you want without any transmissions, but those are expensive motors. So, that is the trade off. Now, in real robots situation is not so rosy as we have been discussing now and for example, if you look at the inertia variation inertia varies a lot. This is for one of the robot arms, Stanford arm. Basie has done this analysis and experiments to find out how the how much variation in inertia takes place. And at the trunk motor or trunk drive the inertia varies 4.5 times the nominal or smallest inertia. This is without load and when it holds the whatever maximum load it is not even maximum he use some 1.8 kgs load in the robot gripper then suddenly it goes up to 7 times. So, that is not a small variation this is not some few percent 10 percent 20 percent type it is 7 times 700 percent variation in inertia is taking place. Similarly at shoulder 2 to 3 times elbow is not as bad it is 1 to 1.25 times then joint 4 and joint 5 again significant 1 to 2 times 2.5 times 6 joint which is just the rotation about the last axis it is not very much again. So, barring joint 3 and joint 6 all other joints are showing significant change in inertia and that we had assumed constant inertia. So, that is something that we should think about how it can be done and which means basically some kind of model based control is what is necessary. What is changing the inertia is the fact that you do not have a constant mechanical configuration right. So, if your arm is folded in like this then you rotating the trunk you have a small inertia. If you stretch it out then you have done this experiment in physics or at least seen in the books you have a turntable and somebody is standing with dumbbells you keep this like this the velocity is very high suddenly you raise it it slows down and speeds up ice skates. Yeah they can also do that they just bring their arms in and then suddenly they go into a spin. So, that is this inertia is changing significantly here that is why the same motor torque is leaning to different accelerations and. So, this is this is very significant thing in robotics. Then there are issues of implementation in terms of really speaking you are going to have some digital implementation of the controller. So, that is not such a big problem, but then one has to look at that the fact that there is a finite you know you have sample data system you deal with variables at discrete time intervals and not continuously. So, if your sampling is not fast enough then you run into some kind of problems fast enough of course means fast enough with respect to the time constants of the dynamics. So, mechanical time constants are of the order of you know 2 hertz 3 hertz 4 hertz. So, your sampling has to be correspondingly higher which is not such a difficult task if you are sampling at 100 hertz then you are probably quite alright. Now, the third thing is of course, the robot dynamics. So, as we say the inertia is changing. So, if you if you do not have a dynamic model of the robot then you will not be able to take care of that in the in the controller. So, let us just spend some time and go back to the analysis part and look at now and we did the position analysis in the last lecture where we need to do velocity and acceleration analysis which is in some way more involved. So, we will not do it in detail. So, if you look at this diagram here we have once again frame B which is moving with respect to frame A and there is some vector B Q which is shown here which is in relation to the frame B. So, if you want to take a derivative that means how this vector is changing over time. So, one can find the derivative D DT of B Q. Now, this derivative can be evaluated in frame B, but we would may be interested in seeing how the velocities appear in frame A. So, therefore, there is a further you know pre leading superscript that is used here. So, that means this is the case we are talking about pre superscript A pre superscript B V Q is simply the rotation matrix times that velocity in the local frame in the B frame. So, this type of relationship is necessary and of course, if the frame of observation was the same as the frame in which the derivative is evaluated then of course, one can drop off one of the leading superscripts. And the convention that is used is that if some quantity is referred to the base frame or the zeroth frame then it is it is simply all the pre superscripts are ignored they are not used and simply we use the small symbol V c or omega c. So, basically if you have the velocity relationship in moving frames then you can write the transformation like this. That means, I am interested in finding out the velocity of point Q which is defined in relation to frame B. So, therefore, I know this quantity here for example, this is been this can be evaluated from the derivative and I need to apply the rotation matrix I need to know how fast the frame itself is moving with relation to frame A and also how the frame B is rotating with respect to frame A. So, this is what brings in this term if the frame itself is rotating then it brings in this angular velocity of the frame cross the position of the vector of the point. So, it is quite a few new terms come into picture because of rotation of frames. Then what is done is one looks at each link like we have developed already the transformation for the links and we. So, what one does is you start from the base where the velocities are known they are 0 for frame 0 for example, go from 0 to 1, 1 to 2, 2 to 3 and each case you keep on finding what is the depending on the joint motion what is the velocity of a point on the link. So, relationships are for the revolute joint where this type that angular velocity as observed in the frame I plus 1. However, the derivative taken with respect to the zeroth frame of link I plus 1 is equal to then in relation to the previous joint previous angular velocity you have to apply the rotational rotation matrix to transform that and then theta this is the joint rotation this sorry this ampersand is nothing, but dot on top here. So, the rotation of joint I plus 1 times this distance sorry the unit vector in the z I plus 1 direction. So, this gives us the angular velocity and similarly linear velocities have linear velocity in the case of a revolute pair you know you are not having any change in the offset. So, it simply becomes the rotation matrix times the velocity of this the earlier joint times omega I times this vector from one joint to the other joint. So, how fast that is rotating that adds up to the velocity of the previous joint and that way one can find out we can propagate the velocity from one link to the next link. And for prismatic joints this part is simpler you do not have the two angular velocities are the same. So, you simply have the rotation matrix only coming here, but not the second term, but in the linear velocity term now we have the term of the change of the joint offset which is the joint variable again by convention that is always in the z direction. So, unit vector in the z direction and this is the way the velocity will propagate in the if the joint was prismatic joint ok. I do not know why my equations are not getting right this time, but anyway. So, we have this for accelerations also we define it similarly that v a dot if it is referred to the origin or the base frame then we can simply write it as a small character and similarly angular velocity in the same way. And one must remember that when one is taking a derivative of this type of a product then it means derivative of this term times a rotation matrix plus a angular velocity cross that position of velocity ok. So, this when you apply this to the velocity equation one can get the acceleration equations and this is we would know that you know basically you have the acceleration of the frame which is translating at some or accelerating at some rate. And then you have the acceleration of local acceleration transformed by the rotation matrix then you have the Coriolis acceleration type of term and then you have the again the angular velocity angular acceleration of the frame that comes into picture and then this is the centripetal type of acceleration. So, you have quite a few terms they are interpretable the way we generally know for acceleration. And some of the terms will vanish if the point of interest was fixed in the frame which is often the case suppose center of gravity center of mass of a link. So, that is with respect to the joint this is on the same link. So, it does not vary. So, in that case some of these terms like acceleration this term will vanish and then you get the standard equations that we are familiar with kinematics. And this is the angular velocity relationship. So, once again you have this type of relationships and one can apply then Newton Euler equations and for that you need to have the inertia which you know what the inertia tensor is. So, inertia tensor simply looks like this and then we apply Newton's equation which is MVDT and Euler's equation which relates the torque and the angular velocities. So, the C i is the inertia tensor in the center of mass frame. So, it relates inertia times t omega dt plus this should have been omega cross this term coming into picture. So, the procedure one applies in robotics is that you start out first of all you do position analysis. So, you know where everything is located all joints are located by the procedures that we saw last time by transformations basically and then you apply outward iterations which is given here. So, you look at velocities going from the base of the robot down to the first link to the second link to the third link and so on so forth one can compute using the formula that I have indicated already. And this means basically you have some rotation matrix which is evaluated at that particular instant and then you apply it your matrix multiplications of various types are required. So, number of calculations are there, but it is a procedure which can be simply you know you can write it in a computer program and you get angular velocities angular accelerations linear velocities linear accelerations. And then you can go next you can go the inward iteration in which you calculate out of the forces which means you apply the Newton Euler equations and you get the torques and the forces necessary for this motion to be achieved. So, this procedure will work close form dynamic equations are possible for simpler robots only. So, in terms of the general structure of the dynamic equations one can write it in this simple form which is a matrix form that the torque vector which is now torque of all the joints is mass matrix times acceleration vector which is got all the acceleration terms. And then you have terms which have functions of theta and theta dot. So, these include the various type of you know centripetal accelerations and Coriolis acceleration terms. And then you separate out that from the gravity term which only depends on theta. Gravity terms do not depend on any velocities they are only dependent on the position of the robot. So, various this thing is there or alternately one can write these equations in configuration space which means you separate out the coefficients which are only function of the position. And then multiplied by products of like for example, this term here theta theta dot in a square bracket means it is a vector having theta 1 dot theta 2 dot theta 2 dot theta 3 dot theta 1 dot theta 3 dot all these different products are included in that vector. And this vector has all the squares of the angular velocities. So, one can transform the equations in this way and this way has a little convenience in terms of computation because your m, b and c and g matrices can be evaluated after each time interval depending on the positions of the joints. So, once you have equations like this then one can apply a technique called computed torque technique which to illustrate this since my equations are looking so bad let us go to. Basically, the idea is that if you consider a mass. So, if I consider a mass which is translating in one dimension and I have some force that is being applied and then the relationship is f is equal to m x double dot. Now, supposing I simplify the problem further and say it is a unit mass then the relationship is simply f is equal to x double dot. Now, the question is how do I determine my f if I want to achieve a certain position. So, that f is can be given by some constant k p times x t minus x plus some constant times x dot. If I use it like this then what will happen it will simply if I substitute it there I will get a equation in x n it will be a equation which is going to lead to x is equal to 0 or x dot x t minus x x becoming equal to 0. So, this is going to do the job for me for a unit mass or if I have a trajectory that I want to follow then I can choose my f 2 look like x d double dot plus k v times x dot minus sorry x t dot minus x dot plus k p times x t minus x. So, if I use this then what will happen is that this f is equal to x double dot for unit mass and therefore, if I take this also on the left hand side what I get is x t double dot minus x double dot plus k v times x t dot minus x dot plus k p times x t minus x equals to 0 and this is some kind of error. So, this is e double dot plus k v e dot plus k p e equals to 0. Now, this is a simple second order equation and by choosing k p and k v we can make this error to go down to 0 in whatever fashion that we how fast we want it to go down and all that can be easily selected. So, the idea in computer talk technique is that you partition your control. So, your this is your control you say this is equal to some alpha times f prime plus beta and this is called control law partitioning. So, here there are two parts of the control. So, if I choose for my system which is f is equal to m x double dot, if I choose alpha is equal to m and beta in this case I can choose 0. So, what will happen is that as far as my control f prime is concerned it will look like that I am controlling a unit mass although the system has some mass because I am computing this and multiplying this to this factor here to the control then this f prime thing looks like it is controlling only a unit mass. Now, the beauty of this is that my equation is not like this my equation is much more complex in a robot. In a robot say you may have non-linear terms which is the case in the robots non-linear system dynamics. So, you have f is equal to some m x double dot plus say there are terms like k x cubed or some kind of friction term static friction let us say line function of x dot and so on so forth. So, I can have any kind of non-linearity existing in the system and then when I want to choose the control I say my f is two parts one is alpha times f prime and one is beta and what I do is simply that I choose alpha equals to m here and beta equals to k x cubed plus f s sin of x dot. Now, if I substitute this on the left hand side for f which is alpha f prime plus beta then you can see that what I am going to get is m times f prime plus k x cubed plus f s sin of x dot equals to m x double dot plus k x cubed plus f s sin of x dot and therefore, these terms will cancel out the non-linear terms cancel out and m and m can be cancelled and once again I end up with the equation life f prime which is the controller which is the controller for driving the system to the desired position simply looking like a unit inertia or unit mass. So, this is what the structure of that controller looks like you have the system and you are measuring the states and estimating the velocities or the derivatives and then you use these to compute whatever non-linearities you have in the system and you have a loop inside here and then this alpha is your m. So, that also gets selected and then as far as this part is concerned it is a simple controller which is controlling the unit mass and this part of the control is ensuring that your system looks like unit mass to the controller. So, it is a technique basically you can say it is feed forward control. You are knowing the system dynamics you use the equations of the system dynamics to compute and find out what should be the torque for to take care of the non-linearities and all the other things that you have in the system and then from there you control it in the way you like to. So, therefore, this can be applied to robots also of course, it is not as simple because what we have done is for we have done it for a joint. So, for a joint we have found out that this is the for a single joint this works fine, but when you have the mass matrix they it does not have only diagonal elements it has off diagonal elements also. So, therefore, you know that the different joints are coupled together. If you are moving one joint it will have a reaction torque coming on the other joint also and therefore, it comes as a disturbance. So, that becomes of course, difficult to handle what commercial robots with the better ones what they have done is they have tried to estimate the diagonal part of the mass matrix and compensate for that and assume that rest of the things if there is no coupling. Alternately some people have tried to develop robots which are inertia invariant. So, but that can be done only for some in a plane for example, you have a 5 bar type of mechanism which was developed in MIT where you could choose the masses you can balance the masses. So, that it becomes inertia invariant, but in general that cannot be done once you pick up some object then no longer remains inertia invariant, but it would not change as much. So, that is one way to do it, but otherwise people simply ignore the fact that inertia changes so much and develop the controller. At most they assume a diagonal mass matrix and develop the controller based on that using control of partitioning. And that seems to work ok. Of course, how much better things would be if the entire model was computable and compensatable that of course, one does not know it. So, if you have any questions then we can take some questions because this is the you know if you want me to elaborate on something else then we can go into that, but otherwise this will give you an idea about the fact that what kind of dynamics is there in the robots as well as how we can go about controlling the various joints. Because actually the stiffness term will come if you have a rotor which is being moved by a DC motor then there is no stiffness term coming except for the feedback. So, when you have a position feedback then that acts like a stiffness because it is proportional to the positional difference, but when you simply rotating it not against any spring outside then that term is not there. If you have shaft stiffness if you considering that then you know model becomes more complicated this is a simple model right now. Any other questions? Any other general thing about robotics if you would like to. So, we can break for T.