legged_control
- Software
- Humanoids and robot learning
- Framework
A model-based control stack for legged robots combining nonlinear MPC and whole-body control, built on OCS2 and ros-control for ROS. It is no longer supported by its authors.
- Stale
Source on GitHub: github.com/qiayuanl/legged_control (opens in a new tab). Facts read at commit a7f381c (opens in a new tab).
Licenses
- Code
- BSD-3-Clause (opens in a new tab)
Read by Robotheca from LICENSE (opens in a new tab) (BSD-3-Clause) at commit a7f381c (opens in a new tab), on 16 Oct 2026.
- Commercial use
- Yes
Labels
- StaleNo commit in 12 months: the newest is from 13 Feb 2025.
What it does
- Runs a nonlinear model predictive controller that plans centroidal dynamics, with contact and gait constraints, at each cycle.
- A whole-body controller turns the planned states and inputs into joint torques, sent as feed-forward terms with low-gain PD commands.
- A linear Kalman filter estimates base position and velocity from IMU orientation, acceleration and foot positions.
- Includes simulation via Gazebo and a hardware interface for the Unitree A1, and can be adapted to custom robots through the ros-control interface.
- Gait and goal are commanded separately, with cmd_vel and move_base_simple goals used to drive the robot.
- The authors state the project is no longer supported and point to legged_perceptive for perception-based locomotion.
Written by Robotheca from the project's README (opens in a new tab) at commit a7f381c.
Getting started
- Difficulty
- Advanced
- Hardware it needs, as the project states it
- It targets the Unitree A1 robot and requires ROS (noetic is named in the instructions) and the OCS2 packages built with catkin tools.
- How to start
- The project's README (opens in a new tab)
Maintenance
- Status
- Stale: no commit in 12 months
- Newest commit
- 13 Feb 2025 on master
- Latest release
- None published on GitHub
Checked on GitHub on 16 Oct 2026.
Links
Robots on Robotheca that use it
No robot on Robotheca is linked to it yet. Links come from a robot's robot.yaml, from its dependency files read as text, or from Robotheca's editors.
Robotheca lists software as a reference: nothing is hosted or run here, and every fact links to where it was read.