Home > Articles> 3 Significant Figures


 

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.