Motors

From HBRC WIki

Jump to: navigation, search

Many people start a new robot by choosing a set of motors. This is because the choice of motor and drive train depend directly on and help to define the capabilities of the rest of the system.

  • The motors torque determines the max weight of the robot and its hill climbing ability.
  • The motors max loaded RPM (along with torque, weight and wheel size) determines the maximum speed the robot will travel.
  • The motors voltage determines the battery voltage required.
  • The motors min, average, and stall currents (with desired run time) determine the size of battery you will need.
  • The motors type and stall current also determines the motor drive circuitry (H-bridges, servo control, stepper control, etc) and CPU power and interfaces required.
  • The motors drive axle/hub determine frame requirements for wheel mounting
  • The motors mounting size and position also determine frame requirements.
  • The motors speed (and thus robots speed) will determine the speed of the CPU required to control the motor.

Conversely, If you specify any of the above items, they will drive the motor selection.

Hopefully, the following motor topics will help shed some light on the motor selection process.


Contents

Motor Torque Requirements

by Chuck Rice - July 1996


Torque

Torque is the force applied to an object on an axle that causes the object to rotate about the axle.

In the case of robotics, it is generally used to indicate amount of force that a motor will produce to turn wheels or move levers.

Although maximum torque that a motor can produce is constant at a particular voltage, the force produced varies based on the leverage. Because of this, torque is normally specified in dual units: force and radius. In other words, the torque is a product of the force times the radius the force is applied over.

This gives us units such as foot-pounds and ounce-inches. In other words, if a shaft will produce a force of 12 ounces at 1 inch from the axle, then it would also produce 1 ounce of force at 12 inches from the axle. A motor such as this would be said to produce 12 ounce-inches of torque.


How do you discover or measure the torque of a motor?

The easiest way is to ask the manufacture. Sometimes when you buy a motor, the torque will be specified in the spec sheet for the motor. Unfortunately, often you do not get this information. In this case, you must measure it yourself. Fortunately, this is not too hard, and there are several ways to do it. If the motor has a pulley on it, you an just tie a string to it with a weight fob on the end. You must be able to add or subtract known amounts of weight from the fob.

You put the fob on the ground with a guess amount of weight in it, then start the motor. If, as the string winds on the pulley, it lifts the fob off of the floor, then you need to repeat with twice as much weight. If it fails to lift the fob, remove half the weight. Keep doing this, adding or subtracting half of the weight that you added or removed the previous time until you get to the point where the motor almost can lift the fob, but not quite. The weight at this point times the radius of the pulley is the stall torque of the motor.

A simple fob can be made from a water bottle. Just add or remove water till you hit the stall point. Then weigh the water bottle. Simpler and faster, if you have a spring scale, is to hook one end of the scale to an immovable object and tie the string to the other end. Then you only have to do the test once because at the stall point, you can read the weight right off the scale.


Stall Torque

The stall torque is the most force that the motor can produce at the given voltage. Past this point, either the motor will burn up due to too much current, or the voltage will drop because there is not enough current. The stall torque is at the point with the least amount of weight where the motor can no longer turn the axle.


So what does this mean to roboticists?

To choose a motor for a robot, you need to know how much force will be required to produce the required movement. (To be continued)


Determining Robot Speed

Drive Voltage and Current Requirements

R/C Servos 101

by Chuck McManis - May 11 1995

Servos 101

A servo is a motor that is attached to a position feedback device. Generally there is a circuit that allows the motor to be commanded to go to a specified "position". A very common use of servos is in Radio Controlled models. These R/C servos are sold at hobby stores and via mail order by places like Tower Hobbies for anywhere from $5 to $150.

R/C Servos come in standard "sizes" (so that they fit models well) and use similar control schemes. Unlike general purpose motors, R/C servos are constrained from full rotation. Instead they have a limited rotation of about 180 degrees or less. This is sometimes changed (see "Servo Modifications" below).

A typical R/C servo is the Futaba S148. This servo looks like a rectangular box with a motor shaft coming out of one end and a connector with three wires out of the other end. Attached to the motor shaft is usually (but not always) a "control horn". This is a plastic piece with holes in it for attaching push rods or other mechanical linkages to the servo. The three wires are V+, Control, and Ground. R/C servos typically run on 4.8v (four NiCd batteries) but they often work with voltages between 4 and 6 volts. The control line is used to position the servo. In an R/C model, this line it attached to the radio receiver, on robots it is usually attached to the processor.

R/C Servos are controlled by sending them a "pulse" of variable width. The parameters for this pulse are that it has a minimum width, a maximum width, and a repetition rate. These values are not "standard" but there are conventions that are generally accepted. The convention is that a pulse of approximately 1500 uS (1.5 mS) is the "neutral" point for the servo. Given the rotation constraints of the servo, neutral is defined to be the position where the servo has exactly the same amount of potential rotation in the counter clockwise direction as it does in the clockwise direction. It is important to note that different R/C servos will have different constraints on their rotation but they _all_ have a neutral position, and that position is always around 1500 uS.

These servos are "active" devices, meaning that when commanded to move they will actively hold their position. Thus, if a servo is commanded to the neutral position and an external force is present to push against the servo (presumably through the mechanical linkage) the servo will actively resist being moved out of that position. The maximum amount of force the servo can exert is the torque rating of the servo. The Futaba servo is rated around 40 oz/inches or 2.5 pounds of push at 1 inch away from from the shaft of the servo motor. Servos will not hold their position forever though, the position pulse must be repeated to instruct the servo to stay in position. The maximum amount of time that can pass before the servo will stop holding its position is the command repetition rate. Typical values for the command repetition rate are 20 - 30 mS. You can repeat the pulse more often than this, but not less often. When this timeout expires and there hasn't been another pulse the servo de-energizes the motor. In this state in can be pushed out of position and it will not return to the commanded position.

When the pulse sent to a servo is less than 1500 uS. the servo positions and holds its output shaft some number of degrees counterclockwise from the neutral point. When the pulse is wider than 1500 uS the opposite occurs. The minimal width and the maximum width of pulse that will command the servo to turn to a valid position are functions of each servo. Different brands, and even different servos of the same brand, will have different maximum and minimums. Generally the minimum pulse will be about 1000 uS wide and the maximum pulse will be 2000uS wide. However, these are just guidelines and should be checked on the servos you use. In particular if you attempt to command a servo past its maximum or minimum rotation it will use the maximum amount of current trying unsuccessfully to achieve that position.

Another parameter that varies from servo to servo is the slew rate. This is the time it takes for the servo to change from one position to another. The worst case slewing time is when the servo is holding at the minimum rotation and it is commanded to go to maximum rotation. This can take several seconds on very high torque servos. Typically it takes less than two seconds.


Servo Construction

Servos are constructed from three basic pieces, a motor, a feedback device, and a control board. In R/C servos the feedback device is typically a potentiometer (variable resistor). The motor, through a series of gears, turns the output shaft and the potentiometer simultaneously. The potentiometer is fed into the servo control circuit and when the control circuit detects that the position is correct, it stops the motor.

The typical R/C servo varies most in its internal mechanics from other servos and this is generally the difference between "good" and "lousy" servos. The servo mechanism subsystems are the motor, the gear train, the potentiometer, the electronics, and the output shaft bearing. The electronics are pretty much all the same and so not an issue. In the motor department however you can get smaller and larger motors which effect the overall size of the servo. "mini" servos are generally more expensive than "standard" servos in part for this reason.

The gears also vary from servo to servo. Inexpensive servos have plastic gears that will wear out after less than 100 hours of use. More expensive servos have metal gears which are much more durable.

The potentiometer is the feedback device and often the first thing to fail in my servos. If it gets dirty, or the contacts get oxidized, the servo will fail to work properly, sometimes by "jittering or hunting" since the feedback is inaccurate, or turning completely to one side and drawing lots of current since the servo doesn't know where its output shaft is pointing. More expensive servos have "sealed" potentiometers, cheaper ones do not. I've found I can extend the life a wee bit of my pots by using some judicious application of silicone sealant around the edge. You can do this with a syringe if your careful. Be sure and not to get it on the gears though as it will cause them to bind.

The last subsystem is the output shaft bearing. Cheap servos invariably have a plastic on plastic bearing that will not take much load. Medium priced servos generally have metal on metal bearings that stand up better under extended use and expensive servos have ball bearings which work best. Many places also sell "ball bearing upgrades" for cheap servos which consist of a new top cover and ball based bearing for the output shaft. Tower Hobbies sells three "standard" servos with the part numbers TS-51, TS-55, and TS-57 whose primary difference is the bearing. (I believe the '57 has metal gears as well as a ball bearings)


Servo Modifications

When used with robots, R/C servos can be employed as sensor pointers, leg lifters, steering wheel turners, etc. But without modification they can not be the main drive system. Since a servo is, at its heart, a DC gear motor with enough torque to move a small platform, servos are often modified to become drive motors.

Modifying a servo to be a drive motor can use one of two strategies, breaking the feedback loop, or lobotomy.

The most brutal way of modifying a servo is the full lobotomy. You open up a servo, remove the electronics, bringing out the power lines to the motor and remove the potentiometer or modify it so that it can rotate 360 degrees. What you are left with is a DC motor, a gear train, and an output shaft on which you can mount plastic pieces that can be used as wheel mounts. This gives you complete control of the mechanics, but you do have to have a motor driver circuit to drive the DC motor in the servo housing.

Breaking the feedback loop is generally the easier way to modify a servo since it takes advantage of the power switching circuit already present on the servo to turn the motor on and off. This modification involves removing/disabling the potentiometer and replacing it with a voltage divider that convinces the servo electronics that the servo is in the neutral position. (You can figure this out by using the old pot, turned to the neutral position and measuring the resistance.) Now to turn the motor clockwise you send the servo a pulse that is wider than 1500 uS and the motor turns (and never stops because there is no potentiometer to tell the servo circuit it has gone far enough). Or to turn the motor counter- clockwise you send it a pulse less than 1500 uS wide.

This latter technique is fine except that the motor driver circuit in the servo may not be able to handle driving the motor continuously. In normal operation, the motor would be driven for a moment and then idled when the servo reached its position. The intermittent nature of turning the motor on and off allows the servo to use a motor driver that is smaller than one that would be needed for 100% duty cycle operation. If this turns out to be the case, the motor electronics will eventually burn out and you'll end up with the full lobotomy case by default.

So there you have it, nearly everything you wanted to know about servos but were afraid to ask. :-)


Hacking a Servo

Hacking a servo


H-Bridges

Chuck McMannis has a really cool servo speed control based H-Bridge that can handle high-amp motors. There are two parts to it, the first shows the design for his


Stepper Motors

Stepper motors can be very useful in robotics construction, but they can also be very difficult to interface. The drive control requirements are quite complex and there are a number of different types of motors. Often when you get a surplus stepper motor, you get little info on what type of stepper motor it is. Fortunately, with a ohmmeter and a little testing you can generally discover what you have.

Once you know the type of stepper you have you still need to know how it should be driven. Douglas Jones at the University of Iowa provides a very good discussion of stepper motors at

http://www.cs.uiowa.edu/~jones/step/index.html


so we will not duplicate that information here.


Electrical noise from motors

by M.J. Malone - January, 1998

DC Motor Noise Suppression for Low Voltage Motors:

These methods work well on low voltage (less than 12 V) and low current motors (less than 3 A).

Connect capacitors leading from each motor terminal to the metal case of the motor. These capacitors help quench spikes right at the motor. IF these capacitors are put on a circuit board, even inches away, the leads from the motor to those capacitors become antenni that broadcasting EM interference. The capacitors must be non-polarized and have a high breakdown voltage like ceramic disk capacitors. Provided the motor drive circuit can produce high instantaneous currents, the rule is generally, the larger the capacitors, the better. Values in the nF range, up to 100nF and breakdown voltages of 300V are recommended.

Capacitors will absorb the energy stored in the inductive windings of the motor however in doing so, the voltage across them can go far above the motor drive voltage (hence the need for 300V breakdown). Another approach, which may be used in parallel with capacitors involves zener diodes. Two head to head zener diodes connected across the motor leads will clip voltage spikes coming from the motor. If the motor is running at 12V, 18V Zeners should be used. A higher substantially higher voltage is used because: Zeners ease into their conduction, it does not happen suddenly at their spec voltage. Depending on the motor drive circuit, the drive voltage may go over nominal for short periods or, for instance when NiCads are fully charged and first connected. Lastly, typically, other power elements of the drive circuit can handle 6V over voltages for short times or there are measures in the circuit to deal with them. Remember the point here is to reduce EM noise and clipping motor spikes at +/- 6V over nominal drive voltages is usually sufficient.

Motor noise can be seen in other circuits as a result of current surges down the motor lead wires. These surges produce magnetic fields around the lead wires and these fields can produce voltages in adjacent wiring as the fields are created and dissipate. The key here is to reduce the area enclosed by the leads on their way to the motor and back to the circuit. The leads of a motor should always run side by side, never splitting to go around other elements of the robot. Reducing the area reduces the expanse of the magnetic field not its intensity, which is related to amount of current flow. To reduce the effect of the magnetic field, always twist motor leads. As viewed from a distance, an untwisted motor lead appears to be one long north or south pole. A twisted motor lead appears from a distance to be a number of small north and south poles alternating down the twists of the wire. The field physics is not easy to compute but the intensity of the field at a distance is greatly reduced. Twists in the wires should be one full twist of the wire for every 6-10 wire-diameters down the length. If the wire is 2 mm in diameter, there should be a complete twist every 1-2cm down the length of the leads --- this is a pretty tight twist.

Place wires leading to circuits sensitive to noise well away from motor leads at all times. Where a wire is particularly sensitive to noise, it can be twisted in a pair with a ground wire to reduce EM pickup.

It should be noted that very high frequency circuits in the 10's of GHz will have problems with twisted wires and EM noise reduction by twisting may not be very effective.

When twisting the leads is not sufficient, shielding them may be necessary. Using strips of household or slightly heavier aluminum foil, wrap the twisted leads tightly using a 50% overlap. If your strips of foil are 1cm wide, make sure they overlap on each lay by 5mm. Make sure there is good electrical contact between one strip and the next. Make sure to ground the foil where ever possible but certainly at the end near the motor driver circuit.

Motors can cause noise on power supply lines when they draw surges of current. Any other circuitry attached to the same supply, particularly analog amplification or filtering circuits will couple that noise into their output signals. Using separate supplies works well to solve this problem. Where this is not practical, large capacitors (electrolytics for capacity plus tantalum dip in parallel for response speed) across the power supply lines will act as reservoirs to supply the surges. If only one pair of capacitors are used, they should be located at the motor driver circuit supply point. The vulnerable circuitry can be run at a lower voltage from the same supply using a voltage regulator. Voltage regulators tend to attenuate any variations in input voltage. Use capacitors on both sides of the voltage regulator as is suggested in their application notes. Lastly, an inductor filter can be used to smooth voltages. Place an inductor in the supply line leading toward the vulnerable circuitry and put a large electrolytic capacitor on both sides of the inductor --- in the hundreds of micro Farad if not larger.

- - - - - - - - - - - - - - - - - - - - - - - -
M.J. Malone, Assistant Professor
University of Toronto Institute for Aerospace Studies
UTIAS: rm183, 667-7942, reception: 667-7700, Fax: 667-7799
St.George: SF4003, 978-3130 *** E-mail is best ***
Electronic Mail: malone@aerospace.utoronto.ca
Snail mail: 4925 Dufferin St., Downsview Ontario, M3H 5T6
Personal tools