Stands for Bernoulli Random Finite Set. It is a rust implementation with python bindings of Ristic et.al. tutorial on Bernoulli filters.
A development environment may be activated using
nix develop .
followed by
maturin develop
This will construct a virtual environment in your current directory at .venv
.
Using maturin, development loop is quick. Change some rust or python code, rerun
maturin develop
and you should have an incremental debug build of the project.
Running maturin develop --release
will give that same environment, but
the rust library is compiled in release mode, i.e., speed!
After running maturin develop, you may see a target tracking example using the particle-filter-based bernoulli random finite set on detection measurements using
python -m berrfs.example
Entering a python shell should now give you access to the python module. An example instance of a BerRFS-struct (the Gaussian Sum Filter implementation) can be constructed using
# Python
import berrfs
b = berrfs.example_setup()
on which you can perform prediction steps
b.predict()
and measurement updates
b.update([np.array([1.]), np.array([2.])])
Note that the measurement update performs a prediction step before applying the information from the measurements.
A shell with a python environment with this module compiled in release mode is constructed through instead by running
nix develop .#pyrelease
Now, there is no need to use maturin. The library should already be installed in your python environment. The build is likely to take a few minutes.