
Open-loop driving
Why a plan is not enough
Teaching this? Open projector mode
Here is a tempting plan: to drive a square one metre on a side, command 'forward for 5 seconds, turn left for 1.5 seconds', four times. We worked out the formulas, so the robot should draw a perfect square. Run it on a real robot and the shape almost never closes. The robot ends up a few centimetres from where it started, or worse.
This kind of control is called open loop: the commands are worked out in advance and sent out, and nothing measures what actually happened. The opposite is closed loop, which uses feedback (the loop from the first lesson). Open loop is fine when the world is predictable. Robots rarely live in a predictable world.
Why 'the same command' gives different results.
- Wheel slip. On a smooth floor, dust or carpet, a wheel can spin without moving the robot by the full amount.
- Motors are not twins. Two motors given the same command usually run at slightly different speeds. A tiny speed difference means ω is not exactly zero, so the 'straight' path curves.
- Battery voltage drops as the charge falls, so the same command gives lower speeds later.
- Wheel size and track width are not exactly what the programmer typed in. A wheel that is 1 percent bigger covers 1 percent more distance per turn.
- Starting and stopping. A robot cannot change speed instantly; it speeds up and slows down over a short time that the plan ignored.
Every one of these is small. The trouble is that small errors add up (World 2 puts numbers on that).
Try a thought experiment. Suppose a heading error makes each 'turn left 90 degrees' come out as 88 degrees. After four corners the robot has turned 352 degrees, not 360, so the path does not close: it is 8 degrees short of facing its start direction, and the position error is added on top. A closed-loop robot would measure its heading with a sensor after each turn and keep turning until the sensor reads 90 degrees.
The fix is the theme of the next worlds. First the robot has to estimate where it is (World 2). Then a controller uses the difference between 'where I want to be' and 'where I think I am' to correct itself (World 3). Sensors for the outside world come in World 4.
What does 'open loop' mean?
Why does a robot driving a planned square usually fail to close it?
Which addition would reduce the error most directly?