Installation
Linux/MacOS
Prerequisites
git
Python 3.11 or higher
Clone the repository and recursively update submodules:
git clone git@github.com:leap-c/leap-c.git
cd leap-c
git submodule update --init --recursive
Python
We work with Python 3.11. If it is not already installed on your system, you can obtain it using deadsnakes:
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt install python3.11
A virtual environment is recommended. For example, to create a virtual environment called .venv
and activate it, run:
pip3 install virtualenv
virtualenv --python=/usr/bin/python3.11 .venv
source .venv/bin/activate
The following steps assume that the virtual environment is activated.
acados
Then change into the acados directory
cd external/acados
and build it as described in the acados documentation. When running the
cmake
command, make sure to include the options -DACADOS_WITH_OPENMP=ON
, -DACADOS_PYTHON=ON
and -DACADOS_NUM_THREADS=1
.
Afterwards, install the python interface of acados.
PyTorch
Install PyTorch as described on the PyTorch website.
To install CPU-only PyTorch you can use:
pip install torch --extra-index-url https://download.pytorch.org/whl/cpu
Install leap-c
To install the package containing minimum dependencies in the root directory of the repository, run:
pip install -e .
For also enabling rendering in some of our examples use:
pip install -e ".[rendering]"
For development, you might want to install all additional dependencies:
pip install -e ".[dev]"
See the pyproject.toml for more information on package configurations.
Troubleshooting
In the troubleshooting tab, we highlight how to fix common problems arising while using leap-c with VS Code.
Windows
We recommend to use WSL (Windows Subsystem for Linux) and then following the guide above. You can then conveniently program on your WSL, e.g., by using VS Code on Windows together with the “Remote Development” extension pack.
Note the installation instructions for acados regarding WSL.
Also note the troubleshooting section for plt.show()
in WSL below.
Testing
To run the tests, use:
pytest tests -vv -s
Linting and Formatting
Only relevant if you want to contribute to the repository. For keeping our code style and our diffs consistent we use the Ruff linter and formatter.
To make this as easy as possible we also provide a pre-commit config for running the linter and formatter automatically at every commit. For enabling pre-commit follow these steps:
Install pre-commit using pip (already done if you installed the additional “[dev]” dependencies of leap-c).
pip install pre-commit
In the leap-c root directory run
pre-commit install
Done! Now every commit will automatically be linted and formatted.