We can start by looking at a robot as a physical system. However, instead of looking at it all joined together, you can see how a typical hobby rover looks when totally disassembled in the following diagram:

A robot can also be visualized as a block diagram of connected parts. Block diagrams use simple shapes to show a rough idea of how things may be connected. Refer to the following diagram:

The preceding diagram is a block diagram. This is not a formal notation; the important factor is that you can clearly see the blocks of functionality you intend in the hardware, with the high-level flow of data between them. This can be a sketch on the back of a bit of scrap paper. The key I've created is off the top of my head, but it must be something that helps distinguish sensors, outputs, and...