StanfordASL / hj_reachability

Hamilton-Jacobi reachability analysis in JAX.
MIT License
115 stars 19 forks source link

hj_reachability: Hamilton-Jacobi reachability analysis in JAX

This package implements numerical solvers for Hamilton-Jacobi (HJ) Partial Differential Equations (PDEs) which, in the context of optimal control, may be used to represent the continuous-time formulation of dynamic programming. Specifically, the focus of this package is on reachability analysis for zero-sum differential games modeled as Hamilton-Jacobi-Isaacs (HJI) PDEs, wherein an optimal controller and (optional) disturbance interact, and the set of reachable states at any time is represented as the zero sublevel set of a value function realized as the viscosity solution of the corresponding PDE.

This package is inspired by a number of related projects, including:

Installation

This package accommodates different JAX versions (i.e., CPU-only vs. JAX with GPU support); if accelerator support is desired you should first install JAX according to the relevant installation instructions. A minimum JAX version requirement is listed in requirements.txt, but in general this package should be compatible with the latest JAX releases (please file an issue if you find that this is no longer the case!).

If you only want CPU computation or have already installed JAX with your preferred accelerator support, you may install this package using pip:

pip install --upgrade hj-reachability

TODOs

Aside from the specific TODOs scattered throughout the codebase, a few general TODOs: