Robo2u
All posts
robot-powerbatterieslithium-ionlifepo4bmspower-distributiondc-dcenergy-densityrobotics-hardwareguide

Robot Power Systems & Batteries: The Ultimate Guide

A deep, practical guide to robot power systems: Li-ion vs LiFePO4 vs LiPo chemistries, cell/pack configuration, BMS, sizing for peak actuator current, 24/48V bus architecture, DC-DC, regen, charging, and safety — with worked sizing math.

By Robo2u Editorial · 36 min read

Every robot is, underneath the kinematics and the perception stack, an energy-management problem. You have a finite tank of joules bolted to a moving frame, and a set of loads — actuators, compute, sensors — that drain it at a rate that swings by 20:1 between idle and a hard acceleration. The job of the power system is to deliver the peak when the peak is demanded, survive the average for hours, and never once let the bus sag below the brownout threshold of the thing controlling the motors. Most field failures of mobile robots are not algorithm failures. They are a connector that browned out, a pack that hit over-discharge cutoff mid-task, or a BMS that tripped on overcurrent during a stall.

This guide is about that system end to end: the chemistry in the cells, how cells become packs, the BMS that keeps the pack alive, how to size the pack from the load rather than from hope, the DC bus and its distribution, DC-DC conversion, regeneration, charging, and the safety envelope you cannot violate. We will keep numbers attached to units and opinions attached to reasons.

The take: the battery is not a component you bolt on at the end — it is a system that should be sized from the peak actuator current and the average power budget simultaneously, and most robots are under-specified on the first and over-specified on the second. Pick the chemistry for the duty cycle, not the spec sheet's headline Wh/kg; size the pack so voltage sag under peak load never browns out your logic rail; and treat the BMS, fusing, and precharge as primary design elements, not afterthoughts. Get the bus voltage and the peak-current path right and everything downstream is easy. Get them wrong and you will chase intermittent resets forever.

Companion reading: robot actuators, motor controllers & FOC, mobile robots (AMR/AGV), and real-time control systems.

Table of contents

  1. Key takeaways
  2. The power budget mindset
  3. Battery chemistries head-to-head
  4. Cells, packs & configuration
  5. Battery Management Systems (BMS)
  6. Sizing a battery from the load
  7. Power distribution architecture
  8. DC-DC conversion & regulation
  9. Regeneration & braking
  10. Charging
  11. Safety: thermal runaway, protection, transport
  12. Tethered & alternative power
  13. Selecting & integrating a power system
  14. Frequently asked questions

The power budget mindset

Before you pick a cell, write the power budget. Not the marketing version — the honest one, with two columns: average power and peak power, each in watts, for every load. These two numbers drive almost every downstream decision, and they pull in different directions.

Average power sets your energy. If your robot averages 150 W and you want 4 hours of runtime, you need 600 Wh of usable energy, which after derating for depth-of-discharge, aging, and converter losses means a nameplate pack closer to 800–900 Wh. Average power is dominated by whatever runs continuously: drive motors at cruise, compute, sensors, cooling.

Peak power sets everything about the current path. Peak power is dominated by transients: a drive motor accelerating, an arm joint lifting against gravity, a leg catching a fall. These transients are short — tens to hundreds of milliseconds — but they are brutal. A motor that pulls 5 A continuous can pull 40–50 A at stall, and your pack, BMS, fuse, and wiring all have to pass that without complaint.

The actuator is the load

In almost every robot, the actuators dominate both columns. A BLDC drive motor, a servo-grade joint, a harmonic-drive-geared arm axis — these are the things that turn electrons into motion, and they are the things that swing your current demand by an order of magnitude. Understand the load before you size the source. See the robot actuators guide for actuator types and the motor controllers & FOC guide for how a drive actually pulls current from the bus.

The key actuator fact for power design: torque is proportional to current, and a motor will pull whatever current it needs (up to its controller's limit) to make the commanded torque. At stall — zero speed, full torque — there is no back-EMF to limit current, so the only thing standing between the motor and a short circuit is the winding resistance and the controller's current limit. That is your peak.

Example peak draw for a single drive axis:
  Motor:        Kt = 0.05 N·m/A, R_phase = 0.08 Ω
  Bus:          48 V
  Stall current (controller-limited): 60 A per axis
  Two drive axes accelerating together: 120 A peak from the bus
  
  Continuous cruise (each axis ~4 A): 8 A total
  Peak/average ratio on the motor bus: 120 / 8 = 15:1

That 15:1 ratio is why you cannot size a robot's power system from average power alone. The pack might only need to store enough for 8 A of average draw, but it must deliver 120 A for half a second without sagging.

Duty cycle is the bridge

The thing that connects peak and average is duty cycle. A robot rarely sits at peak; it spends most of its time near average with brief excursions. RMS current — not average, not peak — is what determines pack heating: I_rms = sqrt(mean(I²)). A pack that spends 5% of its time at 120 A and the rest at 8 A has an RMS current of roughly sqrt(0.05·120² + 0.95·8²) ≈ 28 A, which is what you size cooling and continuous cell rating against.

Battery chemistries head-to-head

There is no universally best chemistry. There is a best chemistry for a duty cycle. The headline number everyone quotes — gravimetric energy density in Wh/kg — matters enormously for a flying or legged robot and barely at all for a 200 kg AGV where the battery is also useful ballast.

Here is the practical comparison. Numbers are typical commercial-cell figures as of 2026, not laboratory bests.

Chemistry Energy density (Wh/kg) Energy density (Wh/L) Nominal cell V Cycle life (80% DoD) Continuous C-rate Safety Relative cost ($/kWh) Usable temp (discharge)
Li-ion NMC (18650/21700) 200–270 550–730 3.6–3.7 500–1,500 1–10C Moderate (flammable electrolyte) 110–180 −20 to +60 °C
LiFePO4 (LFP) 90–160 220–350 3.2 2,000–6,000 1–5C (some 10C) High (no thermal runaway below ~270 °C) 90–150 −20 to +60 °C
LiPo (pouch, NMC/LCO) 150–250 300–550 3.7 200–500 10–100C+ Low (mechanically fragile, swells) 150–300 −10 to +60 °C
NiMH 60–120 140–300 1.2 500–1,000 1–5C High (aqueous, non-flammable) 250–400 −20 to +50 °C
Lead-acid (AGM) 30–50 60–110 2.0 200–500 0.2–1C (high peak) High (but H₂ venting, acid) 100–150 −20 to +50 °C

Li-ion NMC: the energy-density default

NMC (nickel-manganese-cobalt) is the chemistry behind almost every weight-critical robot. At 200–270 Wh/kg it stores more per kilogram than anything else you can buy in volume, which is why humanoids, quadrupeds, and long-endurance drones live on it. The cost is moderate cycle life (500–1,500 cycles to 80% capacity) and a flammable electrolyte that will sustain thermal runaway if abused.

Real cells: Molicel INR21700-P42A (4200 mAh, 45 A continuous), Samsung INR21700-50S (5000 mAh, 25 A), LG INR21700-M50LT (5000 mAh, high energy, lower current). The P42A has become the default high-power 21700 for robotics because it balances ~210 Wh/kg with a genuine 45 A continuous rating.

LiFePO4: the cycle-life and safety default

LFP trades roughly 40% of NMC's energy density for two things robotics fleets care about deeply: cycle life and safety. A good LFP cell does 3,000+ cycles to 80% and will not thermally run away under normal abuse — its olivine cathode is chemically stable and does not release oxygen the way NMC does. Its discharge curve is also famously flat (≈3.2 V across most of the SoC range), which is great for the bus and terrible for SoC estimation (more on that under BMS).

For an AMR or AGV that cycles once or twice a day for five years — that is 1,800–3,600 cycles — LFP is the obvious choice. NMC would be worn out; LFP is barely warmed up. Real cells: CATL / EVE / Lishen prismatic LFP (100–300 Ah prismatic cells dominate stationary and AGV packs), and cylindrical LFP in 32700 format for smaller robots.

LiPo pouch: the high-C-rate specialist

LiPo (a packaging format more than a distinct chemistry — usually NMC or LCO in a foil pouch) exists for one reason: extreme C-rate. A 10C–100C+ discharge means a small, light pack can dump enormous instantaneous current, which is exactly what a racing drone or a combat robot needs. The price is fragility: no rigid can to resist puncture, a tendency to swell when abused or aged, and a hard requirement for careful charging and storage. In a serious robot, LiPo shows up where power density (W/kg) matters more than energy density (Wh/kg) and where you accept a maintenance and safety burden.

NiMH and lead-acid: legacy and cost-floor

NiMH survives in low-cost consumer robots and where lithium's transport/safety overhead is unwanted. It is robust and non-flammable but heavy and self-discharges. Lead-acid persists only where weight is genuinely free (large AGVs as ballast, scrubbers) or where the cost floor and field-replaceability dominate. At 30–50 Wh/kg it is a non-starter for anything mobile and weight-sensitive, and its usable depth of discharge is shallow (50–60%) to preserve life.

Safety rule: Never mix chemistries, cell ages, or capacities within a series string. Cells in series must be matched — the weakest cell defines when the whole string hits cutoff, and an imbalanced string is exactly how you over-discharge or overcharge an individual cell into failure.

Cells, packs & configuration

A pack is cells wired in series (S) to set voltage and parallel (P) to set capacity and current. The shorthand is nSmP: a 13S4P pack is 13 cells in series, 4 such strings in parallel.

Series sets voltage, parallel sets capacity

Each series cell adds its nominal voltage. NMC at 3.6 V nominal: a 13S pack is 13 × 3.6 = 46.8 V nominal, with a 4.2 V/cell full charge giving 13 × 4.2 = 54.6 V and a 3.0 V/cell floor giving 13 × 3.0 = 39 V. This is the ubiquitous "48 V" robot/e-bike pack. LFP at 3.2 V nominal needs more cells for the same voltage: 16S LFP is 16 × 3.2 = 51.2 V nominal — the standard "48 V" LFP configuration.

Each parallel string adds capacity and current capability. Four 5,000 mAh cells in parallel give 20,000 mAh (20 Ah) and four times the current rating. Capacity in amp-hours (Ah) times pack voltage gives energy in watt-hours (Wh), the number that actually matters:

Energy:    Wh = V_nominal × Ah
Example:   13S4P of Samsung 50S (5.0 Ah, 3.6 V nominal)
           V_nominal = 13 × 3.6 = 46.8 V
           Capacity  = 4 × 5.0  = 20 Ah
           Energy    = 46.8 × 20 = 936 Wh
           Mass      = 52 cells × 0.0685 kg ≈ 3.56 kg (cells only)
           Density   = 936 / 3.56 ≈ 263 Wh/kg (cells only;
                       pack-level ~75–85% of this after BMS, busbars, case)

Cell formats: 18650 vs 21700 vs pouch

The two dominant cylindrical formats are 18650 (18 mm × 65 mm, 2.5–3.5 Ah, the legacy workhorse) and 21700 (21 mm × 70 mm, 4.0–5.0 Ah, the modern default). The 21700 packs more energy per cell and has better thermal mass and a higher current ceiling, which is why new designs default to it. Pouch cells trade the rigid can for packaging flexibility and the highest C-rates, at the cost of needing external mechanical support and swell management.

Format Typical capacity Typical max continuous current Mass Energy/cell Best for
18650 2.5–3.5 Ah 10–30 A ~45–48 g 9–12 Wh Legacy packs, compact robots
21700 4.0–5.0 Ah 25–45 A ~68–70 g 14–18 Wh Modern default, high-power mobile
Pouch (LiPo) 1–20 Ah 10C–100C varies varies Drones, combat, high-C transients
Prismatic LFP 50–300 Ah 1–5C 1–6 kg 160–960 Wh AGVs, stationary, large AMRs

Voltages you must track

Four voltages matter per cell, and confusing them is how packs die:

  • Nominal: the rated average (3.6–3.7 V NMC, 3.2 V LFP). Used for labeling and energy math.
  • Charge (max): 4.2 V/cell NMC, 3.65 V/cell LFP. Never exceed — overcharge is a runaway path.
  • Cutoff (min): 3.0 V/cell NMC (2.5 V absolute), 2.5 V/cell LFP. Going below damages the cell; deep over-discharge can plate copper and create internal shorts.
  • Storage: ~3.7–3.8 V/cell NMC (≈50–60% SoC) for minimum calendar aging.

C-rate

C-rate normalizes current to capacity. 1C is the current that discharges the pack in one hour: for a 20 Ah pack, 1C = 20 A. A "2C continuous, 5C peak" cell in a 20 Ah pack can sustain 40 A and burst to 100 A. C-rate is how you translate a cell datasheet into whether your pack can deliver your peak current — and it is the single most common sizing mistake, because designers size for energy (Wh) and forget to check that the same pack can deliver the peak amps.

Battery Management Systems (BMS)

A multi-cell lithium pack without a BMS is not a product; it is an incident report waiting to be filed. The BMS is the embedded system that monitors every series cell, enforces the safe operating envelope, and (on good ones) reports state over a bus.

Cell balancing

Series cells drift. Manufacturing tolerance, temperature gradients across the pack, and differing self-discharge mean that after a few cycles the cells are at slightly different SoC. Because the weakest cell hits cutoff first on discharge and the strongest hits full first on charge, an unbalanced pack loses usable capacity and risks driving individual cells outside their limits. Balancing fixes this:

  • Passive balancing bleeds charge off the highest cells through a resistor during charge. Cheap, simple, wasteful (the energy becomes heat), and slow (typically 50–200 mA of balance current). Fine for most robots.
  • Active balancing shuttles charge from high cells to low cells (capacitor or inductor based). Efficient and faster, more expensive, found in high-end and large packs. Worth it on big LFP packs where passive balancing would take days.

Protection: the non-negotiables

Every BMS must enforce, in hardware where it counts:

  • Overvoltage (OV) per cell — stops charge when any cell hits the ceiling.
  • Undervoltage (UV) per cell — disconnects load before any cell drops below the floor.
  • Overcurrent (OC) charge and discharge — trips on sustained over-limit current.
  • Short-circuit — a fast (microsecond-to-millisecond) hardware trip independent of the slower OC.
  • Over/under-temperature — disables charge below 0 °C (charging a cold lithium cell plates lithium metal — a runaway path) and disables everything above the cell's limit.

Safety rule: Charging lithium cells below 0 °C causes lithium plating and permanent damage with an internal-short risk. A BMS must block sub-freezing charge, or the pack must be heated before charging. This is a hard rule, not a guideline.

SoC and SoH estimation

  • State of Charge (SoC) — how full, 0–100%. The simplest method is coulomb counting (integrate current in/out), which drifts and needs periodic recalibration at the voltage endpoints. Better BMSs fuse coulomb counting with a voltage/OCV model and, increasingly, a Kalman filter. LFP's flat discharge curve makes voltage-based SoC nearly useless in the 20–80% band — there is barely 0.1 V of slope across 60% of capacity — so coulomb counting carries the load for LFP, which is its real practical drawback.
  • State of Health (SoH) — capacity and internal-resistance degradation versus new. Tracked over many cycles; it tells you when a fleet pack is due for retirement (typically at 70–80% of original capacity).

Communication

A "dumb" BMS just protects and disconnects. A "smart" BMS reports cell voltages, temperatures, current, SoC/SoH, and fault state over a bus, and accepts charge/discharge enable commands. The common interfaces:

  • CAN bus — the robotics and automotive standard, deterministic, robust, integrates cleanly with motor controllers and the vehicle controller. Orion BMS 2 / Jr and Daly smart BMS with CAN are common.
  • SMBus — the laptop/portable heritage, found in smart-battery packs.
  • RS-485 / UART / Bluetooth — common on budget BMSs (Daly, JBD/JK) for configuration and telemetry.

For a robot that needs to fold pack state into its health monitoring and behave deterministically, a CAN BMS (Orion-class, or an automotive-derived unit) is worth the premium. For a tool or a simple AMR, a Daly/JBD smart BMS over UART/Bluetooth is fine. The BMS interacts with your control system, so its reporting latency and failure behavior matter — see real-time control systems for why a BMS that drops off the bus or trips silently can wreck a control loop.

Sizing a battery from the load

Now the worked method. You size from two independent constraints — energy for runtime, current for peak — and the pack must satisfy both. Then you check voltage sag, then you account for the weight spiral.

Step 1 — Energy for runtime

Start from average power and target runtime:

Required usable energy:
  E_usable = P_avg × t_runtime
  Example:  P_avg = 150 W, t_runtime = 4 h
  E_usable = 150 × 4 = 600 Wh

Derate to nameplate (don't use the whole pack):
  - Depth of discharge limit (preserve life):   use 80% → ÷ 0.80
  - End-of-life capacity (design for aged pack): ÷ 0.80
  - DC-DC + wiring efficiency:                    ÷ 0.90
  E_nameplate = 600 / (0.80 × 0.80 × 0.90) ≈ 1,042 Wh

So a 600 Wh task needs a ~1,040 Wh nameplate pack if you want it to still hit runtime when the pack is aged and you are protecting cycle life. Designers who size the nameplate to the task and skip the deratings get a robot that meets spec for three months and then quietly stops finishing its shift.

Step 2 — Peak current from actuator stall

Independently, find the worst-case instantaneous current. Sum the peak draws of everything that can peak simultaneously:

Peak bus current:
  2 drive axes @ 60 A stall each      = 120 A
  Compute + sensors (continuous)      =  ~6 A
  Worst-case simultaneous peak        ≈ 126 A on a 48 V bus

Check against pack C-rate:
  Pack = 13S4P of Molicel P42A (16.8 Ah, 45 A/cell continuous, parallel ×4 = 180 A continuous)
  126 A < 180 A continuous → OK on cells
  But verify the BMS continuous + peak rating covers 126 A!

The pack's deliverable current is cells_in_parallel × per_cell_current_limit. A 4P arrangement of 45 A cells gives 180 A continuous — comfortably above the 126 A peak. If your energy-sized pack happens to be only 2P, you would have 90 A continuous and your 126 A peak would force the cells past their limit, sag the bus, and likely trip the BMS. This is exactly the case where the current constraint forces a bigger pack than the energy constraint asked for — and you take the larger of the two.

Step 3 — Voltage sag

Every cell and conductor has internal resistance. Under a current pulse, the bus voltage drops by I × R_internal:

Voltage sag:
  V_load = V_oc − I_peak × R_total
  
  Pack internal R (13S4P): per-cell ≈ 15 mΩ
    Series adds:    13 × 15 mΩ = 195 mΩ
    Parallel ÷ 4:   195 / 4    = 48.75 mΩ
  Plus wiring + connectors:    ~10 mΩ
  R_total ≈ 59 mΩ

  At I_peak = 126 A:
  Sag = 126 × 0.059 ≈ 7.4 V
  V_load = 46.8 − 7.4 = 39.4 V  (and lower if pack is near-empty)

A 7.4 V sag on a 48 V bus is survivable — but check it against the undervoltage lockout (UVLO) of your DC-DC converters and motor controllers. If your logic-rail DC-DC has a 36 V minimum input and your pack is at 80% SoC (≈44 V open-circuit) when this peak hits, you are at 44 − 7.4 = 36.6 V — uncomfortably close. Near end-of-discharge (39 V open-circuit) the same peak drops you to 31.6 V and your logic rail browns out, your controller resets, and your robot drops mid-motion. This is the single most common silent failure mode in mobile robots, and it is invisible on a multimeter because it only happens during the transient.

The fixes, in order of preference: lower internal resistance (more parallel cells, fatter wire, better connectors), bulk capacitance on the bus to ride through the pulse, a separate non-sagging source for logic (a small DC-DC fed before the sag point, or a dedicated logic battery), or a higher bus voltage so the same power needs less current.

Step 4 — The weight spiral

On legged, flying, and arm robots, the battery you add to extend runtime adds mass, which raises the power needed to move, which shortens runtime, which tempts you to add more battery. This is the weight spiral, and it has a hard limit set by your chemistry's energy density: past a point, adding battery reduces runtime. The escape is higher energy density (NMC over LFP), lighter structure, or accepting the runtime. Ground robots that roll mostly dodge this — rolling resistance is low and battery mass is nearly free, which is why AGVs cheerfully carry heavy LFP.

Power distribution architecture

Once you have a pack, you have to get its energy to the loads safely. This is the DC bus and its distribution: the busbars, the fuses, the e-stop, the precharge, and the connectors.

The bus voltage choice

Choosing the bus voltage is one of the highest-leverage decisions in the whole design, because power is P = V × I. For a fixed power, doubling voltage halves current, which quarters I²R loss and lets you use thinner, lighter, cheaper conductors and smaller connectors.

Bus voltage Typical robot class Pros Cons
12 V Small rovers, hobby, sensors Ubiquitous parts, safe, simple High current for any real power; big I²R loss
24 V Light AMRs, small arms, cobots Common industrial standard, safe (SELV), wide part support Still high current at multi-kW; thick cables
36 V Mid e-mobility, mid robots Good middle ground Less standard part ecosystem than 24/48
48 V Medium AMRs, humanoids, quads Below 60 V SELV ceiling, low current, dense, efficient More series cells, precharge needed
>60 V (HV) Large AGVs, heavy arms, vehicles Lowest current, highest power density Crosses into hazardous-voltage territory; isolation, certified components, safety interlocks

The modern sweet spot for medium robots is 48 V: it sits just under the 60 V DC ceiling that most safety standards treat as the boundary of Safety Extra-Low Voltage (SELV), so you avoid the heavy regulatory and isolation burden of true high-voltage systems while getting most of the efficiency benefit. A 5 kW robot draws 5000/48 ≈ 104 A on a 48 V bus versus 5000/24 ≈ 208 A on 24 V — the difference between 8 AWG and 4 AWG cable, and between a 120 A connector and a 250 A one.

Busbars and conductors

For high-current distribution, copper busbars beat cables: lower resistance, better heat dissipation, mechanical rigidity, and clean fanout to multiple loads. Size conductors for both the continuous RMS current (heating) and the peak (voltage drop). A rule of thumb for copper: ~4–6 A/mm² continuous in free air with insulation, derated in bundles or enclosures.

Fusing

Every source and major branch needs overcurrent protection. The fuse protects the wiring primarily (so a fault can't start a fire) and the source secondarily. Size the fuse above the legitimate peak current and below the conductor's and connector's rating:

Fuse sizing:
  I_continuous_max = 28 A (RMS, from duty cycle)
  I_peak           = 126 A for ~0.5 s
  Choose a fuse whose time-current curve passes 126 A for 0.5 s
    but opens on a sustained fault well below the wire rating.
  e.g. a 100–125 A slow-blow / time-delay fuse on a circuit
       rated for 150 A continuous wiring.

Use slow-blow / time-delay fuses on motor branches (they must survive the inrush and stall transients) and fast fuses where you want quick fault isolation. Class-T or ANL fuses are common for high-current DC robot buses.

E-stop, contactors, and the cut path

A robot needs a way to remove power now. The e-stop chain typically drives a contactor (a high-current relay) that disconnects the motor bus, while ideally leaving compute powered so the robot can log the event and brake controllably. On legged and high-energy machines, cutting motor power abruptly can be more dangerous than a controlled stop, so the e-stop often commands a fast controlled brake and drops the contactor. Anderson Powerpole / SB connectors are the de facto standard for the high-current disconnect and battery interface in this class of robot.

Precharge and inrush

Motor controllers have large bulk capacitors on their DC input — hundreds of microfarads to millifarads. Connect a discharged capacitor bank directly across a battery and you get an inrush current limited only by parasitic resistance: hundreds to thousands of amps for a few milliseconds. That inrush welds contactor contacts, blows fuses, trips BMS overcurrent, and pits connectors.

The fix is a precharge circuit: a resistor (and a smaller relay or MOSFET) in parallel with the main contactor that charges the bus capacitance gently before the main contactor closes.

Precharge:
  C_bus = 4,700 µF, V_bus = 48 V
  Precharge resistor R = 22 Ω
  Initial precharge current = 48 / 22 ≈ 2.2 A (safe)
  Time constant τ = R·C = 22 × 0.0047 = 0.103 s
  Wait ~5τ ≈ 0.5 s, bus reaches ~99% of V, then close main contactor.

Safety rule: Above a few hundred microfarads of bus capacitance on a 24 V+ bus, treat precharge as mandatory. Hot-plugging a high-voltage pack into uncharged bulk capacitance is how you weld a contactor closed — which then cannot open on the next e-stop.

DC-DC conversion & regulation

The pack gives you one sagging, noisy voltage. The robot needs several clean ones: 5 V and 3.3 V for logic, 12 V for sensors and fans, maybe 19–24 V for a compute module, and a high-current motor rail. DC-DC converters make those rails.

Buck, boost, and buck-boost

  • Buck (step-down) — the workhorse. Efficiently drops the bus to a lower rail (48 V → 12 V, 24 V → 5 V). Efficiencies of 90–97% are routine.
  • Boost (step-up) — raises voltage; used when a rail must exceed the (sagging) bus or to stabilize a falling pack voltage.
  • Buck-boost / SEPIC — maintains a regulated output whether the input is above or below it. Useful for a logic rail that must stay at 12 V even as a 3S pack sags from 12.6 V to 9 V across discharge.

Point-of-load and rail topology

Modern practice is point-of-load (POL) regulation: distribute one fairly high intermediate voltage (the bus or a 12/24 V intermediate) and place small, efficient buck converters right next to each load that needs a specific rail. This minimizes the current in the distribution wiring and keeps high-current low-voltage runs short. TI (the TPS family) and Vicor (their bricks and ChiP/PI modules) are common silicon and module vendors; Vicor in particular is favored where power density and isolation matter at high power.

Isolation

An isolated DC-DC has no electrical connection between input and output (a transformer in between). You want isolation when you need to break ground loops, when one side is a hazardous voltage and the other is touch-safe, or when noise on the motor ground must not couple into sensitive analog/logic ground. Non-isolated buck/boost is cheaper and more efficient and is fine when input and output share a ground reference safely.

Keep logic and motor rails apart

This is the rule that prevents the most field failures: the logic/compute rail must not brown out when the motors transient. A motor acceleration sags the bus (we computed 7.4 V earlier); if your compute board draws straight from that bus through a converter with a high UVLO, the sag resets your controller mid-motion. Defend against it with:

  • A DC-DC for logic with a low UVLO and enough input bulk capacitance to ride through the sag.
  • A separate feed for logic taken upstream of the worst sag, or even a small dedicated logic battery / supercap holdup.
  • Explicit brownout protection: a supervisor that detects the rail dipping and either asserts a clean reset or, better, holds the rail up through a holdup cap long enough for the transient to pass.

A real-time controller that resets because a motor sneezed is unacceptable — see real-time control systems and the motor controllers & FOC guide for why the drive's DC-link behavior and the controller's power integrity are tightly coupled.

Regeneration & braking

When a motor decelerates — slowing a drive wheel, lowering an arm against gravity, a leg absorbing impact — it acts as a generator. The kinetic or potential energy has to go somewhere. Where it goes is a design decision with safety consequences.

Regen into the pack

A motor controller doing field-oriented control can run current backward, pushing energy from the decelerating motor into the DC bus, where the battery absorbs it as charge. This is regenerative braking, and it recovers real energy — on a heavy AMR doing frequent stops, regen can return 5–20% of drive energy. See the motor controllers & FOC guide for how the drive sources reverse current.

The catch: the pack must be able to accept the charge. Two limits bite:

  • SoC headroom — a full pack cannot absorb more charge. Regen into a 100% pack pushes the bus voltage up until the BMS trips on overvoltage (or worse).
  • Charge-current limit — cells accept charge more slowly than they deliver discharge, and lithium charge current must be limited (especially when cold). The BMS enforces a charge-current ceiling; exceed it and you trip.
Regen energy from a stop:
  AMR mass m = 120 kg, decelerating from v = 1.5 m/s to 0
  KE = ½·m·v² = 0.5 × 120 × 1.5² = 135 J
  Over a 0.5 s stop → P_regen ≈ 270 W into the bus
  On a 48 V bus → ~5.6 A of regen current the pack must accept (or burn).

The brake resistor

When the pack cannot or should not absorb the regen energy, it must be burned as heat in a brake (dump) resistor switched across the bus by a "brake chopper" — a transistor that PWMs the resistor to clamp the bus voltage at a set ceiling (say 56 V on a 48 V system). This is mandatory on:

  • High-inertia or gravity-loaded axes (an arm that can be back-driven, a hoist).
  • Systems that may regen into a full or cold pack.
  • Any drive where uncontrolled bus voltage rise could exceed component ratings.

Safety rule: If a fault disconnects the pack (e-stop, BMS trip, blown fuse) while a motor is still spinning and regenerating, the regen energy has nowhere to go and the bus voltage spikes — potentially destroying the controller. A brake resistor on the controller side of the disconnect, or a controller that detects bus overvoltage and stops actively braking, is how you survive this.

Charging

A robot that charges badly has poor uptime regardless of pack size. Charging strategy is as much a part of the power system as the pack.

CC/CV is the lithium charge profile

All lithium chemistries charge with constant current, then constant voltage (CC/CV):

  1. CC phase — charge at a constant current (e.g. 0.5C) until cell voltage reaches the max (4.2 V NMC / 3.65 V LFP). This is most of the energy and most of the time.
  2. CV phase — hold the voltage at the max and let current taper. Charge is complete when current falls to ~0.05C (the termination current).

Faster charging means higher CC current, which means more heat and more stress; 1C charging is aggressive but common, 0.5C is gentle, and anything above 1–2C demands active cooling and shortens life. Charging below 0 °C is forbidden without heating.

Opportunity charging and uptime

For an AMR fleet, the metric that matters is availability, and the lever is opportunity charging: instead of a long charge after a full discharge, the robot tops up briefly and frequently at a dock between tasks. A robot that grabs 10 minutes of 1C charge every hour can sustain a 24/7 duty cycle on a pack far smaller than one sized for a full shift. This is why AMR fleets favor LFP — its cycle life shrugs off the thousands of partial cycles that opportunity charging creates, where NMC would wear out. See the mobile robots (AMR/AGV) guide for how charging strategy shapes fleet sizing and throughput.

Contact vs inductive

  • Contact charging — exposed contacts (often spring pins or a blade) mate with a dock. Cheap, efficient (>95%), high current, and the dominant method for AMRs. Needs reliable alignment and contact cleaning; arcing and wear are the failure modes.
  • Inductive (wireless) charging — no exposed contacts, so no wear, arcing, or ingress path. Lower efficiency (85–92%), lower power density, more expensive, and adds an air gap that complicates alignment. Worth it in wet, dusty, or hygienic (food, pharma) environments where exposed contacts are a liability.

Hot-swap and docking

For robots that cannot afford charge downtime at all, hot-swap packs let an operator (or a robot) exchange a depleted pack for a charged one in seconds. This needs: a connector rated for blind-mate and inrush, a way to keep the robot's logic alive during the swap (a small holdup battery or supercap), and packs with onboard BMS so each pack is independently safe. Auto-docking — the robot drives itself onto a charger — is what makes fleets truly autonomous; the docking mechanism's reliability sets the fleet's effective uptime.

Safety: thermal runaway, protection, transport

Lithium packs store a lot of energy in a small, flammable package. Respect that and the failure modes are manageable; ignore it and you get a fire that you cannot put out.

Thermal runaway

Thermal runaway is the worst case: a cell's internal temperature rises (from overcharge, internal short, external heat, or mechanical damage) to where exothermic reactions become self-sustaining, generating more heat than can be dissipated. The cell vents, then ignites, and the heat can propagate cell-to-cell through the pack — propagation — turning one bad cell into a pack fire.

Key facts:

  • NMC runs away around 150–210 °C and releases oxygen from its cathode, so it sustains its own combustion. LFP is far more stable (onset ~270 °C, little oxygen release) — this is LFP's headline safety advantage.
  • Once started, a lithium fire is largely self-oxidizing; you cannot smother it. The strategy is prevent (don't abuse), contain (cell spacing, intumescent barriers, steel partitions to stop propagation), and vent (let gas and heat escape away from people and electronics).

Safety rule: Design the pack to contain a single-cell failure without propagating to neighbors — physical spacing, thermal barriers between cells, and a vent path. Assume one cell will fail eventually; the design question is whether it takes the pack and the robot with it.

What kills packs (and how to not do it)

In rough order of how often they kill robot packs:

  • Over-discharge — running a cell below its floor. Causes copper dissolution and internal shorts. Prevented by BMS UV cutoff and by not designing the robot to run the pack to empty.
  • Heat — the slow killer. Every ~10 °C above 25 °C roughly halves calendar life. A pack that lives at 45 °C ages ~4× faster than one at 25 °C. Cool the pack, and never charge a hot pack.
  • Overcharge — exceeding the per-cell max. A direct runaway path; prevented by BMS OV cutoff and a charger that respects CV termination.
  • Cold charging — charging below 0 °C plates lithium metal, permanently reducing capacity and creating internal-short risk.
  • Mechanical/electrical abuse — puncture, crush, external short. Prevented by mechanical protection, fusing, and short-circuit-rated BMS.

Fusing and protection layers

Defense in depth: cell-level (BMS short-circuit and OC trip), pack-level (a main fuse sized to the wiring), and branch-level (per-branch fuses so one shorted load doesn't take the whole bus down). The BMS protects the cells; the fuse protects the wiring; the contactor provides the commanded disconnect. None of the three replaces the others.

Transport and UN 38.3

Shipping lithium cells and packs is legally regulated. UN 38.3 is the United Nations testing standard (altitude, thermal cycling, vibration, shock, external short, impact, overcharge, forced discharge) that every lithium cell and pack must pass to be shipped by air, sea, or road. There are also state-of-charge limits for air freight (typically ≤30% SoC for standalone packs) and packaging/labeling requirements. This is not optional and it constrains how you ship spares, returns, and product — design for it early, because a pack that can't pass UN 38.3 is a pack you can't sell or service across borders.

Tethered & alternative power

Not every robot should carry its energy. Sometimes the right power system is no battery at all, or a battery plus something else.

AC mains for fixed arms

A stationary industrial arm bolted to a floor has no reason to carry a battery. It runs off AC mains, rectified to a DC bus that feeds the servo drives. This gives effectively unlimited energy, no weight penalty, and no charging logistics. The trade is a tether (the power cable) and the need for mains-grade safety, isolation, and possibly three-phase input for big arms. See the industrial robot arms guide for how mains-fed servo drives and their shared DC bus (with regen sharing between axes) are architected.

Power-over-tether

A tethered mobile robot (inspection crawlers, ROVs, some drones) can take power down a cable instead of carrying a battery. Sending power at high voltage down a thin tether and stepping it down at the robot minimizes tether weight and I²R loss — the same P = V·I logic as the bus-voltage choice, applied to a long thin conductor. The tether buys unlimited runtime at the cost of range, snag risk, and the mass/drag of the cable itself. For an ROV at depth or a drone that must loiter for hours, the tether wins decisively.

Fuel cells and range extenders

Hydrogen fuel cells offer high energy density by mass (the fuel is light) and fast refueling, which is attractive for long-endurance outdoor robots and some heavy AGVs. The catch is system complexity, cost, hydrogen logistics, and poor transient response — a fuel cell can't follow a fast load step, so it is always paired with a buffer battery or supercap that handles the peaks while the fuel cell supplies the average. That hybrid (fuel cell for average power, battery/supercap for peaks) is the practical architecture.

Supercapacitors

Supercapacitors store little energy (5–10 Wh/kg) but deliver and absorb enormous power (thousands of W/kg) over hundreds of thousands of cycles with no chemical wear. In a robot they shine as a peak buffer: parallel a supercap bank across the bus and it sources the brief stall/acceleration peaks and absorbs regen spikes, letting a smaller, lower-C battery handle the average. This decouples the energy sizing from the power sizing — exactly the tension we opened with — and is increasingly common on legged robots whose peak-to-average ratio is brutal.

Selecting & integrating a power system

Pull it together with an ordered method and a worked example.

The selection order

  1. Write the power budget — average and peak watts for every load, plus duty cycle. (Section 2.)
  2. Pick the bus voltage — from peak power and the SELV/efficiency tradeoff. 24 V light, 48 V medium, HV only when forced. (Section 7.)
  3. Pick the chemistry — from duty cycle and weight sensitivity: NMC for weight-critical and moderate cycling, LFP for high-cycle/safety-critical fleets, LiPo only for extreme C-rate. (Section 3.)
  4. Size the pack — take the larger of the energy-driven and current-driven sizes; check voltage sag against every UVLO. (Section 6.)
  5. Spec the BMS — cell count, continuous + peak current, balancing type, comms (CAN for integrated robots). (Section 5.)
  6. Design distribution — busbars, fusing, e-stop/contactor, precharge, connectors. (Section 7.)
  7. Spec DC-DC and rail isolation — keep logic brownout-proof and separate from the motor bus. (Section 8.)
  8. Handle regen and charging — brake resistor if needed; charge profile and docking strategy. (Sections 9–10.)
  9. Close the safety loop — propagation containment, fusing layers, UN 38.3 for transport. (Section 11.)

Worked example: a 4-hour, 150 W AMR with peaky drive

Bringing the earlier numbers together into one decision:

LOADS
  Average power:    150 W (compute 60 W, sensors 20 W, drive avg 70 W)
  Peak power:       ~6 kW (two drive axes @ 60 A on 48 V during accel)
  Target runtime:   4 h
  Duty cycle:       drive at peak <5% of time
  Weight:           ground robot, rolling — battery mass nearly free

BUS VOLTAGE
  6 kW peak → 24 V would mean 250 A (impractical cabling).
  Choose 48 V → 125 A peak, 8 AWG-class cabling, SB175 connectors.

CHEMISTRY
  Daily cycling for years, opportunity-charged, safety-sensitive site.
  → LiFePO4. Cycle life and safety beat NMC's density here.

PACK SIZING
  Energy: E_usable = 150 × 4 = 600 Wh
          E_nameplate = 600 / (0.85 DoD × 0.85 EoL × 0.90 conv) ≈ 922 Wh
          (LFP tolerates deeper DoD, so 85% used.)
  Current: peak 125 A; choose cells/parallel so continuous ≥ 125 A.
  Config: 16S (51.2 V nominal LFP) ; pick a cell + P count giving
          ~1,000 Wh and ≥125 A continuous → e.g. 16S2P of 100 Ah-class?
          Too much energy. Better: 16S of a high-power 32700 LFP
          (6 Ah, 18 A) → need 7P for 126 A → 16S7P, ~575 Wh — too little.
  RESOLUTION: current constraint (need 126 A) drives a wider pack than
          the 922 Wh energy constraint. Either accept a larger pack
          (~1.3 kWh to hit both), or add a SUPERCAP buffer to cover
          the <5% peak and size cells for the 28 A RMS — then a
          16S3P of 32700 (~860 Wh, 54 A cont.) covers RMS, and the
          supercap covers the 126 A bursts. The supercap route saves
          ~40% pack mass/cost here.

VOLTAGE SAG (with supercap on bus): negligible during burst — supercap
          sources it. Without supercap, check 16S LFP sag at 126 A.

BMS:      16S LFP, CAN-reporting (Orion Jr or Daly CAN), ≥60 A cont /
          150 A peak rating, passive balance, temp sensors, <0 °C
          charge inhibit + heater enable.

DISTRIBUTION: 16S LFP main contactor + 100 A class-T fuse + 22 Ω
          precharge; SB175 battery connector; busbar fanout; e-stop
          drops contactor + commands controlled brake.

DC-DC:    48 V → 19 V (compute, isolated, low UVLO + holdup cap),
          48 V → 12 V (sensors/fans), 48 V → 5 V (logic). Logic fed
          with brownout supervisor; supercap holds bus during peaks.

REGEN:    Light (rolling robot). Pack accepts most regen; brake chopper
          clamps bus at 58 V as backstop for full/cold pack.

CHARGING: Contact dock, 0.5C opportunity charge, auto-docking.
          LFP cycle life absorbs the partial cycles.

That example shows the central tension in action: the energy constraint wanted ~922 Wh, but the peak-current constraint wanted enough parallel cells to deliver 126 A — and reconciling them either inflates the pack or argues for a supercap buffer. There is no spec sheet that resolves this for you; it falls out of the budget.

Final comparison: matching architecture to robot class

Robot class Chemistry Bus Notable power-system feature
Drone / UAV LiPo (high C) 22–52 V Power density rules; minimal protection mass; tight thermal/charge discipline
AMR / AGV LiFePO4 24–48 V Opportunity/auto-charging; long cycle life; regen on stops; fleet uptime focus
Humanoid / quadruped Li-ion NMC 48 V Energy density rules; supercap peak buffer; brutal peak/average; weight spiral
Industrial arm (fixed) None (AC mains) rectified DC bus Tethered; shared DC bus + regen sharing across axes; mains safety
Combat / racing LiPo (very high C) 22–48 V Extreme peak current; minimal mass; accepted abuse and short life
Inspection crawler / ROV Tether or small Li-ion varies Power-over-tether for unlimited runtime; HV down a thin tether

Match the architecture to the class first, then refine with the worked numbers. The robots that fail in the field are almost never the ones that did this budgeting; they are the ones that picked a pack by its Wh rating and discovered the peak-current and voltage-sag truths the hard way.

Frequently asked questions

Why is my robot resetting only when the motors accelerate hard?

Voltage sag. The motor transient pulls a large current, the pack's internal resistance drops the bus voltage (V = V_oc − I·R), and that dip crosses the undervoltage lockout of the DC-DC feeding your logic/compute. It is invisible on a multimeter because it lasts milliseconds. Fix it with lower pack/wiring resistance, bus bulk capacitance, a logic rail with a low UVLO plus holdup capacitance, or a separate non-sagging logic supply. See Sizing and DC-DC.

LiFePO4 or Li-ion NMC for my mobile robot?

If it cycles daily for years and weight is not critical (a rolling AMR/AGV), choose LFP for its 2,000–6,000-cycle life and superior safety. If weight is critical (legged, flying, humanoid) and the pack won't see thousands of cycles, choose NMC for its 200–270 Wh/kg. The deciding axes are cycle count and weight sensitivity, not the headline energy density alone.

Do I really need a BMS, or can I just charge carefully?

You need a BMS on any multi-cell lithium pack. Even with perfect charging, series cells drift in SoC, and the BMS is what balances them and what enforces per-cell over/under-voltage, overcurrent, and temperature limits. Careful charging cannot prevent one cell going out of bounds inside a string. A pack without per-cell monitoring is a fire risk, full stop.

What bus voltage should I use?

Driven by peak power. Under ~1 kW peak, 24 V is fine and keeps you safely in SELV territory. From ~1–6 kW, 48 V is the sweet spot — below the 60 V hazardous-voltage line, low enough current for reasonable cabling. Above that, you may be forced into true high voltage (>60 V) with its isolation and certification burden. Higher voltage = lower current = thinner cable and lower I²R loss for the same power.

How do I size the fuse?

Above the legitimate peak current (so it doesn't nuisance-trip on a stall) and below the wiring/connector continuous rating (so it protects the wire). Use the fuse's time-current curve: it must pass your peak (e.g. 126 A for 0.5 s) but open on a sustained fault below the cable rating. Slow-blow/time-delay (Class-T, ANL) fuses on motor branches that see inrush. See Distribution.

What is precharge and when do I need it?

A resistor (with a small relay/MOSFET) that gently charges the motor controller's bulk capacitance before the main contactor closes, limiting inrush. Without it, connecting a discharged capacitor bank across the pack draws hundreds of amps for milliseconds, which welds contactors, blows fuses, and trips the BMS. Treat it as mandatory above a few hundred microfarads of bus capacitance on a 24 V+ bus.

Where does regenerative braking energy go, and is it dangerous?

Into the pack as charge, if the pack has SoC headroom and the BMS's charge-current limit allows it. If the pack is full, cold, or disconnected, the energy has nowhere to go and the bus voltage rises until something trips or fails. A brake (dump) resistor with a chopper clamps the bus by burning excess energy as heat. Mandatory on gravity-loaded or high-inertia axes and anything that might regen into a full or disconnected pack. See Regen.

Why does my LFP pack report inaccurate state of charge?

Because LFP's discharge curve is nearly flat — barely 0.1 V of slope across the middle 60% of capacity — so any voltage-based SoC estimate is nearly useless in that band. LFP BMSs rely on coulomb counting (integrating current), which drifts and needs periodic recalibration at the full/empty voltage endpoints. This is LFP's real practical drawback versus NMC's sloped curve.

Can I charge my robot's battery in the cold?

Not below 0 °C without heating. Charging a sub-freezing lithium cell plates metallic lithium on the anode, permanently reducing capacity and creating an internal-short and runaway risk. A proper BMS blocks charge below 0 °C; cold-climate robots add pack heaters that warm the cells before charging. Discharge in the cold is fine (with reduced capacity and higher resistance); charge is the hard limit.

How long will my pack last?

Cycle life depends on chemistry (NMC 500–1,500, LFP 2,000–6,000 cycles to 80% at 80% DoD) and how you use it. Heat is the dominant aging factor — every ~10 °C above 25 °C roughly halves calendar life. Shallower depth of discharge, avoiding 100% and 0% dwell, and keeping the pack cool can multiply real-world life. Plan fleet retirement around 70–80% remaining capacity.

Do supercapacitors replace the battery?

No — they store far too little energy (5–10 Wh/kg). They supplement it: a supercap bank across the bus sources brief peak currents and absorbs regen spikes, letting a smaller, lower-C-rate battery handle the average. This is genuinely useful on robots with a brutal peak-to-average ratio (legged machines), where it can cut pack mass and cost meaningfully.

Why do industrial arms not have batteries?

Because they don't move themselves around — they're bolted down. They run off AC mains rectified to a DC bus that feeds the servo drives, giving unlimited energy, no weight penalty, and no charging logistics, at the cost of a tether. Mains-fed arms also share a common DC bus across axes so that one decelerating joint's regen can power another accelerating joint. See the industrial robot arms guide.

Related guides