The HKD-MPC is a nonlinear MPC controller for agile and versatile quadruped locomotion. It enables highly dynamic jumping and rapid gait transition in one framework, without the need to switch between multiple controllers. The HKD-MPC has been tested on Unitree A1 and MIT Mini Cheetah. This repo contains the implementation for the MIT Mini Cheetah.
This implementation uses Eigen for linear algegra, LCM for communications to low-level controllers, and boost for reading configuration files. A customized Hybrid-Systems DDP (HS-DDP) solver is employed to solve the nonlinear trajectory optimization problem. A C++ implementation of HS-DDP is included in this repo and can be found here.
Once Eigen and LCM are successfully installed, generate necessary lcm types
cd scripts
./make_types.sh
To build the HKDMPC controller
mkdir build && cd build
cmake ..
make -j4
To run the HKDMPC controller
cd build
HKDMPC/hkdmpc_run
Instructions coming soon
[1] Li, H., & Wensing, P. M. (2020). Hybrid systems differential dynamic programming for whole-body motion planning of legged robots. IEEE Robotics and Automation Letters, 5(4), 5448-5455.
[2] Li, H., Zhang, T., Yu, W., & Wensing, P. M. (2022). Versatile Real-Time Motion Synthesis via Kino-Dynamic MPC with Hybrid-Systems DDP. arXiv preprint arXiv:2209.14138.