Take the 2-minute tour ×
Robotics Stack Exchange is a question and answer site for professional robotic engineers, hobbyists, researchers and students. It's 100% free, no registration required.

What are some good strategies to follow while designing power supply for electrical systems on mobile robots?

Such robots typically comprise of systems with

  • microprocessor, microcontroller, DSP, etc units and boards along with immediate peripherals
  • Motor control
  • Analog Sensors(proximity, audio, voltage, etc)
  • Digital Sensors (Vision, IMU, and other exotica)
  • Radio comm circuits (Wifi, Bluetooth, Zigbee, etc)
  • Other things more specific to the purpose of the robot being designed.

Are there unified approaches/architectural rules to designing power systems which can manage clean power supply to all these various units which may be distributed across boards, without issues of interference, common ground, etc? Furthermore, also including aspects of redundancy, failure management, and other such 'power management/monitoring' features?

well explained examples of some such existing power systems on robots would make for excellent answers.

share|improve this question

5 Answers 5

I don't know any "rules", but for complex bots, I create separate "power" unit. It basically consists of the battery, as well as some 7805s/7809s. The 78xx series takes a 12V input and gives an xx V output. Most ICs work well on 5V, and an Arduino needs 9V, so that's what I end up using (Note: the 5V/3V output pins on the Arduino are not really meant to be used much. They don't supply much power, so it's best to have a separate 5V line for your circuitry).

After this, I connect all components in parallel to their respective power pins. It is generally beneficial to power the motor with a separate source (common ground). The motor draws the most current, so the simple act of stopping/slowing a motor can send fluctuations throughout the circuit. If you don't want to do this, at least add bypass capacitors to the motor and the power inputs(Vcc/Gnd) of logic circuits (see here for more on how they work). These solve quite a few interference issues.

If you want to be a bit more sophisticated, you can add zener diodes to the power outputs. Never had to do this myself, but it's apparently a good way of "rationing out" power. There also are "constant current diodes" that you can use--though I've never even seen one of those.

For redundancy, the most you can do (for DC) is put two batteries in parallel and maybe send power to components by different physical routes. Take note of the "physical" there--the placement of the wires may be different (and they may attach do different parts of the board), but the overall circuit should remain unchanged. The reason behind doing this is that not doing this right may lead to power pins being shorted-- two logically separate 5V outputs shouldn't be shorted together, they won't be exactly the same and you'll probably have some heating/leakage.

share|improve this answer

These are the rules I follow when I am building power supply systems on my (small, mobile) robots:

  • I always separate the motors' power supply from any other circuitry, to reduce interference (as @Manishearth mentions).
  • For the rest of my electronic systems, I step down (using linear regulators) from a battery to each of the required voltages (usually 5V and 3.3V in my applications) in parallel.
  • I always include standard diodes as the first component after the battery's connection to any circuit boards, to protect against damage by reverse polarity. The voltage drop here should be taken into account when looking at regulator drop-outs.

Most of my robots have been fairly simple and have not merited much in the way of redundancy, but a common way to add basic redundancy in the case of one power supply failing is through a simple relay-based switch box. This can be configured such that the power supply powers the relay coil in parallel to passing through the Normally-Open contacts to the robot. A second backup supply can be wired to pass through the Normally-Closed contacts. If the first supply fails, the relay will toggle over to the second supply. Cleverer systems can monitor power supply health and manually switch between primary and backup sources as required.

share|improve this answer

Although it depends on the vehicle mission, these are also worth thinking about power-architecture (not implementation):

  1. If your robot has a payload (that is not used for moving or controlling the robot), try to have a separate power source for the payload.
  2. Isolate the motors, through a separate battery if required. So that even if the motors die, your camera or other systems would still be able to function.
  3. If you will send the robot out of eye sight make sure you have at least some beacon to later find it when the batteries die out. Today, I heard that an RC model got lost (power outage or some other fatal error). If it had a beacon, it could have been saved.
share|improve this answer

You asked for examples of existing robots. I once built a 6 wheeled rover robot with the following components: - 2 homemade paperclip touch sensors - 2 Arduino Unos - a 3.3V digital compass - a 5V radio transmitter - 6 Vex Motor Controller 29's - 6 DC motors, Stall current @ 2 amps, 6V

To avoid using complicated electrical stuff (no messing with capacitors or linear voltage regulators), we had 2 batteries, 1 for the "brain", 1 for the body.

The 6 DC motors were powered by a LIPO battery, 5000mAh 7.4V 20C 2cell. The Vex Motor Controller 29's have 3 wires, 1 for data, and Vcc and Ground. It basically converts the motor into a servo. So we had the data wires from the motor controllers go to the Arduino PWM ports (11, 10, 9, 6, 5, 3), and the Vcc's go to the positive terminal of the LIPO, and the negatives to the common ground.

The Arduino Unos, compass, and radio transmitter were powered by 4 AA batteries. The 4 AA batteries fed into the master Arduino, then distributed out to everything else via the 3.3V, 5V, and Vin ports (Arduino Uno has built in 3.3V and 5V linear regulators). So the 3.3V went to the compass, the 5V went to the radio beacon, the Vin went to the slave Arduino.

2 separate batteries is simple. There is no need to worry about back EMF from motors, no need for capacitors or adding voltage regulators.

share|improve this answer

Robotics is usually a business of various trade-offs, so there is no ultimate solution for power management, as every robot is different. For example, separate battery for motors mentioned by others sometimes may be a good solution, but sometimes cannot be used due to size/weight constraints. There are however some general tips there can be utilized in many designs:

  • Never use same power source for electronics and motors/servos. Even if your motors are 5V, use separate voltage regulator for electronics, and separate power for motors.
  • Do not use linear regulators for driving servos/motors. Use DC/DC converters instead. Motors can draw huge amounts of current. Linear regulators usually have poor efficiency, so much of a power will go to a waste in form of heat dissipated on a regulator.
  • Keep high-current circuits away from other electronics, especially from analog ones.
  • Consider using hardware or/and software filters if you want reliable and precise ADC readings.
  • Use capacitors! They are your biggest friends when it comes to fighting interference. As a rule of thumb, you can assume that each IC should have at least one 100n capacitor between each VCC and GND pins pair.
  • If you many boards distributed all around your robot, consider adding a separate voltage regulator for each board. It will cut out any interference acquired by power cables.
  • Check out dedicated power management ICs. They can be really clever, signalling power failures, protecting your circuits from reverse polarity, over and under voltage and many, many more.
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.