Skip to content
generated from upkie/new_agent

Model predictive control to balance Upkie wheeled bipeds

License

Notifications You must be signed in to change notification settings

upkie/mpc_balancer

Repository files navigation

MPC balancer

upkie

Make an Upkie to stand upright by closed-loop model predictive control.

Installation

We recommend using Anaconda to install the agent and all its dependencies in a clean environment:

conda env create -f environment.yaml
conda activate mpc_balancer

Alternatively, you should be able to install the packages listed in the environment file from PyPI.

Usage

To run in simulation, clone the upkie repository and run:

./start_simulation.sh

Activate your conda environment and run the agent by:

python run_agent.py

Solvers

This agent only works with QP solvers that support warm starting. At present we only support one solver:

Solver Algorithm License Warm-start
ProxQP Augmented Lagrangian BSD-2-Clause ✔️

You can take a peek at the ProxQP balancer (research code) for more solvers.

Export dependencies to your Upkie

This agent can export a pixi environment to your Upkie using pixi-pack. If you don't have pixi yet, you can install it.

First, create an environment.tar file with the following command:

pixi run pack-to-upkie

Then, upload it to your Upkie and unpack it by:

pixi-pack unpack environment.tar

If pixi-pack is not installed on your Upkie, you can get a pixi-pack-aarch64-unknown-linux-gnu binary from the pixi-pack release page. Finally, activate the environment and run the agent:

source ./activate.sh
python mpc_balancer/run.py

See also

  • PPO balancer: an MLP agent trained for the same task by reinforcement learning.
  • ProxQP balancer: prototype for this agent used in the code for the ProxQP paper. Currently supports more QP solvers.