← Back to Research Notes
Research Note

Understanding Humanoid Whole-Body Control

A foundational study into how multi-contact kinematics, balance objectives, and quadratic programming formulate whole-body control in bipedal robots.

ℹ
Example Placeholder: This entry is an educational example and study template for the Robotics Learning Lab. No real experimental results or personal achievements are claimed.

Placeholder Notice: This article is an example placeholder created for the Robotics Learning Lab website template. It contains no invented experimental data, verified research findings, or claims of personal achievement.

Introduction to Whole-Body Control (WBC)

In humanoid and legged robotics, Whole-Body Control (WBC) refers to the framework that coordinates all degrees of freedom (DoFs) simultaneously to achieve multiple tasks, such as:

  1. Maintaining center-of-mass (CoM) balance
  2. Regulating ground reaction forces at contact points
  3. Following desired manipulation trajectories with end-effectors
  4. Staying within physical joint torque and position limits

Unlike decoupled control methods where legs and arms are controlled independently, whole-body controllers consider the full dynamics of the floating-base rigid body system.


The Floating-Base Dynamic Model

A humanoid robot is modeled as a floating base with $n$ actuated internal joints:

M(q) * q̈ + C(q, q̇) * q̇ + g(q) = S^T * τ + J_c(q)^T * λ

Where:

  • q: Generalized coordinates vector containing floating-base pose and joint angles
  • M(q): Generalized inertia matrix
  • C(q, q̇): Coriolis and centrifugal forces
  • g(q): Gravity vector
  • S: Actuation selection matrix (isolating unactuated floating base DoFs)
  • τ: Joint torques
  • J_c: Contact Jacobian
  • λ: Contact force vector

Because the robot base is unactuated (it interacts with the world solely through contact forces), the controller cannot apply direct external forces to the torso without establishing stable ground contacts.


Hierarchical Optimization with Quadratic Programming (QP)

Modern humanoid systems formulate whole-body control as an online optimization problem solved at frequencies between 500 Hz and 1 kHz.

Tasks are arranged in strict or weighted priorities:

Priority Level Objective Mathematical Constraint
Priority 1 (Safety) Joint limits, contact friction cones, torque bounds Hard linear inequalities
Priority 2 (Stability) Center of Mass (CoM) balance and angular momentum Soft quadratic cost
Priority 3 (Task) End-effector tracking (e.g. grasping or pointing) Soft quadratic cost
Priority 4 (Posture) Regularization toward nominal resting joint positions Minimal weight damping

The Friction Cone Constraint

To prevent foot slip, contact forces must remain within the Coulomb friction cone:

|f_tangential| <= μ * f_normal

This ensures the robot does not slip on the support surface during locomotion.


Learning Questions & Next Steps

As part of my first-year coursework and independent study, I am exploring:

  • How does Model Predictive Control (MPC) interact with WBC? (MPC typically plans trajectories over a multi-step horizon using a simplified inverted pendulum model, while WBC tracks those plans instantaneously at high frequency).
  • How do state estimation errors (e.g., IMU drift, contact timing mismatches) propagate through quadratic programming solvers like qpOASES or OSQP?
  • Setting up a minimal 2D planar biped simulation in Python to test balance recovery under external impulses.