I recently build a simple robot that moves forwards. When plugged into the computer via USB, it powers fine and all is well. However, when I try to power it with a 9V battery, the motors wont turn on. Any ideas?
Does the board show any signs of life whatsoever? If nothing, that implies improper wiring or a bad connection. Could you have gotten the polarity of the connection to the barrel jack wrong (in which case the diode is saving your ass)? Positive should be center.
But as noted above, 9v smoke detector style batteries are not suitable for applications requiring much current - the internal resistance is sky high, and the capacity is low. They're not really useful for most arduino projects.
If you power the shield with 9V (from 6AAs) then you also need to power the Arduino. One way to do this is to add a jumper from the 9V input to the Vin pin on the shield, which then feeds the Arduino down at the bottom of the stack.
The shield doesn't have this connected by default as you may wish to use separate power supplies or the motor voltage is higher than the Arduinos maximum Vin.