Software Architecture for Small Robots – Part 1
There is a lot happening in a robot’s “brain”: processing inputs coming in from various sensors at different rates, low-level outputs to control motors or other actuators, possibly combined with feedback loops. And there is the logic that actually decides what to do, keeping track of everything, maybe making simple plans and executing them. Sometimes it’s just a direct reaction to inputs (e.g. left motor power = some function of distance values), sometimes it’s much higher level, e.g. “now that we’ve visited the red corner, go back, start turning and look for something blue”. Even if you don’t worry too much about “architecture”, the question will come up eventually: how do you put all this together in software?