Whole Body Control Implementation in Humanoid Software Stacks
How unified optimization solves the conflicts between a humanoid's competing motor tasks.

Whole body control is the layer of a humanoid's software stack that coordinates every joint and limb as one mathematical system. The argument here is architectural: WBC is best understood as a stack of layers, from the optimization problem at its core, through the two-tier planning split that dominates deployed robots, down to the sensing and compute constraints that decide what any of it can actually do on hardware.
What whole-body control is and why decomposing the robot into subsystems fails
A humanoid robot's balance, its walking, and its arm movements all draw on the same set of joints, the same mass distribution, and the same limited set of contact points with the ground. Split those into separate controllers, one for balance, one for gait, one for the arms, and each will issue commands as though the others don't exist. The arm controller may ask for a reach that shifts the center of mass outside the support polygon just as the balance controller is fighting to keep it inside. The leg controller may plan a foothold that the balance controller then has to fight to keep stable. These aren't edge cases. Dynamic humanoid motion routinely puts these objectives in direct conflict, and a system built from independent subsystems has no shared mechanism to resolve that conflict before it reaches the hardware.
Whole-body control solves this by refusing the decomposition. It defines a single compound task made up of operational-space objectives, things like the center-of-mass trajectory, where each foot lands, the pose of an end-effector, and resolves all of them at once against one shared set of constraints: contact forces, joint torque limits, and friction cone membership at every point where the robot touches the world. A natural objection follows: modular controllers are simpler to build and far easier to debug than one unified optimization problem. That's true when the robot's tasks don't interfere with each other. But modularity holds up only in exactly the conditions where WBC isn't needed, and it breaks down the moment tasks compete for the same joints and the same balance budget, which for a humanoid walking, reaching, and recovering from disturbance is the normal condition, not the exception.
The mathematical core: how WBC structures objectives, priorities, and constraints into a solvable problem
Treating the robot as one coupled system only helps if there's a way to solve for all those objectives at once, and that's what turns WBC from a design philosophy into a working piece of software. The standard approach casts the whole problem as a prioritized constrained optimization, almost always a quadratic program, solved fresh at every control cycle. The structure of that QP is the real design decision: it encodes which behaviors the robot must never sacrifice, like not falling over, and which behaviors it can trade off against each other when it can't have everything, like tracking a hand trajectory exactly while also keeping both feet flat.
Two main ways exist to combine competing tasks inside that QP. Soft prioritization assigns each task a weight in the cost function, so a heavily-weighted task pulls the solution toward itself more strongly, but every task still competes and can still bleed into the others' outcome. Strict prioritization instead projects lower-priority tasks into the nullspace of higher-priority ones, so a foot-placement task, for instance, can never corrupt the balance task sitting above it in the hierarchy, no matter how the weights are tuned.
Both methods rely on inverse dynamics worked out in operational space. The controller takes a desired acceleration in task space, say, how fast the hand should accelerate toward a target, and maps it through the inverse, or more often the pseudo-inverse, of the robot's Jacobian to get the joint accelerations that would produce it. At the same time, the ground reaction forces at each contact point get optimized so that the whole system satisfies the Newton-Euler equations governing its motion, a formulation described in a 2018 filing from Shenzhen Weiteshi Technology. The QP has to satisfy several constraint types at once: each contact point's force has to stay inside its friction cone, every joint has to stay within its torque limits, the solution has to be kinematically reachable, and contact forces can't exceed what the actuators and the contact itself can bear.
One version of this formulation uses a simplified model of the robot's dynamics, the single rigid body dynamics (SRBD) model, which treats the whole robot as one rigid mass with simplified rotational inertia rather than solving the full multi-body dynamics at every step. It trades some fidelity for solvability, a trade-off this piece returns to when real-time computation comes up later. Separately, where a given task sits in the priority hierarchy is a judgment call made by the engineer building the stack, not something the math decides on its own. Get that ordering wrong, and a lower-priority task can become unsolvable in principle, no matter how good the solver is, because the higher-priority tasks above it have already consumed every degree of freedom it needed.
The two-layer MPC + WBC architecture that dominates deployed systems
Solving the full QP with the full dynamic model at every single control step, while also trying to plan several hundred milliseconds into the future, asks too much of any one computation. Deployed systems split the job across two time horizons instead. Model predictive control (MPC) looks ahead over a receding window, typically around 100 milliseconds, and works out where the feet should land and how the center of mass and momentum should move over that window. WBC then takes that plan and, at every control step, roughly every 1 millisecond, works out the joint torques that actually realize it right now, using the robot's full dynamic model.
The split works because each layer is doing the job it's suited for. MPC can reason about footfalls several steps ahead and about how momentum should build and release over that time without ever having to solve for a single joint torque. WBC can solve for every joint torque, satisfying every torque limit and friction cone constraint, without having to think more than one instant ahead. Picture the data flow as a pipeline: state estimation feeds both layers with where the robot currently is, MPC turns that into a short-horizon trajectory and a plan for upcoming contacts, and WBC turns that trajectory into the specific torque commanded at each joint for the current instant, over and over, every millisecond.
A 2025 patent filing from Zhejiang University lays out a concrete version of the upper layer: a nonlinear MPC problem that plans the center-of-mass state, the arm end-effector state, and the foot state together with the control inputs needed to achieve them, all bound by equality and inequality constraints that keep the whole-body motion coordinated. The formulation is built on centroidal dynamics, which folds in linear momentum, angular momentum taken at the center of mass, the contact force at each contact point, and the moment arm connecting the center of mass to each of those contact points. That last piece is what lets an arm swing or a twist at the waist genuinely change how the robot balances, rather than being planned as if the arms were dead weight sitting on top of a separate leg controller. A related criticism, raised in a 2025 filing from Huazhong University of Science and Technology, is that planners which leave upper-body joint motion out of the MPC stage force WBC to compensate for arm and torso movement after the fact, accounting for it only once the plan is already made.
Sensory inputs and the limits of joint torque alone
Both layers of this architecture are only as good as what they're told about the world. State estimation supplies joint positions, joint velocities, which contacts are currently active, and inertial measurements, and both the MPC layer and the WBC layer depend on that stream being accurate and current.
Joint-torque sensing, the most basic input a WBC system can run on, runs into a specific wall once the robot is touching the world at more than one point at a time. When both feet and, say, a hand are all in contact simultaneously, the torques measured at the joints don't tell the controller which contact is producing which force. Several different splits of force across the active contacts could all produce the same joint torques, so torque sensing alone can't tell them apart. Vision could in principle fill that gap, but it carries its own failure mode: whenever the robot is in dense contact with objects or terrain, which is exactly when the information matters most, the robot's own body or the object itself tends to occlude the camera's view of the contact.
A 2025 approach published in Advanced Intelligent Systems (Wiley) takes a different route: a tactile skin sensor network covering the whole body, feeding compliance control, force control, and collision avoidance directly. The QP controller draws on tactile and proximity signals from that skin network, updated at 200 Hz, which resolves the ambiguity that torque sensing alone cannot, without running into the occlusion problem that limits vision. Sensing upgrades require rewriting the controller itself. Folding a new signal like whole-body tactile feedback into the controller means rewriting the QP's constraint set to accept that signal and weight it correctly, which changes the structure of the optimization problem itself, not just the list of inputs feeding it.
Real-time execution constraints and the computational bottlenecks they create
The optimization described so far has to run fast enough to keep up with a robot that can fall over in a fraction of a second, and that requirement runs headlong into how much computation a full WBC solve actually takes. One 2025 generalist WBC deployment (arxiv.org/html/2506.12779) runs its policy at 50 Hz while the low-level control interface underneath it runs at 200 Hz, with the two bridged by LCM (Lightweight Communications and Marshalling). That four-to-one mismatch has to be managed explicitly in software.
A separate bottleneck occurs during training: centroidal momentum, a key quantity in the MPC formulation described earlier, is traditionally computed on the CPU using libraries such as Pinocchio. Reinforcement learning training runs on GPUs across thousands of simulated environments in parallel, so every time that training loop needs a centroidal momentum value, data has to cross from GPU to CPU and back, and that transfer stalls the loop. A 2025 approach from Electronic Science and Technology University's Zhongshan Campus sidesteps this by replacing the online MPC solver with a learned approximator, a residual network trained on biomechanically-referenced human motion data, using a symmetric loss constraint on lower-limb motion to help the network converge. That substantially cuts the compute overhead classical WBC would otherwise carry at deployment.
One robotics company took a different route with its edge-deployed design, announced in May 2026: a 400-million-parameter sparse model with a specialized policy architecture that reaches 300 frames per second of real-time inference on edge hardware. It shows that a large model and fast inference can coexist when the architecture is built end-to-end with speed in mind. None of this erases the underlying trade-off. Running the controller at a lower update rate risks instability whenever the robot's dynamics move fast, and running it at a higher rate demands compute that an untethered robot, carrying its own batteries and processors, may simply not have on board.
Training RL-based WBC policies and the sim-to-real gap for humanoids
Reinforcement learning has become the main way modern WBC policies get trained, largely because GPU-parallelized simulation lets a policy rack up millions of environment interactions, a scale classical optimization has no path to matching. RL can also discover whole-body coordination strategies, like using a trailing arm swing to help recover balance, that are difficult for an engineer to hand-code directly into a QP's cost function. Against that, RL carries real costs: it needs huge numbers of environment interactions to converge, it's highly sensitive to how the reward function is shaped (a poorly designed reward produces a policy that finds some unintended shortcut rather than the intended motion), and a policy trained entirely in simulation tends to degrade once it meets real sensor noise and the small mechanical imperfections every physical robot has.
Humanoids make this worse than it is for simpler platforms. A quadruped's center of mass sits, most of the time, within a stable support polygon formed by its four legs. A humanoid's center of mass is routinely outside its support polygon by design, since that's what walking on two legs actually requires, and the robot has far more degrees of freedom to coordinate while keeping itself from falling. That combination makes WBC balance control for a humanoid considerably more sensitive to the exact physics parameters used in simulation than a quadruped controller needs to be. Robot size tracks the pattern empirically: smaller platforms such as the Unitree G1 transfer from simulation to hardware comparatively well, while the sim-to-real gap is reported to widen substantially for adult-sized robots like the 19-degree-of-freedom H1 and the 27-degree-of-freedom H1-2. Even where transfer succeeds, tracking errors of several centimeters tend to persist, and errors at that scale are enough to compromise the policy's original control interfaces.
HOVER, presented at ICRA 2025 on Unitree hardware, has become the baseline much of the field now measures against: a single neural whole-body controller unified across multiple behavior modes, with zero-shot transfer of its low-level policy validated directly on physical robots and shown to produce stable locomotion under a range of manipulation commands. ExBody2 illustrates a different piece of the solution, showing what data curation and teacher-student training look like in practice when the goal is narrowing the sim-to-real gap. Together they mark two separate axes of progress: one on how general a single controller can be, the other on how faithfully a policy trained on curated reference motion survives the jump to hardware.
Motion retargeting and data sourcing as preconditions for WBC training
None of the training described above can start until human motion gets converted into something the robot's own body can execute, and the quality of that conversion limits everything downstream of it. Motion capture datasets like AMASS, LaFan1, and OMOMO are the default source, and they're clean: collected under controlled conditions with consistent, well-understood kinematics. That same control is also their limitation. They don't cover the kind of motion data a deployed system actually has to contend with, which includes noisy teleoperation input, artifacts from text-to-motion generation, and errors introduced by estimating motion from a single monocular video feed. FAST, published by BeingBeyond, Wuhan University, and Peking University, frames that distribution shift, the gap between clean motion-capture data and the messy references a real system encounters, as the central unsolved challenge standing in front of general-purpose WBC.
Retargeting itself, the step that takes a human motion reference and converts it into something a robot's joints and link lengths can actually produce, isn't a solved problem either. Standard retargeting methods struggle to hold onto both the style of the original motion and the precise geometry of whatever interaction it involves at the same time, a tension that gets sharper still in multi-robot scenarios where more than one body has to execute coordinated motion from the same reference. Every layer of the architecture described in this piece, the QP's structure, the split between the slower and faster control loops, the sensing stream, the compute budget, the RL training loop, ultimately rests on how well that first conversion from human motion to robot-feasible reference was done.
Sources
- ExBody2: Advanced Expressive Humanoid Whole-Body Control
Provided the ExBody2 example of teacher-student training and data curation as a method for narrowing the sim-to-real gap.
- General Humanoid Whole-Body Control via Pretraining and Fast Adaptation
Cited as the source framing distribution shift between clean motion-capture data and noisy real-world references as the central challenge for general-purpose WBC.
- Real‐Time Control of a Humanoid Robot for Whole‐Body Tactile Interaction - Armleder - 2025 - Advanced Intelligent Systems - Wiley Online Library
Described the whole-body tactile skin sensor network approach that resolves force-ambiguity at 200 Hz without occlusion problems.
- Humanoid Locomotion and Manipulation: Current Progress and Challenges in Control, Planning, and Learning *co-corresponding authors
Informed the discussion of sim-to-real gap differences between smaller platforms like Unitree G1 and adult-sized robots like H1 and H1-2.
- A Survey of Behavior Foundation Model: Next-Generation Whole-Body Control Systemof Humanoid Robots
Provided framing for WBC as a behavior foundation model system and context on unified whole-body control architectures.


