5.4.2 Power Management Unit (PMU)
The Power Management Unit interface provides monitoring and management of the robot’s power system, including battery status, voltage and current monitoring, and more.
Core Features
Battery Monitoring
Battery Voltage: Real-time monitoring of battery voltage
Battery Current: Monitors battery charging/discharging current
Battery Health: Tracks overall battery health status
Power Management
Multi-channel Power Rails: Monitors 48V, 12V, 5V and other power rails
Current Monitoring: Tracks current consumption of each module
Voltage Monitoring: Tracks voltage status of each module
System Monitoring
Module Power Status: Power status of RK3588, ORIN, etc.
Over-current Protection: Detects and protects against over-current conditions
Power Management Topic
Topic Name |
Data Type |
Description |
QoS |
Frequency |
|---|---|---|---|---|
|
|
Power management data |
|
1Hz |
PmuStateros2-msg @ hal/msg/PmuState.msg# PMU State string pmu_software_version # PMU software version string pmu_hardware_version # PMU hardware version string pmu_protocol_version # PMU protocol version uint32 pmu_bool_status # Boolean status bits # Current info (unit: A) float64 head_power_current # Head module current float64 output_48v_current # 48V output current float64 rk3588_current # RK3588 current float64 output_12v_current # 12V output current float64 bus_48v_current # 48V bus current float64 orin_current # ORIN current # Voltage info (unit: V) float64 bus_48v_pmos_voltage # 48V PMOS voltage float64 battery_voltage # Battery voltage float64 fan_voltage # Fan voltage float64 output_12v_voltage # 12V output voltage float64 output_48v_voltage # 48V output voltage float64 bus_48v_voltage # 48V bus voltage float64 head_power_voltage # Head module voltage float64 orin_voltage # ORIN voltage float64 rk3588_voltage # RK3588 voltage # Misc info float64 fan_speed # Fan speed (RPM) uint8 fan_pecentage # Fan percentage (%) float64 pmu_temperature # PMU temperature (°C) # BMS info string bms_manufacturer # BMS manufacturer string bms_serial_number # BMS serial number string bms_hardware_version # Hardware version string bms_software_version # Software version uint32 bms_status_bits # Status bits uint16 battery_balance_line_resistance # Cell balancing line resistance (mΩ) float64 battery_pack_voltage # Pack voltage (V) float64 battery_current # Pack current (A, +charge / –discharge) float64 battery_output_power # Pack output power (W) float64 battery_temperature # Pack temperature (°C) uint32 battery_remaining_capacity # Remaining capacity (mAh) uint8 battery_remaining_capacity_percentage # Remaining capacity (%) uint16 battery_cycle_count # Cycle count uint32 battery_cycle_total_capacity # Accumulated capacity (Ah)
Note
BMS field staleness: BMS-related fields (battery_pack_voltage, battery_current, battery_temperature, etc.) are only updated when BMS communication is normal. When BMS communication is abnormal, these fields retain their last valid values and are not cleared. Refer to diagnostic codes to determine data freshness.
pmu_bool_status Boolean Bit Definitions:
Bit |
Name |
Description |
|---|---|---|
0 |
rk3588PowerGood |
RK3588 power good |
1 |
rk3588Monitor1 |
RK3588 monitor status 1 |
2 |
rk3588Monitor2 |
RK3588 monitor status 2 |
3 |
orinPowerGood |
ORIN power good |
4 |
orinMonitor1 |
ORIN monitor status 1 |
5 |
orinMonitor2 |
ORIN monitor status 2 |
6 |
bus48vOverCurrent |
48V bus over-current |
7 |
bus48vOverTemperature |
48V bus over-temperature |
8 |
rk3588PlugDetect |
RK3588 plug detect |
9 |
orinNXPlugDetect |
ORIN NX plug detect |
10-31 |
reserved |
reserved bits |
bms_status_bits Bit Definitions:
Bit |
Name |
Description |
|---|---|---|
0 |
chargeFlag |
Charging flag |
1 |
chargeOverCurrentFlag |
Charge over-current flag |
2 |
dischargeFlag |
Discharging flag |
3 |
dischargeOverCurrentFlag |
Discharge over-current flag |
4 |
shortCircuitFlag |
Battery short-circuit flag |
5 |
cellOverVoltageFlag |
Cell over-voltage flag |
6 |
cellUnderVoltageFlag |
Cell under-voltage flag |
7 |
batteryOverVoltageFlag |
Pack over-voltage flag |
8 |
batteryUnderVoltageFlag |
Pack under-voltage flag |
9 |
cellOpenCircuitFlag |
Cell open-circuit detected |
10 |
ntcOpenCircuitFlag |
Temperature sensor open-circuit detected |
11 |
cellDischargeOverTemperatureFlag |
Cell temperature above discharge upper limit |
12 |
cellChargeOverTemperatureFlag |
Cell temperature above charge upper limit |
13 |
cellDischargeUnderTemperatureFlag |
Cell temperature below discharge lower limit |
14 |
cellChargeUnderTemperatureFlag |
Cell temperature below charge lower limit |
15 |
reserved_1 |
reserved bits |
16 |
cellMaxVoltageDiffOverHighFlag |
Max cell voltage difference above limit |
17 |
mosfetChargeDisableFlag |
MOSFET charge disabled |
18 |
mosfetDischargeDisableFlag |
MOSFET discharge disabled |
19 |
mosfetOverTemperatureFlag |
MOSFET over-temperature flag |
20 |
balanceLineResistanceOverHighFlag |
Balancing line resistance over limit |
21-31 |
reserved_11 |
reserved bits |
For the LED strip state topic (/aima/hal/pmu/led_state), see LED Strip State Topic.
Safety Notes
Warning
Power Management Limitations
Power management affects system safety; operate with caution
Do not modify power parameters arbitrarily — may cause system damage
Power-related operations should be performed under expert guidance
Note
Best Practices
Monitor power status regularly to detect abnormalities early
Implement monitoring and alert mechanisms for power status
Implement power protection strategies
Monitor the temperature and current limits of power modules