BFL ideas

These are ideas for extending BFL. Ideas can be combined, extended, ...

  • BFL visualization software
BFL provides stable code for Bayesian filtering (Kalman filters, particle filters, histogram filters, ...). BFL however lacks easy visualization of the obtained filter results. We believe that user-friendly visualization software will give a boost to the BFL community. The developed software could offer on-line visualization of probability density functions and link the obtained filter results to a 3D simulation software (providing a model of the scene including estimated objects, robots, ...). As a mere suggestion we mention CLAM (http://clam-project.org/). Main CLAM embodies concepts such as Processing, Port, Control, Configuration... making it possible candidate for visualization. CLAM also offers graphical tools to build full applications without coding. Another suggestion is Blender (http://www.blender.org/.) In the past we made some ad-hoc on-line Blender visualization of people tracking (see: http://people.mech.kuleuven.be/~orocos/mfi_videos_experiments/exp_02/opendeurdag2.avi).
It's your task to evaluate and select a tool or multiple tools for on-line visualization and demonstrate that it is suited for on-line of BFL filtering results.
Requirements: Basic C++ knowledge,.
Willing to learn: BFL/CLAM?/Blender? tools,.
Results: BFL visualization software which offers real-time visualization of BFL filtering results.
Mentors: Tinne De Laet, Herman Bruyninckx
  • Continuous Integration
As many other projects, BFL can be configured in various ways (different Matrix libraries, different RNGs, different OS-es, different compilers or compilation options, using ginac or not, ...). This results in an enormous number of possible combinations and makes it sometimes very hard to estimate the impact of changes in the source code. A continuous integration system would allow to detect regressions far earlier and produce stable "first time right" releases. Furthermore, automatic testing would allow the contributors to easily check the impact on the performance of their commits.
It's your task to set-up a continuous integration system for BFL.
Requirements: Basic C++ knowledge.
Results: Continuous integration system for BFL.
Mentors: Tinne De Laet
  • OCL filter components
The Orocos Component Library offers components showing users how Orocos RTT, KDL And BFL can be used. Currently we lack good OCL components for the BFL filters showing best-practice to construct BFL filter components. These OCL components would construct a BFL filter, configure its properties, run the filter and make the results available through dataports. Such components allow easy integration of BFL estimators in Orocos applications. The obtained components should be well documented such that they are useful for Orocos-users.
It's your task to construct OCL components offering BFL estimation functionality.
Requirements: Basic C++ knowledge.
Results: Well tested and documented Orocos components of common BFL filters.
Mentors: Tinne De Laet, Ruben Smits
  • Extend BFL functionality
BFL currently provides stable, basic functionality for Bayesian filtering. Different suggestions are possible to extend BFL functionality:
It's your task to extend BFL estimation functionality.
Requirements: Basic C++ knowledge.
Results: Extra BFL functionality
Mentors: Tinne De Laet
  • Evaluate and redesign BFL/KDL matrix and RNG (Random Number Generator) support
BFL's performance is currently (mainly) limited by the matrix library and random number generators used. BFL offers a matrix wrapper for boost, LTI and Newmat and a RNG wrapper for boost, LTI and Scythe. The matrix libraries offer no real-time matrix calculations and are far from allocation-free. Performance of the RNG libraries remains to be studied. Equipping BFL with a fast, allocation-free matrix library and random number generator will boost its performance. As a mere suggestion we mention Eigen2, a very promising fast and versatile matrix library.
It's your task to equip BFL with a fast, allocation-free matrix library and random number generator and show their performance gain.
Requirements: Basic C++ knowledge.
Results: Towards real-time filtering through the use of a allocation-free matrix library and random number generator.
Mentors: Tinne De Laet, Ruben Smits