Intermittent problem with battery -- pulling too much current or too much noise?

I stripped down and replaced the electronics on a model car. Now I've got a Raspberry Pi on the car, which communicates with a laptop computer via a Wi-Fi adapter to get steering and throttle signals. (There are no brakes.) The Pi then sends a signal to an Arduino Uno which drives two Hitec HS-325HB servos to steer the front wheels (one servo for each wheel) and controls a Pololu Dual VNH5019 motor driver shield that drives the rear wheels.

I have two batteries on board. One battery is a 9.6 Volt nickel metal hydride battery that drives the rear wheels, through the motor drive shield. The other is a Duracell Powermat GoPower Longhaul backup battery, which is a 5 Volt, 8800 mAh lithium ion battery that says it can put out 2.1 Amps over 2 USB ports. I use the Duracell battery to power the Raspberry Pi through one USB port and the two servos through the other USB port. The Pi then powers the Arduino Uno and the Wi-Fi adapter through the Pi's USB port.

The problem is that the Raspberry Pi will sometimes reset while I'm driving the car. It usually happens after two or three minutes. The car will stop working, and it looks like the Pi reboots itself. (It's hard to tell exactly what the Pi is doing, since I am monitoring it on the laptop using Window's Remote Desktop Connection and the Wi-Fi connection simply goes dead.)

To see what causes the problem, I added a third battery. That battery, also a lithium ion 5V battery with a USB port, powers just the servo motors. So the servo motors are now powered by a separate battery from the Raspberry Pi. That seems to solve the problem. I can now run the car for many minutes with no problem.

To me, that indicates that the problem is one of two things: I'm pulling too much current from the battery so the Raspberry Pi resets, or I'm getting too much noise on the line so the Pi resets. If it is one of those problems, I wonder which one. I'm not sure how to tell.

As far as current drain, the servo specs say that the current drain at 4.8V is 7.4mA/idle and 160mA no load operating. With the two of them, that's maybe 500 mA max. The Raspberry Pi pulls less than 700 mA. The Wi-Fi adapter is a TP-LINK TL-WN823N 300Mbps Wireless Mini USB Adapter that seems to pull less than 100 mA. I think the Arduino Uno also pulls less than 100 mA. So I would think the current draw should be well below 2.1 Amps.

So the problem may be noise. I know that motors can make a power line very noisy, but could the line noise from two servos be enough to cause the Raspberry Pi to reset?

Any thoughts?

Thank you.

but could the line noise from two servos be enough to cause the Raspberry Pi to reset?

Yes very easily.
Have you got good decoupling on your supply?
http://www.thebox.myzen.co.uk/Tutorial/De-coupling.html

Grumpy_Mike:
Have you got good decoupling on your supply?

No, I had no decoupling on my supply. There are two USB ports on the battery. The line to the servos came out of one port while the line to the Raspberry Pi came out of the other. I'm not sure whether the two USB ports are decoupled inside the battery, but I added no decoupling.

To solve the problem without using an extra battery, I think I'll get a UBEC to power the servos off the 9.6 Volt traction battery.

You always need decoupling capacitors when ever you make a system especially one with motors.
Batteries also tend to be high impedance and so need them as well.