My MazeBot
The maze-bot on the test-maze
The differential drive mazebot has a ball-caster at the front and uses a tamiya twin gearbox with optical encoders on both motors. This makes it possible to determine the motor speed (and robot progress) with high accuracy. It did however turned out to be quite difficult to *control* the robot with this accuray. The robot can drive & follow the line quite well. To take the turns it is nescesarry to slow down significantly and take 'single steps' to prevent overshoot.

Tamiya twin gearbox with optical encoders
The robot learns the maze while searching for the target and uses a flooding algorithm to determine the fastet way to the target (when known, in the second and third run) or to the fastest reachable unknown cell. And 'fastest' not only takes the distance into account, but also the number of turns.
The flooding algorithm was developed and tested in perl, with a simulated maze. The algorithm requires one byte to store each crossing and one byte for flooding. To facilitate mazes up to 16*16, 512 bytes of memory is required. I selected the 18F452 for this. Links:
My Robots