Identification of a Physics-Based Electrical Power Consumption Model for the Unitree G1 Humanoid Arm
Nestor N. Deniz, Sebastian Vega, Simon Parsons, Fernando Auat Cheein
cs.RO
2026-06-15
A 49-parameter linear electrical power model for the Unitree G1 left arm, fit on 897 real trajectories (R²=0.933, RMSE 1.07 W) and checked at unseen speeds (R²=0.965).
Battery-powered humanoids spend a lot of watts even when they stand still. The Unitree G1 draws about 135 W at rest; the arms add more as soon as they move. Energy-aware planning, mission-duration estimates, and actuator thermal protection all need a usable prediction of electrical power. Two existing families of models miss this setting. Neural nets can fit industrial arms well, then fail outside the training envelope and never say which joint is burning the watts. First-principles electro-mechanical models need winding resistance, torque constants, and gearbox efficiency, numbers commercial platforms rarely publish.
Most of the energy-modelling literature is about fixed-base industrial manipulators (UR5e is a typical example). A humanoid arm is a different measurement problem: onboard power is sampled near 1 Hz, the standing balancer moves the legs when the arm reacts, and gravity-compensation current changes with posture. This letter identifies a physics-based, linear-in-parameters electrical power model for a modern humanoid arm, using the robot's own power rail as the regression target.
The plant is the G1 left arm: seven joints (shoulder pitch/roll/yaw, elbow, wrist roll/pitch/yaw; SDK motors 15–21), each a BLDC motor plus a harmonic drive. Kinematics and estimated torque come out at 100 Hz over ROS2. Power comes from the main-board sensor (MBS), which watches an upper-body rail at about 1 Hz. Its idle baseline is 120 W, 15 W below the battery-management-system reading of 135 W, and it excludes most of the legs and compute. That is the regression target for the whole paper.
Each joint's electrical power is four terms. Mechanical power is torque times joint speed, scaled by the reciprocal of gear efficiency. Copper loss is torque squared (winding I²R). Coulomb friction scales with absolute speed. Viscous friction scales with speed squared. The important correction is the copper baseline. At the home posture the gravity-compensation current is already inside the idle power, so the regressor is current torque squared minus the mean squared torque of a 2-second pre-idle window. When the arm moves into a lighter gravity configuration, that term goes negative and net power can go negative. That is real: the windings dissipate less than they did at home.
Simultaneous multi-joint motion draws more than the sum of the per-joint terms. The model adds 21 pairwise products of absolute joint speeds, all coefficients constrained to be non-negative. The full parameter vector has 49 entries and is linear in power, so identification is a convex quadratic program: a ≥ 1, everything else ≥ 0, solved with IPOPT through CasADi.
Two practical steps make the fit possible. Fitting per sample is degenerate: the 1 Hz power reading is copied across 100 kinematic rows, the condition number hits 7.8×10¹¹, and R² falls below 0.04. Averaging each trajectory into one row (median 1016 samples) cuts noise by about 32× and restores independent observations. Fast arm motions also leak leg power into the MBS rail because the standing balancer shifts the legs. Trajectories whose IMU angular-velocity standard deviation exceeds 2.5 times the median are dropped: 104 of 1,017. Two passes of 3σ residual rejection drop 16 more and bring residual kurtosis from 77 down to 2.97. 897 trajectories remain.
The robot stands in a safety harness, right arm hanging, Dex3-1 hands mounted on the left. Gains are kp = 400 N·m/rad and kd = 12 N·m·s/rad. Identification speeds are 0.5, 1.0, 1.5, 2.0, 2.5 rad/s, covering single-joint sweeps, all two-joint pairs, and higher combinations. Wrist-specific trajectories are required; without them the wrist copper and friction coefficients are unidentifiable and the solver assigns arbitrary values. A hold-out set of 46 trajectories uses the same waypoints at the in-between speeds 0.75, 1.25, 1.75, 2.25 rad/s, with no extra filtering.
| Setting | R² | RMSE | MAE |
| 897 identification trajectories (averaged) | 0.933 | 1.07 W | 0.86 W |
| 46 hold-out trajectories at unseen speeds | 0.965 | 3.58 W | 2.33 W |
| Per-sample fit (control) | <0.04 | degenerate | degenerate |
Hold-out power goes up to 121.7 W against a training ceiling near 27 W, which is why RMSE rises from 1.07 W to 3.58 W (about 2.9% of full scale). Bias is −0.72 W. The worst residual is 17.2 W, on a 1.0 rad/s elbow–wrist-pitch–yaw combo that the training set never ran at that speed for that joint group. Everything else is within a few watts. On the training set the measured range is −5 W to 27 W; the largest errors, up to 3.3 W, sit on very fast 4–5 joint motions, which the authors attribute to nonlinear bus-voltage drop that a linear interaction term cannot catch.
Every ai saturates at the bound 1; gear-train loss is absorbed into copper and friction, a common outcome when a harmonic drive sits in its high-efficiency regime. Dominant loss by joint:
| Joints | Dominant term | Notable coefficient |
| Shoulder pitch; wrist roll/pitch/yaw | viscous | wrist yaw d = 1.7848, largest on the arm |
| Shoulder yaw, elbow | copper | b = 0.2799 / 0.3942 |
| Shoulder roll | Coulomb | c = 1.2767, largest in the table |
Wrist pitch is the only joint with a balanced split (copper 0.3768, Coulomb 0.3464, viscous 1.2004). The biggest interaction coefficients are shoulder-roll/elbow (1.1053) and shoulder-pitch/elbow (0.9090), pairs that share a kinematic chain and often move together.
Term shares on the 46-trajectory hold-out: copper 42.4%, viscous 38.2% (over 80% together), mechanical 10.1%, Coulomb 4.7%, pairwise interaction 4.5%. The interaction share is small, but without it coordinated motion is mis-predicted.
The G1 is already in labs for manipulation and RL. Planning stacks that proxy energy with a torque norm cannot see that shoulder roll is Coulomb-dominated, the elbow and shoulder yaw are copper-dominated, and the wrist is almost entirely viscous. That split is what you want for energy-aware trajectories, battery estimates, and thermal limits.
The model is linear in 49 parameters and identified from the onboard rail. No manufacturer winding or gearbox numbers are required. It is already wired in as a reward for deep RL on energy-efficient reaching.
This is incremental engineering, not a new modelling paradigm. The industrial-arm recipe is moved onto a humanoid arm, with three dirty details that actually matter: a gravity-baseline copper correction, pairwise coupling, and trajectory averaging for a 1 Hz sensor. There is no neural-net baseline, and the paper does not release code or data.
The authors list three. Winding resistance drifts with temperature, so the copper coefficients wander on long runs; they do not correct with measured motor temperature. Harmonic drives are not back-drivable, so efficiency in braking is not the reciprocal of efficiency in driving, yet the model uses one a per joint. When two joints share the same speed profile, viscous and interaction features are perfectly collinear; individual d and e values are not separately identifiable, only the sum.
A few gaps sit outside that list. The Dex3-1 hands stay on for every trial, so the large wrist viscous coefficients may be payload inertia rather than gear friction; the paper flags a no-hands rerun as future work. All data come from one recording session, standing in a harness, left arm only. Hold-out paths reuse the training waypoints and only interpolate speed. Hold-out R² beating the training R² is less comforting once the power range is four times wider and the worst point is off by 17.2 W. The MBS rail still includes some upper-body load; the IMU gate discards about 10% of trajectories. There is no comparison against an LSTM or a hybrid model. The RL embedding is one sentence in the conclusion, with no reported energy saving.