Q:

DC motor characteristics and control

I don't have a lot of experience into detailed / calculated selection of DC motors based on their specs. Now, I'm starting to do it for robotics competitions as I'm progressing to more serious ones. My questions are:

I know that when you increase the voltage, the speed(RPM) of the dc motor increases, but is it proportional(Linear) ?
Does the stall torque also increase when you increase the voltage across the motor? (not above its rated limit, but above the voltage at which the specs are given)
When you use a motor driver, will it draw the stall current from the battery when the motor is stalled? As the Li-ion I'm planning to use can't deliver so much current...
How do you select a motor driver? (other than based on the stall current it can handle)
Generally spur gear DC motors don't have encoder on them and the ones that do are very costly. So how do you attach a rotary encoder to the motor/wheels? (any ideas)

Thank you for your time and patience.

A:

I assume " DC motor" means a motor with brushes and a commutator, not a brushless dc (BLDC) motor.

Speed at a given load torque is quite linearly proportional to voltage.
Stall torque increases linearly with voltage up to the maximum safe current.
The motor controller will draw as much current from the battery as the motor attempts to draw up to the limit set for the controller. Setting that appropriately is essential. 
The controller continuous current capability must be equal or greater than the continuous current at which you want the motor or battery to experience. The short-time current and time limit that is also appropriate for the motor and battery. The voltage that the controller can provide at the maximum current ratings must also be adequate for the motor. The controller may need some braking capability. The start/stop and speed inputs must be suitable for your use. The adjustments must be appropriate for the motor, battery, and desired performance.
Consider if you really need an encoder. If you need it, keep looking for a motor that you can afford or look for a motor that has an accessible shaft extension on the opposite end from the gear.

Any controller worth buying should have an adjustable current limit function that limits the maximum current that the controller allows the motor to draw and thus also limits the maximum current that will be drawn from the battery. The current limit function must be an active regulating function that limits the current without shutting off the motor completely. To provide sufficiently fast and firm control, it probably needs to be a closed-loop current regulator with an inner current loop and an outer voltage or speed control loop as shown below. The current limit adjustment overrides the current command and allows only the maximum set current to be drawn by the motor regardless of the resulting speed. 
It would be possible to eliminate the speed adjustment and just manually increase and decrease the current setting based on observing the performance of the motor. That is basically how an accelerator pedal controls a car. The operator increases or decreases the pressure on the accelerator based on observing the speed of the car.

