Put a logic analyzer on a Unitree G1 and three signals beat against each other. The motor-current loop fires at roughly 10 kHz. The whole-body controller on the onboard mini-PC fires at 500 Hz. The footstep planner above fires at 40 Hz. Three loops, three clock rates, three different ideas of “now.” The robot’s apparent smoothness is the artifact of those rates being chosen so the slow loop is always wrong but never catastrophically wrong, while the fast loop is always right but only about the small picture.
Yesterday’s issue ended with the manipulator equation, which says how much torque each motor must produce to make the robot accelerate as the planner asked. Today is the follow-up: who tells the motors what to do, and on what schedule. The answer is not “one big loop.” It is a deliberate cascade.
The fastest loop is the oldest. PID, named for its three terms, dates to a 1942 paper by two chemical engineers, Ziegler and Nichols. Given an error, react proportionally, accumulate the bias so it does not stay forever, and damp the response so it does not overshoot. Three numbers to tune. No model required. PID is still the controller on every motor driver chip from Maxon, ST Micro, Texas Instruments, asking thousands of times per second whether the current through the motor coil is the current that produces the torque the next layer asked for. It runs at 5 to 20 kHz because it is simple enough to.
The middle loop is the modern one. Model-predictive control, or MPC, takes the manipulator equation as its model, predicts where the robot will be over the next N steps under a candidate set of torques, scores that prediction against a cost (track this path, respect joint limits, keep foot contact force non-negative), and picks the torques that minimize the cost. Execute the first step, slide the window forward, resolve. On a 2026 humanoid this loop is a quadratic program running at 100 to 500 Hz on a Jetson Thor. The cleanest public example is Unitree’s G1, where the middle loop runs at 500 Hz on the robot’s onboard computer.
The slowest loop is the most familiar in flavor: planning. Where does the next foot land. Which object does the gripper reach for. The behavior or trajectory layer runs at 20 to 50 Hz, has a horizon of seconds, and is where human intent enters the system through a teleoperator, a voice command, or an upstream vision-language model.
The natural question is why three loops rather than one big loop at the fastest rate. Three reasons. The first is compute. A whole-body QP takes a few milliseconds to solve. Running that at 10 kHz would need fifty Jetson Thors in parallel, which no humanoid carries. The second is disturbance rejection. When a robot’s foot lands harder than expected, the bump shows up in the motor current in tens of microseconds. The motor PID, sitting right next to the motor, can react that fast. The MPC, however fast, would still be a few milliseconds behind, which on a seventy-kilogram bipedal robot is the difference between a recovery step and a fall. The third is robustness layering. If the MPC’s model is wrong by ten percent, the inner PID still holds joint torque to spec. If the footstep planner’s prediction is wrong, the MPC still satisfies constraints. The cascade is irreducible because each layer answers a question the next layer cannot ask in time.
There is a counter-camp. Figure’s Helix 02, NVIDIA’s GR00T-WholeBodyControl, and a growing list of academic papers argue the middle and outer loops should collapse into one neural network mapping pixels and joint sensors directly to joint targets at 30 to 200 Hz. Helix 02 already runs that way. But even those systems still have a motor PID running at kilohertz speeds on a different chip, because no one has built a learned policy that wants to be inside the loop for every torque ripple. The fight in 2026 is not learned versus model-based. It is whether the middle loop can be neural while the cascade structure stays.
The Hierarchical Reduced-Order MPC paper (arXiv 2509.04722) is the cleanest public example of the three-rate cascade on a commodity humanoid. Step planner at 40 Hz, whole-body MPC at 500 Hz, motor control underneath, all on the robot’s onboard mini-PC.
The HEX paper (arXiv 2604.07993, April 2026) is the most credible “neural middle” wager so far: it replaces the MPC with a transformer policy at 60 Hz that handles cross-embodiment manipulation across multiple humanoid platforms, while keeping the classical inner loop.
NVIDIA’s Isaac Lab 2.3 released a whole-body control reference design (GR00T-WholeBodyControl) that ships the same three-loop cascade as a standard product. If you want to know what cascade controllers will look like as a default in 2027, this is the bet.
The visualization is a 50 ms timeline of control pulses. Top row, the footstep planner fires every 25 ms. Middle row, the whole-body controller fires every 5 ms. Bottom row, the joint controller fires every 1 ms, with the motor-current controller at 10 kHz as the denser tick band beneath. The width of each pulse is its compute budget. The outer loop’s pulse is wide because the problem is hard but slow. The inner loop’s pulse is narrow because the problem is simple but constant.
The cascade is also a design philosophy. Each layer is allowed to be wrong, briefly, because the layer underneath catches the consequences. It is the same logic that makes the brake on a bicycle separate from the steering: the failure modes are different, the response times are different, and you do not want either subsystem waiting on the other.
Tomorrow closes the foundations week. A typical industrial robot arm has six joints. A human hand has twenty-one. A humanoid hand-and-arm chain has roughly thirty. The math we built this week works for six. It strains at twenty-one. Tomorrow’s first question is where that extra dimensionality comes from. The second is what tendon synergies, the cable trick that lets a 22-DOF humanoid hand be driven by 11 actuators instead of 22, actually buy and what they give up.
Subscribe for tomorrow’s read, we’re walking the robotics supply chain from atoms to algorithms, one weekday at a time.
Sources:
Hierarchical Reduced-Order MPC for Robust Locomotion on Humanoid Robots (arXiv 2509.04722)
Whole-Body MPC of Legged Robots with MuJoCo (arXiv 2503.04613)
Whole-Body Control Framework for Humanoid Robots with Heavy Limbs (arXiv 2506.14278)
HEX, Humanoid-Aligned Experts for Cross-Embodiment Whole-Body Manipulation (arXiv 2604.07993)
Streamline Robot Learning with Whole-Body Control and Enhanced Teleoperation in NVIDIA Isaac Lab 2.3
Ziegler and Nichols, Optimum Settings for Automatic Controllers (1942)
Quick Summary of today’s learning is -
A walking humanoid robot isn’t controlled by one master program. It’s controlled by three programs stacked on top of each other, each running at a different speed. The fastest one lives on a tiny chip right next to each motor and fires about ten thousand times a second, doing a simple job: making sure the electricity flowing through the motor matches what was asked for. The middle one runs on the robot’s onboard computer about five hundred times a second and does the heavy thinking: given where the robot is and where it wants to be, what torque should each joint produce in the next few milliseconds without falling over or crushing anything. The slowest one runs about forty times a second and handles the big picture: where the next footstep lands, which object to reach for. They run at different speeds for three reasons. The hard thinking is too slow to do ten thousand times a second. A disturbance like a foot landing harder than expected has to be caught in microseconds, faster than the thinking layer can react. And if one layer makes a mistake, the layer beneath it catches the consequences before anything breaks. A growing camp wants to replace the middle layer with a neural network, and Figure’s Helix 02 and NVIDIA’s GR00T already do that, but even they keep the fast motor controller untouched. The real fight in 2026 isn’t whether AI will run robots, it’s whether the structure of three loops at three different speeds is something the AI replaces or something the AI just slots into.


