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.ymlTo activate the environment, run:
conda activate ilqr_demoThis project uses maturin as the build system for the Rust and Python bindings. It can be installed directly using pip:
pip install maturinTo build the Rust code and install it directly as a Python package in the current ilqr_demo virtual environment, run:
maturin develop --releaseYou 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_pendulumequal to 1, 2 - Cartpole