After deciding on what motors you are going to use for your robot you will need to decide on what type of speed controller you're going to use to control your motors.
Generally what a speed controller does is it will control the speed of your motor by changing the voltage level if the motor is a brushed DC motor or it will control the coils of wires in a brushless DC motor. They are also capable of telling the motor to go in reverse or to brake.
When choosing a speed controller you need consider a few things about what you would like them to do, and you need to look at your motor specs. The first thing I would do is I would look at the voltage and the amperage that my motor will draw and find a speed controllers that can handle those two things. If you pick a speed controller that can't handle the voltage or the amperage you will fry your speed controller when voltage goes through it from the battery, or when the motor calls for more amps. The specifications for you motors should list what its operating voltage is and what its peak amperage is. Peak amperage can sometimes be listed as stall amperage.
The next step to choosing a speed controller is choosing a speed controller that will go with brushed motor or a brushless motor. This decision will be made when you decide on what type of motor you are going to buy if you haven't already bought your motors. However, as far as cost you should realize on average brushless speed controllers are generally more expensive then brushed speed controllers, since they do have a smarter microprocessor.
The next and final step that you need to decide on is what do you want this speed controller to do? You have few options to think about. First, do you want your speed controller to have the capability to reverse your motor? Not all speed controllers come with this option, and there are cases such as rotating weapons where you may not want it to have the ability to reverse direction. Second, do you want your speed controller to have a brake? What I mean by this is it will make the motor act like a break even if the motor itself doesn't have braking capabilities. Finally, the last option is do you want this speed controller to control two motors, such as your drive motors? If you do then you may want to use brushed motors, since there are more options of speed controllers for brushed motors that have this capability then brushless motors. So far I've only seen one brushless speed controller that has this capability, and it is very expensive.
Below you can compare the prices of different speed controllers; brushless and brushed speed controllers.