So I built three little bots so far.
One with a raspberry-pi, (6V motors), one with an arduino (12V motors), and another with an arduino but a hacked remote car (7ish, volt motors):

The problem I have with all these is that the motors spin so fast the car just bumps into something in a few seconds. (I have a small house)
I tried to use PWM to control the speed, but at a little less than full throttle (255) they jam up and they can't take the weight I put on them.
Should I buy one of these chassis that slow the motor down and give it torque with a gearbox, or is there anything else I can do?
(1)and got a 45 RPM motor+gearbox. Works decent so far. About point(3), I've heard about these encoders from the rover 5 platform, I understand it will help me scan how fast the motors are going? Forgive my ignorance but how will this really help? Is the speed control that is outputed by the arduino and the actual speed different? Also, what do you mean by closed loop ? – gideon Jul 03 '13 at 19:26