Skip to content

Latest commit

 

History

History
65 lines (44 loc) · 2.81 KB

README.md

File metadata and controls

65 lines (44 loc) · 2.81 KB

LevelSetsPy Library

This codebase implements GPU-accelerated software package for solving initial value hyperbolic partial differential equations, particularly of the evolution form of Cauchy-type Hamilton-Jacobi (HJ) equations. These HJ equations are increasingly attracting attention in the control community for analyzing reachability problems in robotics, transport, biology and other problem domains of late. We focus on safety-critical analysis of automated systems in optimal control and reachability settings. This software package allows easy portability and extensibility to modern libraries for the analyses of safety-critical algorithms for (reinforcement) learning, control, robotics, transport, and flow problems among others.

For the technical details on the theory behind this work, please see this paper:

@article{LevPy,
title   = {A GPU-Accelerated Python Software Package for HJ Reachability Analysis and Level Set Evolutions.},
publisher={Molu, Lekan},
author  = {Molu, Lekan},
howpublished = {\url{https://github.com/robotsorcerer/LevelSetPy}},
note = {Accessed March 31, 2023}
year    = {2023},
}

Installation and Prerequisites

Dependencies

  • It's best to create a virtual or conda environment in python 3.7+ (I used Python 3.8/3.9).

  • All the dependencies listed below are installable via: pip install -r requirements.txt

Dependency Dependency Dependency
Numpy Scipy Cupy
Absl-py Scikit-image Matplotlib

Note: The user should elect to install a cupy version that matches the version of their CUDA installation. Cupy is commented out in the requirements.txt file. Please follow the directions on the cupy install page.

Build and Install

Be sure to activate your conda or virtualven environment first e.g. if your environment is named py39:

	conda activate py39

Then install to the activated environment as follows

python setup.py build --build-lib=/path/to/your-desired/build
pip install -e . 

A separate README.md file is left in the respective folders to guide the reader and user on how to use each subpackage.

Citing this work

If you have found this library of routines and packages useful, please cite it:

@article{LevPy,
title   = {LevelSetPy: A GPU-Accelerated Python Software Package for Resolving Hamilton-Jacobi PDEs and Level Set Evolutions},
author  = {Molu, Lekan},
howpublished = {\url{https://github.com/robotsorcerer/LevelSetPy}},
note = {Accessed March 31, 2023}
year    = {2023},
}