Make an Upkie to stand upright by closed-loop model predictive control.
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_balancerAlternatively, you should be able to install the packages listed in the environment file from PyPI.
To run in simulation, clone the upkie repository and run:
./start_simulation.shActivate your conda environment and run the agent by:
python run_agent.pyThis 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.
This agent can export a pixi environment to your Upkie using pixi-pack. If you don't have pixi yet, you will need to install it first. Then, to pack an environment from your computer, run:
make pack_envThis will create an environment.tar archive in the current directory. You can upload it to your Upkie by make upload and unpack it from the agent's remote directory by:
your_user@your_upkie:~/mpc_balancer$ make unpack_env
If pixi-pack is not installed on your Upkie, you can download the pixi-pack-aarch64-unknown-linux-musl binary from the pixi-pack release page. Finally, activate the environment and run the agent:
conda activate mpc_balancer
python mpc_balancer/run.py- 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.