Articles
Integrated servos
These servos are made in a variety of sizes by companies
such as Futaba, Hitec, GWS, and so on. Tonegawa Seiko
makes big meaty ones that are very well made from diecast
boxes and the output shaft is nicely made and supported
with bearings. Because of the availability of these integrated
servos I think it is a misuse of time to build your own
servos unless the specification of these servos is unsatisfactory
for your purpose. There are so many problems to be solved
in building a robot that building your own servo is like
building your own microcomputer from digital logic which
is, arguably, a retrograde step.
Integrated servos are far from perfect but they do
a really good job of getting a robot built. What's great
about them is that they produce rotational displacement
of an output shaft with only 3 wires as input. One wire
is ground, the second wire is power (5volts to 8volts
but don't push it too much) and the third wire is signal
which controls the angle of the shaft. It's a closed
loop device which means the servo will give you the
shaft angle that you ask for on the signal wire. This
is done by a sensor (a potentiometer) which measures
the shaft angle (the output angle) and compares it against
the angle that you have asked for (the demand angle).
The difference between demand angle and the output angle
is called the "error". The error causes current
to be fed into a dc motor which corrects the output
angle via a gearbox to equal the input angle. The servo
will automatically decide which way to drive the motor
(CW or CCW) in order to correct the output angle.
The servo output shaft can only rotate through 180degrees
(and sometimes less) because of the endstops. As a consequence
it is best to operate the servo through 90degrees to
be safe. A pulse width of 0.5msecs on most of the servo
brands will give let's say 0degrees position and 2.5msecs
will give 180degrees position. Other positions are pro-rata
so for example 1.5msecs will give 90degrees position.
You can burn out a servo if you ask it to go to a position
that it can't reach. For example 0.5msecs and 2.5msecs
in most cases will hit an endstop and you can hear the
servo buzzing as it tries to serve its master (ie you!)
and can't get there so it turns up the current to try
and break through the endstop and after some time will
burn out the electronic drive. You can also burn out
the servo if you send pulses to it too regularly. For
example the standard rate is every 20msecs but if you
decrease the periodic time to approximately 7msecs then
the electronic circuitry can't read it fast enough and
the current goes into saturation and the servo will
eventually burn out. Conversely, if you send pulses
too infrequently the stiffness of the servo decreases.
The stiffness means that if you get hold of the shaft
and try to turn it away from its position then it will
fight against you to restore the position to its rightful
place. The higher is the stiffness then the higher is
the restoring torque for a given displacement away from
its rightful place.So if you increase the periodic time
much above 25msecs then the stiffness will reduce eventually
to zero as the periodic time increases still further.
So to be sure don't use a periodic time above 25msecs
or below 10msecs.
The not so good side of integrated servos is that it's
only a proportional servo. Servos are usually described
with 3 terms. These are P, I and D which are:-
P=Proportional which gives you that stiffness we already
talked about but at the expense of an error from the
rightful position
I= Integral which gives you your rightful position
eventually after some time when you apply a torque
D=Derivative which means you can bolt on different
masses to the shaft and not get oscillations when you
ask the servo to move.
Integrated servos don't have the I term or the D term.
They only have the P term which is fixed and cannot
be changed.
Not having the D term means that if you ask the shaft
to drive a high mass then it will oscillate before coming
to rest when you ask the servo to move. This would be
irritating and the robot would give poor performance.
You can overcome this by:- (i) building your own servo
(which I avoid) or (ii) by making the robot as light
as possible or (iii) by using gears or linkages that
make the leg (or whatever) move through a small an angle
as possible and the servo shaft through as large an
angle as possible (which will slow down the robot speed
but most advantages have a disadvantage) or (iv) unscrew
the servo and solder a wire on the feedback pot wiper
and then measure this voltage and differentiate it and
use this number to increase the damping (not advisable
for non control experts) or (v) increase the friction
in the moving parts ideally with a dashpot or otherwise
with friction. A dashpot is a component that gives a
resistance proportional to speed like two plates with
oil (like treacle) between them. If you increase frictrion
(the kind between your feet and the floor) then the
integrated servo will always not go to the angle you
ask for so a dashpot is better but expensive and difficult
to make.
Not having the I term is not so much of a disadvantage
as not having the D term. The I term will eventually
reduce your error to zero if you apply a steady torque
to the output shaft (so long as it is less than the
maximum rated torque).
Another disadvantage with integrated servos is their
lack of rotational displacement (180degrees max). This
is not too much of a disadvantage especially when you
consider that Nature in about 99.99% of its creations
doesn't possess more than 180 degrees rotation for any
limbs. Nature seems to make do quite well with reciprocating
motion. (The 0.01% I'm talking about concerns a tiny
organism that has a constantly rotating tail. Can't
remember it's name or use.) Anyway if you use two servos
you can get constantly rotating motion and with the
bonus of controlling both the position of the wheel
and its velocity. You can see this in the tricycle robot
shown elsewhere in this website.
Push-rod tricycle
The velocity of the servo shaft can be controlled over
the limited range of its rotation by giving it a series
of different positions with respect to time. There will
be an error but this error will be small if you don't
ask it to travel too fast. I plan to characterise some
servos in due time to determine objectively their performance.
It's a pity that the manufacturers don't do this for
their customers. As far as I know the only published
performance data are such things as no-load torque and
maximum slew speed. It would be nice to know such things
as
(i) shaft angle Bode plots for different attached polar
moment of inertias
(ii) shaft angle responses to step inputs for different
polar moment of inertias
(iii) same as (i) and (ii) but for current instead
of shaft angle
(iv) the static stiffness
All these with different applied voltages and different
pulse repetition frequencies
As regards accuracy and resolution this also needs
investigation. The best I can say is that using the
BS2SX which gives a pulse resolution of 0.8usecs that
you can still see the shaft move which implies a shaft
angular resolution of better than 0.072 of a degree
or to put it another way 1/5000 of a revolution. I've
done accuracy tests by mounting a protractor on the
output shaft and find accuracy better than 0.5 degree
but this test needs to be improved. Quantities like
unidirectional and bidirectional repeatability also
need to be checked.
|