I'll reply here to your PM so others can also read this.
Do all robots have to have a microcontroller? Because I am trying to make one without a microcontroller.
The info in http://www.societyofrobots.com/member_tutorials/node/62
is a great example of how to do a robot controller without a processor. The sensors are directly connected to the motor driver chip (look up the data sheet on the L293D driver to see what the inputs do, also there are a number of threads on this forum discussing this driver chip).
There are other examples of the web of robots without processors.
Here is one: https://www.solarbotics.com/products/k_hm/
and there is a document with the schematics. Solarbotics has a few other bots that don't use processors for control.
Beam also has non-processor robots: http://www.beam-online.com/navagation/_rob.htm
I am going to use some sort of program, to analyze the sensor signals and then send those signals to the motors.
To use a program you do need a processor for the program to run on. The bots I mentioned above use simple circuits to sense bumping into things and then switching the power to the motors to avoid the obstacle. When a processor is used the code running in the processor reads the condition of the processor's input pins (that have sensors connected) then runs another piece of code to set output pins that are connected to the motor driver chip.
You are saying that motor drivers can turn power on or off to motor terminals and a motor controller is for when you want to adjust speed?
Again look at a data sheet for a motor driver chip to see what the inputs to the driver chip do with the outputs to the motors. The example you linked to does use a motor driver chip and depending on the state (low or high) on the driver's inputs can set the motors to be both on and forward, one running forward and the other stopped or one running forward and the other in reverse or any other combination. This is the job of the motor driver, it translates a set of input conditions into voltage to the motor terminals.
The controller determines what the driver input conditions should be. In the linked example without a processor, the light sensors ( LDR in the schematic) are the controller. With a processor, it is what the code (program) determines what the motors should do and sets output pins on the processor that 'control' the motor driver.
The controller can also control the motor speed by very quickly turning the motors on and off (at several 100 times or more a second ).
A reason to use a motor driver is that processors and other electronic parts can not supply to high current (Amps) that a motor needs to run. The driver takes low current signals and 'drives' higher current to the motors. If one where to connect most motors directly to the output pins of a processor (or a small signal transistor) the processor will release smoke and cease to function.
Hope this helps and please just post additional questions here.