My new rover is supposed to be simpler than the first one and something that irked me with the first design was the motor controllers. They worked, but they are ridiculously complicated. So I bought a Sparkfun Monster Moto Controller and hooked it up - much simpler. The only hassles with it is that if you would plug another board on top of it, then it could short to the tops of the capacitors and the VIN connector could short to the Arduino ICS pins underneath it. I stuck a rectangle of clear plastic cut from some screws packaging between the boards and snipped the ICS pins off - done. Serial Control Controlling a DC motor is straight forward, using two pins to switch the H bridge direction (INA1, INB1) and one for speed PWM (PWM1). There is also a current sense input (CS1) that you can set to turn the motors off if they get stuck and the current increases too much. You'll have to set the sense level with trial and terror. Here is an example for a...
Autonomous planes, trains and cranes...