Giter VIP home page Giter VIP logo

pf's Introduction

PF: a library for fast particle filtering!

DOI DOI

This is a template library for particle filtering. Templated abstract base classes for different particle filters are provided (e.g. the Bootstrap Filter, the SISR filter, the Auxiliary Particle Filter, the Rao-Blackwellized particle filter), as well as non-abstract (but indeed templated) base classes for closed-form filtering algorithms (e.g. Kalman Filter, Hidden Markov Model filter, etc.).

Once you have a certain model in mind, all you have to do is make it into a class that inherits from the filter you want to use.

Dependencies

This code makes use of the following libraries:

Also, your compiler must enable C++17.

Installation

Option 1: Install with CMake

git clone this Github repostory, cd into the directory where everything is saved, then run the following commands:

mkdir build && cd build/
cmake .. -DCMAKE_INSTALL_PREFIX:PATH=/usr/local
sudo cmake --build . --config Release --target install --parallel

You may subsitute another directory for /usr/local, if you wish. This will also build unit tests that can be run with the following command (assuming you're still in build/):

./test/pf_test

Note: for this to method work, you will need to install Catch2 "system wide" so that its *.cmake files are installed as well. To do this, click here.

Option 2: Drag-and-drop .h files

This is a header-only library, so there will be no extra building necessary. If you just want to copy the desired header files from include/pf into your own project, and build that project by itself, that's totally fine. There is no linking necessary, either. If you go this route, though, make sure to compile with C++17 enabled. Note, also, that this code all makes use of Eigen v3.3 and Boost v1.65.1. Unit tests use the Catch2 v2.9.2 library.

Examples

Don't know how to use this? No problem. Check out the examples sub-directory. This is a stand-alone cmake project, so you can just copy this sub-directory anywhere you like, and start editing.

For example, copy to Desktop and have at it:

cp -r ~/pf/examples/ ~/Desktop/
cd Desktop/examples/
mkdir build && cd build
cmake ..
make

If there are no error messages, you will have an executable named pf_example in that same directory. Running it without command line arguments will prompt you for arguments and tell you how it can be used.

Contributing

Want to contribute to this project? Great! Click here for details on how to do that.

Paper

A full-length tutorial paper is available here, and a shorter introduction paper is available here.

Citation

Click the "DOI" link above. Or, if you're impatient, click 'here' for a Bibtex citation.

pf's People

Contributors

tbrown122387 avatar trb5me avatar

Watchers

James Cloos avatar

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.