Code Monkey home page Code Monkey logo

libsia's Introduction

libSIA - Model-based Stochastic Estimation and Control

pipeline status codecov

Documentation and tutorials

Sia is a C++/Python library for model-based stochastic estimation and optimal control. The current scope is on unconstrained continuous state and action vector spaces. Due to the focus on stochastic models, belief and dynamical systems are first-class representations. Algorithms included with the library are general purpose and can be applied to many different applications.

Features

  • Finite horizon model predictive control (MPC) including LQR, iLQR, and model predictive path integrals (MPPI).
  • Bayesian estimation including Kalman, extended Kalman, and particle filters.
  • Markov dynamical systems including nonlinear/Gaussian, linear/Gaussian, and their discrete/continuous time variants.
  • Distributions for representing belief including Gaussian, Dirichlet, uniform, categorical, particle, Kernel densities (KDE), Gaussian mixture models (GMM), Gaussian mixture regression (GMR), Gaussian Process Regression (GPR), and Gaussian Process Classification (GPC).
  • Built-in constrained Gradient Descent and Bayesian Optimization.
  • Math functions for Runge-Kutta integration, SVD-based matrix inversion.
  • Minimal dependencies in the core library (Eigen, glog).
  • Python bindings with Pybind11.
  • C++ and Python examples and tutorials.
  • Extensive unit tests with gtest.
  • BSD-3 permissive license.

Gallery

Chaotic Lorenz attractor particle filter estimation Celestial navigation with iLQR Underactuated cartpole control with iLQR, MPPI

Build

  • Install Docker. Check the included Dockerfile for project dependencies.
  • Build the Docker container using scripts/run --build.
  • Launch the Docker container using scripts/run --bash.
  • Build and install the C++ package with cmake and make.
mkdir build && cd build
cmake ..
make && make install
make test
  • Build and install the Python bindings with pip (C++ library must be installed first in previous step). In the root directory, run
pip install --upgrade .

Documentation

  • Documentation is hosted on gitlab pages.
  • It is provided with Sphinx, and built to public/. It can be built with
cd build
cmake ..
make docs
  • Tutorials and in-depth usage are provided in docs/notebooks.

Examples

  • C++ examples are built by default with Cmake to bin. Supplemental jupyter notebooks and source are found in examples.

libsia's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

geonhee-lee

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.