legged_control  by qiayuanl

NMPC-WBC stack for legged robots, leveraging OCS2 and ros-controls

created 3 years ago
1,359 stars

Top 30.2% on sourcepulse

GitHubView on GitHub
Project Summary

This repository provides a framework for legged robot control, focusing on Nonlinear Model Predictive Control (NMPC), Whole-Body Control (WBC), state estimation, and sim2real deployment. It targets researchers and engineers working with legged robots, offering a high-performance, easy-to-use baseline for model-based locomotion control.

How It Works

The framework integrates NMPC and WBC using the OCS2 library for trajectory optimization and ros-controls for hardware interfacing. The NMPC component solves an optimization problem to determine optimal system states and inputs, considering constraints like friction cones and foot-ground interaction. The WBC then translates these optimized states and inputs into joint torques, with low-gain PD control for improved tracking and shock absorption. A Kalman filter estimates the robot's base position and velocity.

Quick Start & Requirements

  • Installation: Clone the repository and compile specific OCS2 dependencies (OCS2, Pinocchio, hpp-fcl, ocs2_robotic_assets). Compile ocs2_legged_robot_ros and other packages using catkin build.
  • Prerequisites: ROS Noetic, catkin tools, git, sudo apt install liburdfdom-dev liboctomap-dev libassimp-dev, ros-noetic-rqt-controller-manager.
  • Setup: Estimated setup time is around 10 minutes for compilation. An external computing device (e.g., Intel NUC) is recommended for NMPC performance.
  • Links: OCS2, Pinocchio, hpp-fcl.

Highlighted Details

  • Claims to be a high-performing open-source MPC control framework for legged robots.
  • Designed for quick deployment on Unitree A1 robots (within hours).
  • Easily adaptable to custom robots via the ros-control interface.
  • Supports sim2real deployment.

Maintenance & Community

This project is not supported anymore. The authors are developing a new framework and are not actively working on this repository.

Licensing & Compatibility

The README does not explicitly state a license. However, dependencies like OCS2, Pinocchio, and hpp-fcl are typically under permissive licenses (e.g., BSD, MIT), suggesting potential compatibility with commercial use.

Limitations & Caveats

The project is explicitly marked as unsupported and no longer maintained. Users should be aware that there will be no further updates or bug fixes.

Health Check
Last commit

5 months ago

Responsiveness

1 day

Pull Requests (30d)
0
Issues (30d)
0
Star History
121 stars in the last 90 days

Explore Similar Projects

Feedback? Help us improve.