Skip to content

ROAM-Lab-ND/CAFE-MPC

Repository files navigation

What CAFE-MPC Can Do

Dependency

This implementation uses Eigen for linear algegra, Pinocchio for analytical derivatives, 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.

Installation instructions for the third-party libraries

  • Pinocchio 2.6.10: Folow the instructions here to install Pinocchio via robotpkg. As a reminder, do NOT forget configuring the environment variables, so that CMake can find Pinocchio while building.

  • LCM1.4.0, Boost1.71

        ./scripts/install_dependencies.sh
    
  • Note: By default, Pinocchio2 would install Eigen3.3.

Build CAFE-MPC

Once Eigen and LCM are successfully installed, generate necessary lcm types

cd scripts
./make_types.sh

To build the MPC controller

mkdir build && cd build
cmake ..
make -j4

So far, you have built the CAFE-MPC controller. It has to function with a simulator and a whole-body controller.

Simulation and Value-Based Whole-Body Controller

We use Cheetah-Software for dynamics simulation. The Value-Based Whole-body controller is implemented in Cheetah-Software as well. To buld Cheetah-Software, you need to install dependencies with the following script

./install_dependencies_cheetah_software.sh

Clone the Cheetah-Software repo:

cd ..
git clone -b -b cafempc_low_level https://github.com/heli-sudoo/Cheetah-Software-He.git Cheetah-Software

Build Cheetah-Software:

cd Cheetah-Software/scripts
./make_types.sh
cd .. 
mkdir build && cd build
cmake ..
make -j4

Run Simulator, VWBC, CAFE-MPC

Open three terminals, one for simulation, one for low-level VWBC, and one for CAFE-MPC.

In the first terminal

cd Cheetah-Software/build
sim/sim

This opens two windows, one for simulation, the other one is a control panel.

In the second terminal,

user/MHPC_LLController/mhpc_llctrl m s

You will see the robot moves its legs to a zero configuration and stand up.

In the third terminal,

cd CAFE-MPC/build
MHPC/mhpc_run

In the control panel, switch the contrl_mode to 2. You will see the robot starts performing locomotion.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published