Implementing Particle Filters with C++ Ranges
Talkat CppCon 2024 · on Thursday, 2024-09-19· at 15:15· Spruce 3/4, 6700 North Gaylord Rockies Boulevard·
summary
Implements particle filters using C++20/23 ranges, builds a reusable resampling adapter that materializes weights into a discrete_distribution and offers three implementations (coroutine-based generator, pending view_generate, and a custom sample view). Benchmarks show the custom view runs almost no overhead versus a hand-written loop. Supports structure-of-arrays via particle_ref, enables multinomial-with-replacement sampling, KLD stopping and injected-random-particle recovery, and provides code and reproducible benchmarks.
AI-written summary · about
chapters (19)
- 0:00Introduction
- 1:26Particle filters in robotics
- 2:10Particle filter theory
- 4:37C++ Ranges library
- 6:03Particle sets as Ranges
- 7:27State and weight updates
- 8:31Resampling with discrete distribution
- 9:32Sample view adapter
- 13:26Lifetime issues with views
- 16:19Performance with coroutines
- 17:46Custom view from scratch
- 20:35Benchmarking custom view
- 21:19Range adapter closure
- 23:29Testing adapter extensibility
- 25:53Alternative resampling strategies
- 26:58Kidnapped robot recovery
- 27:19Ranges working recommendations
- 28:45Final remarks
- 29:06Q&A
related talks
01h 07mConsensus-Based Interacting Particle Systems and Mean-field PDEs for Optimization and Sampling
32mProbabilistic and Differentiable Programming in Scientific Simulators
12mIterative Methods and High-Dimensional Statistics
54mParallel Algorithms Ranges and oneDPL
01h 07mGeneric Parallel Programming
19mInference Plans for Hybrid Particle Filtering
20mProbabilistic Programming with Stochastic Probabilities
53mC++ Horizons
