An implementation of the Iterative Linear Quadratic Regulator (iLQR) method to control nonlinear dynamical systems.
This project was developed as part of the course "Introduction to Robotics" at the École Normale Supérieure (ENS) Paris. The report of the project can be found here.
inverted-pendulum.mov
cartpole.mov
The use of miniconda is recommended to manage the dependencies. To install the dependencies, run the following command:
conda env create -f ilqr_demo_env.yml
To activate the environment, run:
conda activate ilqr_demo
This project uses maturin as the build system for the Rust and Python bindings. It can be installed directly using pip
:
pip install maturin
To build the Rust code and install it directly as a Python package in the current ilqr_demo
virtual environment, run:
maturin develop --release
You can then take a look at the code demos in the python/examples
directory. Be sure to select the correct virtual environment before running the demos.
The following examples are implemented in the python/examples
directory. A checkmark indicates that the example can be successfully solved at the moment:
- Inverted Pendulum: works with a number of pendulums
Nb_pendulum
equal to 1, 2 - Cartpole