Mobile Robots & Locomotion

differential drive

A differential drive is the simplest steerable wheel layout there is: two wheels, one on each side of the robot, each with its own motor, plus maybe a little free-spinning caster to keep the body from tipping. There is no steering wheel and nothing that turns left or right — the robot changes direction purely by driving its two wheels at different speeds. Spin both wheels forward at the same speed and it rolls straight; speed up the left wheel relative to the right and it curves toward the right; the bigger the speed difference, the tighter the turn.

The magic of this design is that the same two motors that move the robot also steer it, so it can do something a car cannot: spin in place. If you drive the left wheel forward and the right wheel backward at the same speed, the robot rotates around the point exactly between its two wheels without going anywhere — a perfect pirouette in a spot no bigger than itself. This is why almost every robot vacuum, hobby rover, and warehouse mover uses a differential drive: it is cheap, mechanically dead-simple, and turns on a dime in tight indoor spaces.

Working out where such a robot will end up is a tidy piece of math. From just two numbers — how fast the left wheel rim moves and how fast the right wheel rim moves — you can compute the robot's forward speed (the average of the two) and how fast it is turning (the difference between them, divided by the distance between the wheels). Add those up moment by moment and you can predict, or command, the robot's whole path across the floor; this bookkeeping of motion from wheel speeds is its kinematics.

A robot vacuum reaches a wall, briefly spins its two wheels in opposite directions to pivot in place until it faces a clear path, then drives both wheels forward again to head off down the new direction.

Two motors do double duty: moving and steering.

Despite being able to spin in place, a differential-drive robot still cannot slide directly sideways — that is a nonholonomic limit it shares with cars.

Also called
differential steeringdiff drive差动转向