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
seemed might 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 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 G2. 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 motors
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 computer 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.
Oftentimes, 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.
Computer 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 computer 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.