Skip to content

Python proof of concept for Block Cholesky : A Parallel linear system solver for optimal control.

Notifications You must be signed in to change notification settings

A2R-Lab/BCHOL-python

Repository files navigation

BCHOL-python

Python proof of concept for BCHOL: A Parallel linear system solver for optimal control.

Table of Contents

  1. Introduction
  2. Requirements
  3. Installation
  4. Usage
  5. Citing

Introduction

Solves for x in Ax = b, using the Recursive Schur Linear Quadratic Regulator explained in the paper A Parallell Linear System Solver for Optimal Control by Brian E.Jackson. It requires A to be a positive semi-definite matrix to guarantee a good result.

This method is part of the Python implementation of trajectory optimization (trajopt) algorithms and model predictive control (MPC). Learn more about different TrajoptMPC here.

Requirements

Instalation

  • The following libraries (Numpy, Scipy) are included in the requirments.txt and can be downloaded with the following command
git clone https://github.com/A2R-Lab/BCHOL-python.git
pip3 install -r requirements.txt

Usage

If you already have a defined LQR problem in a KKT form in a saved file .json/.csv you can look at solve_load.py for an example of how to load the problem. The program will return the solution in two forms:

  1. Flattened dxul vector
  2. Brian Jackson's format as mentioned in the paper [lambda_i ; x_i; u_i]
python solve_load.py

If you just have an A matrix and a b vector look at solve_build.py for an example of usage. Alternatively, you can use this package as part of our bigger solverhere.

Citing

Author: Yana Botvinnik Contact: ybotvinn@barnard.edu

About

Python proof of concept for Block Cholesky : A Parallel linear system solver for optimal control.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages