Hacker News new | past | comments | ask | show | jobs | submit login
Kalman and Bayesian Filters in Python (2018) (github.com/rlabbe)
234 points by r0f1 on April 17, 2019 | hide | past | favorite | 12 comments



This book is quite good. I was recently looking for a more production-ready kalman filters, but the ones I found tend to be either abandoned, lacking lots of features, or not mature code bases. Are there any robust libraries for Kalman filters out there?


GTSAM [1] packs a lot of functionality for robotics projects, including Kalman filters [2]. A product of GTech (Frank Dellaert), a pro is there are many cool projects built on top of it [3], in C++ and Python. A con is GTSAM is not the cleanest, well-architected codebase (although far better than most products of academic labs).

[1] https://bitbucket.org/gtborg/gtsam

[2] https://github.com/borglab/gtsam/tree/develop/examples#kalma...

[3] e.g., https://github.com/gtrll/piper and https://github.com/gtrll/gpmp2


The one quite often used in Robotics + ROS combination is robot_localization (https://github.com/cra-ros-pkg/robot_localization). The library provides implementation for ekf and ukf and in my experience it's quite robust.


SsfPack [1] is a great implementation if you are willing to suffer through Ox.

[1] http://www.ssfpack.com/


Most of SsfPack is now implemented in python statsmodels: https://www.statsmodels.org/stable/statespace.html


Thanks for that! I was not aware of this.

SsfPack will still be faster though and be less memory hungry than Python. On the brief look I had, it also seems that the nonlinear/non-Gaussian simulation methods are not implemented.


I think I've used the OpenCV Kalman filter implementation at some point. Maybe that suits your needs


OpenCV only provides Linear Kalman Filter afaik. For nonlinear estimation you need to use Extended or Unscented (this one is often used in Drone).

I wrote estimation library in Go [1] last year which implements a lot of Kalman Filter alternatives and optimisations + smoothing

https://github.com/milosgajdos83/go-estimate


There is also an excellent series (55 vids!) by Michel van Biezen on Kalman filters:

https://www.youtube.com/watch?v=CaCcOwJPytQ


Much easier to use them in Simulink, but it's good to see alternatives.


I had this book in my backlog for years. The fact that the book is interactive would immensely help me understand the concept.


While Kalman and Bayesian Filters in Python is a superb resource, probably the best out there, my recommendation for anyone new to the field would be to do Sebastian Thrun's free Artificial Intelligence for Robotics course [1] as an intro, then go through Labbe's work afterwards.

Thrun's course is more accessible and even more hands-on than Labbe's content. As a bonus he also covers Particle Filters,PID control, Search and SLAM (which cam out of Thrun's PhD thesis).

[1] https://www.udacity.com/course/artificial-intelligence-for-r...




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: