legged_control  by qiayuanl

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

Created 3 years ago
1,536 stars

Top 26.8% 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

11 months ago

Responsiveness

Inactive

Pull Requests (30d)
0
Issues (30d)
1
Star History
33 stars in the last 30 days

Explore Similar Projects

Feedback? Help us improve.