Skip to content

Power Budget and Runtime

Introduction

The power budget is the starting point for robot power system design. By precisely accounting for the power consumption of each subsystem, you can determine battery capacity, DC-DC specifications, thermal solutions, and accurately predict runtime.

Subsystem Power Reference

Computing Platforms

Platform Typical Power Peak Power Notes
Arduino Uno 0.2W 0.5W 5V/50 mA
ESP32 0.5–1W 1.5W Higher with WiFi enabled
STM32F4 0.1–0.5W 0.8W Depends on clock and peripherals
Raspberry Pi 4B 3–6W 7.5W Depends on load
Raspberry Pi 5 4–8W 12W Newer, more powerful but more power-hungry
Jetson Nano 5–10W 10W 5W/10W dual modes
Jetson Orin Nano 7–15W 15W 7W/15W dual modes
Jetson Orin NX 10–25W 25W 10W/15W/25W modes
Jetson AGX Orin 15–60W 60W 15W/30W/50W/60W modes
Intel NUC (i7) 15–45W 65W x86 platform

Motors and Actuators

Type Typical Power (per unit) Peak Power Notes
SG90 micro servo 0.5–1W 2W No-load 0.1W
MG996R servo 2–5W 10W Peak at stall
25 mm geared DC motor 2–10W 20W Depends on load
BLDC (drone) 50–200W 400W+ Depends on throttle
Quadruped single joint motor 10–50W 100W+ Go2: 12 joints
Stepper motor NEMA17 5–15W 20W Draws power even when holding

Sensors

Sensor Typical Power Interface Notes
IMU (MPU6050) 0.02W I2C 3.3V/6 mA
Ultrasonic (HC-SR04) 0.075W GPIO 5V/15 mA
IR ranging (VL53L0X) 0.02W I2C Low power
Single-line laser ranging 0.5–1W UART/I2C TFmini, etc.
2D LiDAR (RPLiDAR A1) 2–3W UART Motor spinning
2D LiDAR (YDLIDAR X4) 2W UART Low cost
3D LiDAR (Velodyne VLP-16) 8–10W Ethernet High-end
3D LiDAR (Livox Mid-360) 8–10W Ethernet Mid-range
USB camera 0.5–1.5W USB Depends on resolution
Intel RealSense D435i 2–3W USB3 Depth + RGB + IMU
OAK-D 2.5–4W USB3 Integrated AI acceleration
GPS module 0.1–0.5W UART NEO-6M, etc.

Communication Modules

Module Typical Power Notes
WiFi (ESP32) 0.5–1W Higher during transmission
Bluetooth (BLE) 0.01–0.05W Low-power Bluetooth
4G LTE module 1–3W SIM7600, etc.
5G module 3–8W High bandwidth
LoRa 0.1–0.5W 0.5W during transmission
2.4 GHz RC receiver 0.05–0.1W FlySky, etc.

Other

Component Typical Power Notes
LED strip (30 LED/m, 0.5 m) 2–5W WS2812B
Fan (40 mm) 0.5–2W Cooling
Speaker/buzzer 0.1–1W
OLED display 0.05–0.1W SSD1306
7" LCD touchscreen 2–4W Raspberry Pi DSI display

Power Budget Worksheet

Template

Subsystem Component Quantity Unit Power (W) Total Power (W) Duty Cycle Avg Power (W)
Compute Jetson Orin NX 1 25 25 80% 20
Motors BLDC joint motors 4 30 120 50% 60
Sensors RealSense D435i 1 3 3 100% 3
Sensors 2D LiDAR 1 2.5 2.5 100% 2.5
Sensors IMU 1 0.02 0.02 100% 0.02
Communication WiFi module 1 1 1 100% 1
Display OLED 1 0.1 0.1 50% 0.05
Cooling Fan 2 1 2 70% 1.4
Total 153.62 87.97

Duty Cycle Explanation

The duty cycle reflects the average load of a component during actual use:

  • 100%: Always running at full load (sensors, communication)
  • 50–80%: Intermittent full load (compute platforms, motors)
  • <50%: Occasionally used (display, LEDs)

Average power calculation:

\[P_{avg} = P_{rated} \times D_{duty}\]

Efficiency Loss Analysis

DC-DC Conversion Efficiency

Actual battery power draw must account for conversion efficiency:

\[P_{battery} = \sum \frac{P_{load\_i}}{\eta_{converter\_i}}\]
Conversion Path Efficiency \(\eta\) Load Power Battery-Side Power
24V → 5V (Jetson) 90% 20W 22.2W
24V direct drive (motors) 95%* 60W 63.2W
24V → 12V (LiDAR) 92% 2.5W 2.7W
24V → 5V (sensors) 90% 5W 5.6W
24V → 3.3V (MCU) 88% 0.5W 0.57W
Total 88W 94.3W

*Motor driver efficiency

Wire Losses

Long cables introduce resistance, causing voltage drops and power losses:

\[P_{wire} = I^2 \times R_{wire}\]
\[R_{wire} = \frac{\rho \times L}{A}\]

Where \(\rho\) is copper's resistivity (\(1.68 \times 10^{-8}\ \Omega \cdot m\)), \(L\) is wire length, and \(A\) is cross-sectional area.

Example: 1 m long, 0.5 mm² copper wire carrying 5A:

\[R = \frac{1.68 \times 10^{-8} \times 1}{0.5 \times 10^{-6}} = 0.0336\ \Omega\]
\[P_{loss} = 5^2 \times 0.0336 = 0.84W\]

Runtime Estimation

Basic Formula

\[t_{runtime} = \frac{E_{battery}}{P_{battery\_avg}}\]

Practical Estimation Example

Assuming a 6S 4P 18650 battery pack (Samsung 30Q):

  • Voltage: \(6 \times 3.6V = 21.6V\)
  • Capacity: \(4 \times 3.0Ah = 12.0Ah\)
  • Energy: \(21.6V \times 12.0Ah = 259.2Wh\)
  • Usable energy (80% depth of discharge): \(259.2 \times 0.8 = 207.4Wh\)

Battery-side average power consumption 94.3W (including efficiency losses):

\[t = \frac{207.4Wh}{94.3W} = 2.2h\]

Runtime by Operating Mode

Operating Mode Estimated Power Runtime
Standby (sensors on, motors off) 30W 6.9 h
Low-speed cruising (motors 50% load) 60W 3.5 h
Normal operation 94W 2.2 h
Full-speed motion (motors full load) 150W 1.4 h
Peak (all subsystems at max) 200W+ <1 h

Power Optimization Strategies

Hardware Level

  1. Choose high-efficiency DC-DCs: Synchronous rectification Buck can reach 95%+
  2. Dynamic voltage regulation: Adjust motor drive voltage based on load
  3. Power zoning: Completely power off unused subsystems (MOSFET switch control)
  4. Choose low-power components: E.g., use ESP32 instead of a WiFi dongle

Software Level

  1. Compute platform power modes: Jetson can switch power profiles at runtime

    # Jetson Orin check current mode
    sudo nvpmodel -q
    # Switch to 15W mode
    sudo nvpmodel -m 2
    
  2. On-demand sensor activation: Turn off LiDAR when 3D point cloud is not needed

  3. Reduce sampling rates: Lower camera frame rate during slow movement
  4. CPU/GPU frequency scaling: Reduce frequency under light loads

    # Jetson set to power-saving mode
    sudo jetson_clocks --store
    sudo jetson_clocks --restore  # Restore
    
  5. WiFi power saving mode:

    # Enable WiFi power saving
    sudo iw dev wlan0 set power_save on
    

Algorithm Level

  1. Reduce unnecessary inference: Run object detection only when motion is detected
  2. Model quantization: INT8 inference saves ~50% power compared to FP32
  3. Edge compute offloading: Offload heavy computation tasks to a server via WiFi
  4. Adaptive perception: Adjust algorithm precision based on scene complexity

Power Monitoring

Hardware Monitoring

Solution Accuracy Cost Suitable For
INA219 (I2C power meter) ±1% $3 Single-channel precise monitoring
INA3221 (3-channel) ±1% $5 Multi-channel simultaneous monitoring
Shunt resistor + ADC ±2–5% $1 Simple, low cost
USB power meter ±2% $10 Testing USB devices

INA219 measurement principle:

\[P = V_{bus} \times I_{load} = V_{bus} \times \frac{V_{shunt}}{R_{shunt}}\]

Software Monitoring (Jetson Platform)

# Check Jetson power consumption
sudo cat /sys/bus/i2c/drivers/ina3221x/*/iio:device*/in_power*_input

# Using tegrastats
sudo tegrastats --interval 1000

# Using jtop (recommended)
pip install jetson-stats
sudo jtop

Power Logging

import time
import board
import busio
from adafruit_ina219 import INA219

i2c = busio.I2C(board.SCL, board.SDA)
ina = INA219(i2c)

with open("power_log.csv", "w") as f:
    f.write("time_s,voltage_V,current_mA,power_mW\n")
    start = time.time()
    while True:
        t = time.time() - start
        v = ina.bus_voltage
        i = ina.current
        p = ina.power
        f.write(f"{t:.2f},{v:.3f},{i:.1f},{p:.1f}\n")
        time.sleep(0.1)

References

  • NVIDIA Jetson Power Management: developer.nvidia.com
  • Texas Instruments: Power Budget Calculator Tools
  • INA219 Datasheet (TI)
  • "Low-Power Embedded System Design"

评论 #