Advanced Joint Control Strategies
In the last lecture, we considered independent joint control, which is an idealisation of the real world. With independent joint control, the motor torque has got two components. It has a component due to the motor's inertia, and it has a component due to the motor's viscous friction. So, one is a function of the motor inertia and the motor's acceleration, the motor's viscous friction and the motor's angular velocity.
Now, we're going to consider the more realistic case of non-independent joint control and we've added the so-called rigid body dynamic terms here. What this means is the torque seen by the motor on joint J is going to be influenced by the acceleration of all of the joints, the velocity of all of the joints, and gravity. Now, I've introduced a bit of additional notation here. It's the subscript j and what that means is the jth row of the corresponding matrix. So, this is the jth row of the matrix M, jth row of the matrix C or the jth element of the vector G. For example, if I multiply the jth row of the matrix M by the column vector, which is the acceleration of all of the joints, the result will be a scalar. This is a scalar expression because it's about the torque acting on joint J.
You'll see that there are two terms here that involve joint acceleration. So, what I'm going to do is consider the vector Mj in two components. There is the component associated with joint J and there's the component associated with all of the other joints, which I've denoted by M bar. I can do a little bit of rearrangement now. What we have now is an expression for the torque acting on joint J in terms of the motor's own inertia and the component of the inertia matrix associated with this joint, the viscous friction, and then, we have all of the other terms at the end which are the disturbance torque.
This term here is the inertia of a motor which is driving joint J. This is a variable inertia term that we pull out off the manipulator inertia matrix. We have the motor joint friction, which is a function just of the motor driving the joint, and then we have this rather complex disturbance term on the end, which is the acceleration of all the other joints, the Coriolis and centripetal terms and the gravity term. I can simplify it even further and we now have a new inertia, I call that J prime, which is a function of the configuration of the robot. It's a function of Q. We have our viscous friction and we have tau D which is the disturbance torque lumped into a single variable.
So, what are the issues that arise from this? Well firstly, we have an issue because the inertia experienced by the joint varies with the configuration of the robot. In the last lecture, we tuned our controller so that it had a nice response in terms of settling time and overshoot, but the tuning was a function of the particular values of inertia and viscous friction. Now, what we're saying is that the inertia that the joint controller sees is a function of the configuration. It depends on all of the joint angles. So, that means that the response of the control system will depend on the robot's pose.
The other big issue is the disturbance torque, that's a torque that’s exerted on joint J due to motion of all the other joints, acceleration and velocity and also, due to gravity. This may lead to undesirable motion of the joint. It may lead to path following errors, for example. So, what can we do about these issues? Well, a really simple technique is really widely used in robots is to introduce a gearbox. Most robots have a reduction gearbox. So, the output shaft rotates a factor of G times slower than the input shaft. G is the gear ratio. The reason that this typically happens is that electric motors are capable of running very, very quickly, capable of very, very high rotational velocity, but generally quite low in torque. What a gearbox does is it allows us to trade off some of this high angular velocity for motor torque. Torque is actually more useful than speed. We can see here the relationship between torque and velocity on the output side of the gear box indicated by the subscript l. L meaning the load side and torque and velocity on the input side denoted by the subscript m.
If we now address the expression that we had from the previous slide and introduce the gearbox, we see the expression now looks something like this. We can see that the effect of this variable inertia, the inertia that's a function of Q, is now being reduced by a factor of G squared. If I considered the case where I've got a reduction gearbox, where G is equal to 50, this is a reduction by 2500. It's a very, very significant reduction in this configuration dependent inertia. It means that the motor’s own inertia, this term here, will dominate. The inertia will look more constant. We can also see that our disturbance term has been reduced by a factor of G. Again, if I have a reduction ratio of 50, this term here is 50 times less significant than it would be without a gearbox. So, a gearbox is useful for many reasons and it's a really effective way of reducing the effect of disturbance torques and configuration dependent inertia.
A more sophisticated technique to deal with this is to compute this disturbance torque. If we have a dynamic model of our robot and we know the position, velocity and acceleration of all of the links, then we can compute this disturbance term. So, the control that is shown here is effectively a P, D controller. This is the P term. This is the D term, and this is the feedforward term, with the feedforward, the disturbance that we can compute. Of course, this means that we need to know accurately the dynamic parameters of our robot arm.
The third approach that we can use is called computed-torque control. It has some similarities but also, some important differences to the feedforward control expression. Here, we can see a term which is effectively a proportional controller. Here, we can see a term which is effectively a derivative controller. They're multiplied by the inertia matrix and here, we have the centripetal and Coriolis term and the gravity term.
What are the pros and cons of these different techniques? A gearbox is cheap and straightforward. Often times, we use a gearbox in a robot anyway so that we can use a cheaper low torque motor. Gearboxes do add cost and they add weight. They do some inefficiency and they make noise. Computed-torque control has to be computed every single sample. So, if our robot controller is running, at say, a thousand Hertz, then the expression that we had on the previous slide needs to be computed at one thousand Hertz. That involves the computation of those matrices, the M, the C and the G matrix and some matrix multiplication. So a lot of computation needs to be done. Once upon a time, this was really, really hard to do. In the early days of robotics, when computers were really slow, it was a very hard thing. So, all sorts of approximations were introduced, but today it's very, very easy to do that at a frequency like one thousand Hertz.
The feedforward control can actually be computed at a slow rate, and that reflects the reality that the dynamic torques don't actually change all that much from one sample time to the next. So, the feedforward control signal can be computed at perhaps fifty Hertz or a hundred Hertz, while the main control is implemented at something like one thousand Hertz. They don't have to be computed at the same rate. For the computed-torque control and for the feedforward control, there is a significant challenge in knowing the actual values of the dynamic parameters of each of the links. For each link, there are ten dynamic parameters as we discussed earlier. So, for a six link industrial robot, that's sixty dynamic parameters need to be identified. You can do it experimentally or you can perhaps do it from a CAD model of the robot.
A number of strategies exist to reduce the effect of these coupling torques between the joints, from introducing a gearbox between the motor and the joint, to advanced feedforward strategies.
This content requires an understanding of undergraduate-level engineering; for example, dynamics, classical control theory - PID, poles, zeros, probability theory - random variables and Bayes’ rule.
This content requires an understanding of undergraduate-level mathematics; for example, linear algebra - matrices, vectors, complex numbers, vector calculus and MATLAB programming.
Hi professor, in the torque feedforward control part (at playback time 5:25), the input to the inverse arm dynamics is the desired qdd, desired qd and desired q. But the equation uses desired qdd, actual qd and actual q. Is there a mistake here? Thank you.
Thanks for pointing this out. This was an error in the first edition of the RVC book, fixed in the second edition. In practice, if the controller is working well then the joint coordinates and their derivatives will be close to their desired values.
Hello Prof. Peter Corke.
I have some questions regarding the Computed Torque Control Method:
1) In the slides, we have the desired torque T=M(Kp*e+Kd*e_d+e_dd)+Cq_d+G, but the term e_dd, the error in acceleration is a little odd with what I have found in other literature. It is not only the desired acceleration in its place, and not its error, since the acceleration is a feedfoward term?
2) In the inverse arm Dynamics, the states used in order to calculate M, C and G should be the desired or real states? In your book, secound edition, C and G are calculated using desired states, but when comparing to the real system the only way to get the error dynamics is if M, C and G are calculated using the real states in place of the desired ones. When comparing the resolution with one of the recommended additional books, Modern Robotics by Linch, the block diagram of Figure 11.18 suggest a substitution of real values.
I found that for controlling a 2 dof robot with gravity and no damping, the calculation of M, C and G using real values result in a controller that required smaller gains in Kd and Kp.
Thank you for your time and forgive me if any of my questions are too trivial.
It’s a great question and there are some inconsistencies in this section, and there is also errata for the book related to this topic. Firstly, the term (qdd* – qdd) should just be qdd. Secondly, the errata to the book makes the q and qd inputs to the inverse dynamics the actual rather than desired values. It could be argued that if the controller is doing a good job, then it doesn’t matter whether you use actual or desired values, but it will change the error dynamics.
Hello Prof. Corke,
I completely forgot to check the errata of the book. Thank you for your reply and for finding the time to share your knowledge.
Hello Professor Corke,
I am a bit confused about the consideration of reduction gear ratio G. When you talk about the load inertia or the variable inertia being reduced by a factor of G^2, I think this is the inertia seen by the motor before the gearbox (in addition to the inertia of its own rotor), then does that mean the torque and motor angle being calculated here are also before the gearbox, as opposed to after the gearbox (at robot joint level)?
Thank you very much.
I try to be very clear as to whether I am referring to load or motor reference when I describe these quantities, and in my book I use an l or m with a super-prefix. If you have a very specific question about this lesson please advise the time code and I can clarify.
Thanks for your reply. At time 4:30, I don’t understand how you go from the first equation to the second equation at the bottom when you add a gearbox The first equation refers to the case without gearbox, so the terms q, qd, qdd and tau are with respect to the motor reference frames, which are the same as individual joint reference frames because there is no gearbox.
In the second equation when the gearbox is added between the motor and link, are q ,qd, qdd and tau still with respect to the motor reference frame? It appears that they are, because in the equation the motor side sees the load inertia reduced by G^2. But if that’s the case, then does that mean the term q, qd, and qdd are describing the motor angles, instead of the actual robot joint angles (load side)?
Thanks again for your advice.
Correct. Here the focus is on joint control, so it’s all about the motor, feedback, and the disturbance torques that it experiences. If G approaches infinity we end up with just the motor’s own inertia and friction.