Motor FAQs

Q: How do motors work?

A: Motors convert electrical energy into mechanical energy through the use of electro-magnetic fields, and rotating wire coils.  When a voltage is applied to a motor, the motor creates mechanical power, in the form of a rotational force (tourque) which causes rotation at the motor’s output shaft/gear.


Q:  Which motor is used to rotate the wheels of the robot?

Two CIM motors are used.  The motor specifications are summarized below:

  • Battery In: 12V
    This refers to the optimal voltage which should be applied to the input terminals
  • Free Speed: 5,330 rpm
    This is the maximum rotational speed the motor will run (rotate) at when it is under no load
  • Stall tourque: 2.4 N-m (21.33 in-lb)
    The amount of load placed on a motor that will cause it to stop moving
  • Stall Current: 131A
    The amount of current a motor will draw when it is stalled
  • Free Current: 2.7A
    The amount of current a motor will draw when it is under no load

For more information about stall current and free current, see http://robotics.stackexchange.com/questions/613/what-is-stall-current-and-free-current-of-motors


Q:What factors determine the actual rotational speed of the motor?
A: Two factors determine the rotational speed of the motor:

(1) the voltage at the input terminals.
The specifications provide recommended voltage for best efficiency of the motor.  For our motor, this is 12V.  Lower voltages will usually turn the motor (but provide less power).

(2) the torque (or load) applied to the output shaft

The formula for this type of power is P = 2 pi n T

Where T is torque or moment (N-m) and n is rotational speed (rev/s).


Q: What is the load on a motor?

A: The load on a motor is the force (torque) resisting the rotation of the output shaft.  Motors only apply torque in response to loading.  Ideally, with no loading on the output the motor will spin very, very fast with no torque. This never happens in real life, since there is always friction in the motor system acting as a load and requiring the motor to output torque to overcome it.  The higher the load placed on the motor output, the more the motor will “fight back” with an opposing torque.  However, since the motor outputs a fixed amount of power, the more torque the motor outputs, the slower its rotational speed. The more work one makes the motor do, the slower it spins.  If one keeps increasing the load on the motor,  eventually the load overcomes the motor and it stops spinning. This is called a STALL.


Q: What is the best way to accurately control (modulate) the speed of the motor?

Instead of applying a continuous voltage to the motor, periodically pulse the voltage on and off.  This is called a pulse-width modulated signal.  Thus, the width (i.e., length) of the pulse specifies the motor speed;  that is, as the width of the pulse is lengthened, the motor will rotate more quickly.   A device called a motor controller creates the pulse-width modulated signal.


Q: How do we prevent a motor from stalling?

A: Consider first a motor driving an elevator.  The torque on the driving sprocket spins the chain.  The chain is attached to the linear elevator, and exerts an upward force to drive the mechanism.   If the load on the elevator were to increase, or the elevator were to reach its maximum height, then the applied torque on the motor could exceed the stall torque, and the motor will stall.

As the torque on the motor increases, the motor will draw more current, and at some point, the motor’s maximum power may be reached.  To prevent damage to the motor, current limiting breakers may be used.  In this case, the motor will fail not when the stall torque is reached but rather when the maximum current is reached.

Another approach is to detect situations in which the elevator cannot move, and to turn off power.  This is the purpose of the limit switch at the top of the elevator.  The state of the switch can be detected either by the roboIO or by the motor controller, and the motor voltage removed.

Another approach is to ensure that a mechanical failure will occur before the motor stalls.  For example, in case of a problem with the elevator, the chain will tend to become twisted and fail, so that it will not transmit force, preventing the motor from stalling.


Q: If the robot chassis was unable to move, will the wheel motors stall?

A: No.  If the chassis was unable to move, the wheels tend to spin, so there would not be a sufficiently large torque to stall the motor.


Q: What determines how fast the robot can travel?

A: The speed of the robot is determined by the speed and size of the wheels.  Gears are used to transmit force from the motor to the wheels, and the gears allow us to adjust the motor’s rotational force (using mechanical advantage) so that the robot’s wheels turn with the speed that meet our requirements.


Q: How do you tell how far a drivetrain had traveled, or how many rotations a motor has made?

A: A simple strategy would be to calculate the distance traveled using the formula distance = time x speed, however this method is not reliable, because many factors can cause the speed to change.  For example, the weight of the robot might change, or the motor could slow down due to fluctuations in battery power.  Therefore, an accurate calculation of distance must incorporate feedback from the robot motor or wheels.

For this purpose, we use a device called an optical motor encoder which mounts to the nose of a CIM Motor and “counts” rotations of the output shaft.  Two output signals are provided, allowing the determination of speed and direction.  These output signals are connected to the roboRIO analog input ports, and are processed by quadrature decoder modules.  The roboRIO includes 8 quadrature decoder modules, which are implemented in the FRC FPGA.