For the lower two FETs, this works out fine because the Source pin is tied to ground, and 5V, with respect to ground, is sent to the Gate, making the total difference 5V. So these two FETs then have no problem turning on. The real issue, however, arises with the upper two FETs. Initially, the bottom two FETs turn on fine, and the 0V from ground propagates through the motor and to the Source pin of the upper FETs. That way, when the top FET Gates receive a signal of 5V, they start to turn on. However, since the motor in the bridge wants as much of the voltage as it can manage, this means that the Source pin of the FETs is going to increase in voltage and apply that voltage across the motor. So eventually, the 5V difference between the Gate and Source pins will continue to get smaller and smaller.
THIS IS BAD!!!
When that happens the MOSFETs don't turn on all of the way, and the resistance will be far too high. With power equaling resistance * current squared, the power being dissipated by the MOSFETs will shoot up. Those suckers aren't made to take very much dissipation, and so they'll either melt or explode, like mine did, and release a ton of smoke!
To turn fully on, the MOSFETs need a high voltage, 5V, or whatever the recommended Gate voltage is, with respect to the source pin. Since I'll be running my motors at 6V, that means the source pin will be about 6V for the upper FETs, assuming I use the same MOSFETs, which is unlikely, and 6V + 5V means that I'll need 11V at the Gate to get a 5V differential.
Two types of circuits that would work for a high side driver are listed below.
The top image shows the Gate of the Power FET hooked up to a pull down resistor. Q1 is a regular transistor. If a current is not fed into the transistor from the microcontroller pin, then the Gate sees the 0V of ground through the resistor. However, when the MCU pin is set High, then the transistor turns on, and the current goes through the transistor, causing the 11V across the resistor, and charging the Gate of the FET, turning it on. Due to the pull down resistor, The motor would then be normally off.
The bottom image shows the Gate hooked up to a pull up resistor. When the transistor is off, the 11V would go through the resistor, charging the Gate. However, when the transistor is turned on, the Voltage would all be dissipated through the resistor, causing 0V after the resistor which would then drain the Gate and then turn off the FET. And so with the pull up resistor, the motor would normally be on.
These are my two options for the high side drivers of the H Bridge. Now, all I have to decide is whether or not I want my motors to be normally off or normally on, though odds are I'll want them normally off so that the robot stops by default and won't try and run away if it decides to break.