Humanoid bipedal walking control repo using NMPC and WBC
Top 80.6% on sourcepulse
This repository provides a framework for humanoid bipedal walking control, leveraging Nonlinear Model Predictive Control (NMPC) and Whole Body Control (WBC) with simulation capabilities in MuJoCo. It is targeted at researchers and engineers working on advanced legged robot locomotion.
How It Works
The system employs a hierarchical control structure. A foot planner, implemented as an OCS2 switch model, manages foot contact states and plans swing foot trajectories using cubic splines. A linear Kalman filter estimates the robot's state, prioritizing measurements from the supporting foot. The core control loop utilizes NMPC, formulated as an optimization problem solved via multiple shooting and Sequential Quadratic Programming (SQP), to generate optimal centroidal momentum, joint positions, and contact forces. This is complemented by WBC, which optimizes accelerations and torques at each time step to satisfy various tasks and constraints, including friction cones and torque limits. A PD controller then executes the computed torques.
Quick Start & Requirements
liburdfdom-dev
, liboctomap-dev
, libassimp-dev
. Compilation is done via catkin build ocs2_legged_robot_ros
with CMAKE_BUILD_TYPE=RelWithDebInfo
. MuJoCo is installed via pip3 install mujoco
. pynput
and scipy
are also required.roslaunch humanoid_controllers load_cheat_controller.launch
. With a normal state estimator: roslaunch humanoid_controllers load_normal_controller.launch
. NMPC module only: roslaunch humanoid_dummy legged_robot_sqp.launch
.Highlighted Details
Maintenance & Community
legged-control
and hunter-bipedal-control
for their NMPC/WBC frameworks and pai-sim
for MuJoCo simulation.Licensing & Compatibility
Limitations & Caveats
RelWithDebInfo
is crucial for performance.7 months ago
1 day