The shared idea: electricity plus magnets makes a shaft turn
Almost every robot needs an actuator — a part that turns a command into physical motion. The electric motor is the most common one, and beneath all their differences, the four families in this guide rely on the same trick. Two magnets that are not lined up pull and twist on each other until they snap into alignment, the way a compass needle swings around to point north. A motor cheats by constantly moving the magnetic field so the moving part can never quite catch up. The part chasing the field is the rotor (the bit that spins); the part holding still around it is the stator.
You create a moving magnetic field by running current through coils of wire — a current-carrying coil becomes a temporary magnet. Switch which coils are powered, in the right order, and the field rotates around the circle. The rotor keeps chasing it, and you get continuous spin. The whole design problem of motors comes down to this: who decides which coil to power next, and how do they know the right moment?
Brushed DC and brushless DC: the workhorses
The simplest answer to "who switches the coils?" is a clever piece of mechanical wiring. A brushed DC motor puts the coils on the spinning rotor and lets two sliding contacts — the brushes — feed current to them through a segmented ring called the commutator. As the rotor turns, the ring automatically swaps which coil gets current, so the field keeps chasing on its own. Wire it to a battery and it just spins. That simplicity is why brushed DC motors are cheap, easy to drive, and everywhere — toys, drills, small robot wheels.
The catch is the brushes themselves. They rub, so they wear out, throw off sparks, and waste energy as friction and heat. The brushless DC motor (BLDC) fixes this by turning the design inside out: the coils sit still on the stator and the magnets ride on the rotor, so nothing needs to slide. With no brushes to do the switching, an electronic circuit does it instead, reading the rotor's position and energizing each coil at the right instant. That circuit is the motor driver (in drones, an electronic speed controller, or ESC). You trade a bit of complexity for a motor that runs quieter, lasts far longer, and packs more power into less weight.
Stepper motors: counting clicks for cheap precision
A stepper motor takes a different approach. Instead of spinning freely, it is built with many magnetic teeth so that the rotor naturally settles into a series of fixed resting positions — like a clock with detents. Each time the driver advances the coils by one notch, the rotor jumps exactly one step and holds there. A typical stepper has 200 steps per revolution, so one step is a crisp 1.8 degrees.
This gives you precise positioning without any position sensor at all. If you command 50 steps, you trust the rotor moved 50 steps, so you can place the shaft accurately just by counting commands. That makes a stepper an open-loop device: it acts on instructions without checking the result. The price is that if you push it too fast or load it too hard, it can silently skip steps — and because nothing is watching, the controller never finds out it fell behind.
That trade-off explains where steppers shine: 3D printers, CNC machines, camera rigs, and lab pumps — jobs with modest, predictable loads where you want repeatable positioning on a budget. They hold position firmly when stopped and need no feedback wiring, which keeps the whole system simple and cheap.
Servomotors: a motor that watches itself
A servomotor is not a fifth kind of motor — it is one of the motors above (often a brushed DC or BLDC) wrapped in a feedback loop. Bolted to the shaft is a sensor, usually a rotary encoder, that reports the true position back to a small controller. You give the servo a target — "hold 90 degrees" — and it does the rest.
Here is the loop in plain terms. The controller compares where the shaft actually is against where you asked it to be; that gap is the error. If the shaft is short of the target, it drives the motor harder; if it has overshot, it pushes back. It repeats this thousands of times a second. This is closed-loop control — the opposite of the stepper's blind faith — and the most common recipe for it is PID control. If a load shoves the arm off target, the servo feels the growing error and fights to restore the commanded position.
loop forever (thousands of times per second):
actual = encoder.read_position()
error = target - actual
command = PID(error) # bigger error -> harder push
motor.apply(command)Because it constantly corrects, a servo can carry varying loads, recover from disturbances, and hit a target accurately even when conditions change — which is why the joints of industrial robot arms are servo-driven. The cost is more parts and more tuning than a bare motor. So the four families form a ladder of capability: brushed DC for cheap raw spin, BLDC for efficient power, stepper for cheap open-loop precision, and servo for closed-loop precision that holds its ground.