Giter VIP home page Giter VIP logo

particle-filter-tutorial's Introduction

Installation

All code is written in Python. Poetry is used to track the package dependencies.

poetry install

Documentation

Details on the algorithms, background information in general and an documentation for all the main scripts can be found in this paper.

Running the code

  • demo_running_example: runs the basic particle filter
  • demo_range_only: runs the basic particle filter with a lower number of landmarks (illustrates the particle filter's ability to represent non-Gaussian distributions).
python src/particle_filter_tutorial/demos/demo_running_example/demo_running_example.py

Whenever running the code, a robot localization problem will be simulated. For most scripts, the visualization below should appear.

alt text

The picture shows a top view of a 2D simulated world. Four landmarks can be observed by the robot (blue rectangles). The landmark positions are given in the map and therefore are used to estimate the tru robot position and orientation (red circle). The particles that together represent the posterior distribution are represented by the green dots.

Besides the standard particle filter, more advanced particle filters are implemented, different resampling schemes and different resampling algorithms are available. This allows for trying many different particle filter is similar settings.

The supported resampling algorithms are:

  • Multinomial resampling
  • Residual resampling
  • Stratified resampling
  • Systematic resampling

Supported resampling schemes are:

  • Every time step
  • Based on approximated effective number of particles
  • Based on reciprocal of maximum particle weight

More advanced particle filters that are supported:

  • Adaptive particle filter
  • Auxiliary particle filter
  • Extended Kalman particle filter

Reference

In case you use code in your work, please cite:

Elfring J, Torta E, van de Molengraft R. Particle Filters: A Hands-On Tutorial. Sensors. 2021; 21(2):438.

particle-filter-tutorial's People

Contributors

jelfring avatar joselfring-tomtom avatar wagenaartje avatar bsugerman 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.