FixTheRobot Explore Robotics / Systems Engineering / Engineering Guides / Module 03

Engineering Guides · Module 03

Building a power budget and estimating runtime

List every load with average and peak power, add converter losses, and divide the usable battery energy by the average. Then check peak current and cable drop.

  • Intermediate
  • Module 03: Actuators, Motors, Electrical & Power Integration
  • Written for ROS 2 Jazzy where ROS 2 is used
  • Sources checked 2026-11-04

Assumptions: Energy-based runtime: nominal Wh × usable fraction ÷ average power. Peukert effect, temperature and voltage sag are not modelled. The example numbers are illustrations. The arithmetic is executed by the site’s tests.

1. Engineering problem

“How long will it run?” and “which battery and converter?” are answered by a budget: every load, how often it is on, and how much comes out of the battery after conversion losses. Peak draw and cable losses decide whether the battery, converter and wiring survive.

2. When is this needed?

  • Choosing a battery and converter for a new robot.
  • Adding a computer, LiDAR or heater to an existing one.
  • Investigating brown-outs, resets or short runtime.

3. Selection and design decisions

Power budget steps
StepCalculationNotes
1. List loadsAverage W, peak W, duty cycle, voltage railMotors dominate; sensors and compute are roughly constant
2. Convert to battery powerPbatt = Pload / η for loads behind a converterEfficiency depends on load; check the converter datasheet curve
3. Usable energyE = Vnom × Ah × usable fraction × (1 − aging)Do not discharge to zero; allow for aging
4. Runtimet = E / PavgAn upper bound: real runtime is shorter under load sag and cold
5. Peak currentIpeak = Ppeak / Vnom; C-rate = Ipeak / AhCompare with the battery’s maximum continuous discharge rating
6. Converter ratingOutput peak power × margin (e.g. 1.25)Check input range and thermal derating
7. Cable dropΔV = I · ρ · 2L / ASupply plus return conductors; add connector resistance

4. Advantages and disadvantages

  • Higher battery voltage: lower current for the same power, so less cable loss and smaller conductors, but needs converters for low-voltage loads and has more safety requirements.
  • Larger battery: longer runtime, more mass, which raises motor load: iterate with the motor sizing.
  • One converter for everything: simple but a single point of failure and noise coupling; separate rails isolate sensors from motor noise.

5. Requirements and constraints

  • Battery chemistry limits discharge rate, voltage window, charging and temperature range (read the cell datasheet).
  • Protection: fuses, a battery management system, reverse-polarity and inrush protection.
  • Regulations for transporting and charging lithium batteries.

6. Architecture

battery ──▶ BMS ──▶ fuse ──▶ main switch ──┬──▶ motor drivers ──▶ motors
                                          ├──▶ DC-DC 12 V ──▶ computer, LiDAR
                                          └──▶ DC-DC 5 V  ──▶ sensors, microcontroller

7. Implementation

eta = 0.9                                   # DC-DC converter efficiency
loads = [("compute", 20.0, 20.0, True), ("motors", 60.0, 120.0, False)]   # name, average W, peak W, behind converter
avg = sum(w / (eta if conv else 1) for _, w, _, conv in loads)
peak = sum(p / (eta if conv else 1) for _, _, p, conv in loads)
V, Ah, usable = 24.0, 10.0, 0.8
usable_wh = V * Ah * usable
print(round(avg, 2), round(peak, 2))
print(usable_wh, round(usable_wh / avg, 3))
print(round(peak / V, 2), round(peak / V / Ah, 3))
print(20.0 * 1.25)                           # converter rating for the 20 W load, with 25 % margin
rho, L, A, I = 1.68e-8, 2.0, 2.5e-6, 10.0    # copper, one-way length (m), area (m^2), current (A)
R = rho * 2 * L / A
print(round(R * 1000, 2), round(I * R, 3), round(100 * I * R / 24, 2), round(I * I * R, 2))

Printed (checked by the site’s tests):

82.22 142.22
192.0 2.335
5.93 0.593
25.0
26.88 0.269 1.12 2.69

Reading it: 20 W of compute behind a 90 % converter draws 22.2 W from the battery, plus 60 W for the motors: 82.2 W average, 142.2 W peak. A 24 V, 10 Ah pack stores 240 Wh; at 80 % usable that is 192 Wh, so the estimated runtime is 2.335 h. Peak current is 5.93 A, 0.593 C. A converter feeding the 20 W load needs about 25 W of rating with 25 % margin. A 2 m run of 2.5 mm² copper carrying 10 A has 26.9 mΩ round trip, drops 0.269 V (1.12 % of 24 V) and dissipates 2.69 W.

Use the Power Budget & Battery Runtime Estimator with your loads.

8. Real examples

  1. Runtime half of the estimate: motors run at a higher duty cycle than assumed; log real current for a typical mission.
  2. Resets under acceleration: peak current causes battery voltage sag below the converter’s minimum input; check the battery’s internal resistance and the cable drop at peak.
  3. Added a heated sensor housing in winter: a constant 15 W cuts runtime by roughly the share it adds to the average.

9. Failure scenarios

  • Using nameplate power as average power.
  • Ignoring converter losses and aging derate.
  • Ignoring peak current: the battery sags and the computer resets.
  • Undersized cables: voltage drop and heating, especially in motor harnesses.

10. Troubleshooting

  1. Measure actual current: a clamp meter or an inline shunt with a logger on the battery lead during a real mission.
  2. Compare with the budget load by load (switch loads off one at a time).
  3. Log battery voltage under peak load; compare with the converter’s minimum input voltage.
  4. Measure the voltage at the load and at the battery during peak: the difference is cable and connector drop.
  5. Update the budget with measured values and re-estimate.

11. Validation

  • A full discharge test at the real duty cycle matches the estimated runtime within about 15 %.
  • Voltage at each load stays inside its allowed range at peak current.
  • No converter or cable gets hotter than its rating after an hour at average load.
  • The worked example prints the values above (executed by the site tests).

12. Engineering checklist

13. Further references

  • Copper resistivity at 20 °C: 1.68×10⁻⁸ Ω·m (standard reference value).
  • Battery, BMS and converter datasheets: read maximum continuous discharge rate, voltage window, efficiency curve, input range and thermal derating from the actual part.

Related on FixTheRobot