Given the wide range of actuators and electronics which go into a robot, choosing the right battery may not be an easy task. This article guides you through the thought processes involved in choosing one or more batteries for your robot.
Even if you are just starting in robotics, you may have already realized that the components you want to use don't all operate at the same voltage. If you look at a production robot, you start to wonder "how is everything working off just one battery?". There are two approaches taken, and we'll help you determine which is best for you.
Advantages
- Requires less design time
- Can be more efficient
Disadvantages
- Various parts of the robot will stop working at different times
- Multiple batteries to recharge
How do you know if you need multiple batteries? Check the nominal voltage of each of the products you selected:
- Electronics (microcontroller, motor controller power, etc) usually operate at 9V-12V. Some operate at low as 3.3V and 5V.
- Actuators (DC gear motors, stepper motors, servos, etc) usually operate at 6V to 12V. A few operate as low as 3V
- Sensors usually operate 5V
Based on the ranges above, it's easy to see how, when selecting optimal components for your project, the voltage range may differ for each type of component. Fortunately, most microcontrollers have a built-in voltage regulator which provides 5V to the I/O pins, so you don't need a dedicated 5V battery. Should you choose a normal microcontroller, it's likely that the voltage range is 9V to 12V. Operating a normal hobby servo motor (rated at 4.8V to 6V) from a 9V to 12V battery would quickly burn it. What to do? The easiest option would be to use a smaller 12V battery for the microcontroller, and a larger 6V battery for the servos.
Advantages
- One battery to charge
- Lighter weight
Disadvantages
- (May) require voltage regulator
- A bit more complex to understand and wire
Continuing the example above, where we chose a 12V microcontroller and 4.8V to 6V hobby servos, we have the option of using one (larger) 6V battery pack and a step-up voltage regulator. A voltage regulator does exactly as the name implies; it regulates the voltage. In our case, we would need one which can accept 6V input and step it up to 12V. Choosing a lower motor voltage does not automatically mean the list of motors available to you will be low power. However, a high-voltage motor (36V, 48V, 60V) tends to be reserved for large DC motors. The second approach is to first select the ideal motor and design your robot's electronics system around the indicated nominal voltage. Both approaches have their advantages and disadvantages and it is up to you to choose which you prefer. Voltage dividers allow you to power electromechanical devices at different voltages. Voltage dividers are purely electrical devices with no programming involved. If you do not want to use voltage dividers, most electronics operate at 5 to 9V, so choosing either 6 or 9V as your robot's supply voltage is the best choice (never assume an electronic device operates at 6 or 9V: you always need to read the supply voltage specifications for each electronic component). The other option is to use two different power supplies: one for the motors and another (smaller one) for the electronics. Should you wish to operate your robot at 9V, you can often still choose a 12V motor, though you must keep in mind the rpm will be less than that listed (estimated as a fraction of the nominal value) and the motor efficiency will be slightly reduced.
Standard battery voltages are:
- 1.2V: one rechargeable NiMh AA or AAA battery (unless you want a really small robot, one cell does not do much)
- 1.5V: one Alkaline AA or AAA battery(disadvantage of not being rechargeable and can't do much on its own)
- 2.4v: two rechargeable AA or AAA batteries; still can't do much on their own, even for small robots
- 3V: two alkaline AA or AAA batteries; most microcontrollers cannot operate at this voltage, let alone most actuators.
- 3.6V: three rechargeable NiMh AA or AAA batteries; this is usually the minimum voltage to run certain microcontrollers
- 3.7V: one LiPo battery cell; this is close enough to 3.6V and is the minimum to run certain microcontrollers
- 4.5V: three alkaline AA or AAA batteries... why even consider non-rechargeable in robotics?
- 4.8V: four AA or AAA together provide the minimum voltage to operate a standard hobby servo motor. These can be either as individual cells or as a single rechargeable battery pack.
- 6V: four AA or AAA alkaline batteries, five rechargeable NiMh cells, or one 6V rechargeable lead acid pack; this is the maximum (and ideal) voltage most hobby servos can handle. Many small DC gear motors and RC servo motors operate best at this voltage.
- 7.2V: six AA or AAA rechargeable NiMh batteries is perfect for 7.2V DC gear motors. These are usually in a battery pack rather than as individual cells and you will need a more specific NiMh battery pack charger.
- 7.4V: two LiPo cells can often power a microcontroller and works great for 7.2V DC gear motors. Unfortunately, it's too high for most hobby servo motors.
- 7.5V: five alkaline AA or AAA: almost never used because it's simply too many single-use batteries.
- 8.4V: 7x NiMh AA batteries (hard to find chargers for 7xAAA NiMh batteries). This is also not used much because it means charging 7 batteries at the same time.
- 9V: 6x Alkaline batteries, one 9V (NiMh or Alkaline) battery or one 9V lead acid battery: avoid using 6x alkaline for the sake of the environment. A 9V single-cell rectangular battery is often used to power the microcontroller in dual battery configurations. 9V lead acid batteries are a bit harder to find and although they are quite heavy, are fairly inexpensive and have high capacity.
- 9.6V: 7x NiMh cells, usually in a battery pack configuration. This is good for motors that operate at 9V, and also for microcontrollers (most can operate above 9V).
- 11.1V: three LiPo batteries produce almost 12V and are much lighter than 10x 1.2V cells or a 12V lead acid battery pack. You need a specific LiPo charger capable of charging 3-cell LiPo packs. Rather than 12V below, many DC motors and microcontrollers operate perfectly well on 11.1V LiPo battery packs.
- 12V: 10x 1.2V cells (always configured as one NiMh battery pack) or one 12V rechargeable lead acid battery pack. Many smaller DC gear motors and most microcontrollers work well at this voltage.
- Anything above 12V is usually reserved for very large robots. If you have a 14.4V LiPo or 18V NiMh pack from a cordless drill, keep in mind that finding motors that operate at these voltages is not easy.
Robots using servo motors (legged robots or robotic arms) tend to operate at 4.8V (4x AA NiMh cells) or 6V (5x NiMh AA cells). You can use a fairly inexpensive voltage regulator to power the microcontroller, increasing the voltage from 6V to 9V. Small to medium mobile robots often use a 6V, 9V, or 12V NiMh battery pack, the choice of which depends on the nominal voltage of the drive motors. If the robot includes one or more servo motors (for a pan/tilt for example), the microcontroller can usually provide enough current from a 5V digital pin. If your microcontroller operates at 9V and you want to use 6V motors, you might consider a two-battery solution. Medium-sized mobile robots tend to use one 12V battery; lead acid or a single NiMh battery pack (or an 11.1V LiPo battery if weight is an issue). Large robots use 12V or 24V from one or more lead acid battery packs.
- NiMh: This is by far the most common type of battery used in mobile robots. NiMh batteries are rechargeable and their value (price/capacity/weight) is hard to beat. There is almost no memory effect, meaning every charge should bring the battery up to full capacity.
- NiCd: These batteries are slowly disappearing because of their memory effect: if you don't discharge the battery properly and then recharge it to full capacity, you lose part of the capacity each time.
- Alkaline: These are the least expensive batteries in the short term, and provide a higher voltage than NiMh, but are not great for the environment, and you constantly need to buy replacements.
- Lead Acid: Still the cheapest option for high capacity, lead acid is usually reserved for medium-sized robots because of their incredibly high weight.
- LiPo: These are fast becoming the most popular type of battery because of their lightweight, high discharge rates, and relatively good capacity, except the voltages, which increase in increments of 3.7V, so you need to plan to use LiPo before selecting your electronics and actuators.
NiMh Batteries LiPo Batteries Single Cell Batteries
A battery's capacity determines roughly how long a battery will last at a specific voltage given a specific discharge rate. For example, if you choose a 12V, 2Ah (2000mAh) battery pack (regardless of chemistry), the battery should be able to run a 12V motor consuming 2A continuously for 1 hour. Alternatively, it can run a 12V motor consuming 1A for 2 hours, or a 12V motor consuming 0.5A for 4 hours. The rule of thumb is to divide the capacity (assuming you are running an actuator at the same voltage) by the actuator's current under normal load to get the time the motor will last.
Rather than going into the nuances of what considerations are important when charging batteries if you're reading this tutorial, it's simply best not to try to design your own charger or try to adapt a charger to work with different packs. Select a smart charger that clearly indicates that it is compatible with the chemistry, voltage, and configuration of your batteries.
Example 1
2x Drive Motors: 6V nominal, 1A each under normal load 1x 6V NiMh Battery Pack, 2200mAh (equivalent to 2.2Ah) Note that the battery was chosen based on the motor's nominal voltage. Should you instead operate 6V motors from a 7.2V battery, the calculations become more difficult (use the total watt-hours divided by the total watts per hour to get an idea). Therefore the 6V battery pack will last: 2.2Ah battery / (2 motors x 1A per motor) = 1.1 hours
Example 2
18 servos used for a hexapod robot which operates at 6V nominal and consumes 250mA under normal load* 1x 6V NiMh battery pack at 5Ah. First, we will assume that all motors are under load at all times (i.e. worst case scenario) and therefore all 18 will be consuming a total of 4.5A 5Ah battery / 4.5A = 1.1 hours Note again that the battery was chosen based on the motor's nominal voltage.
The continuous discharge rate of a battery is very important because if you choose a battery that cannot discharge at the required current, the robot will either not work properly or not work at all.
Example 1
You selected four 12V motors for your 4WD outdoor mobile robot. Each motor consumes 1A under normal load, and more in the case of a slope. You decide to choose a 12V, 2Ah NiMh battery pack, not caring about the continuous discharge rate. You discover that your robot stops when it encounters even the slightest obstacle or incline. Why? In this case, operating all four motors consumes ~4A while a NiMh pack can only discharge at about 1.2 times the capacity (1.2 x 2Ah = 2.4A). The current drawn from the motors is therefore higher than the battery can provide.
Example 2
You selected two 7.2V DC gear motors which consume 1.5A each under normal load, and up to 2A each under stressful situations. This means that the battery needs to be able to provide at least 3A normally and up to 4A safely. If you choose a NiMh pack it would need to be 4A / 1.2C = 3.3Ah. The alternative would be to choose a LiPo pack because they can often discharge at 5C or higher, meaning you would be able to get away with a 4A / 5C = 0.8Ah pack. Granted the capacity is low, and you may opt for a higher capacity pack. Burst Discharge Rate