Requirements for a motion model to be used in a Beluga ParticleFilter
.
A type T
satisfies the MotionModel
requirements if the following is satisfied:
T::state_type
is a valid type, representing a particle state.T::control_type
is a valid type, representing a control action to condition the motion model.Given:
cp
of T
.u
of T::control_type
(or convertible type U
).Then:
cp(u)
returns a callable satisfying Beluga named requirements: StateSamplingFunction for T::state_type
.Requirements for a callable to sample a motion distribution when propagating particle states in a Beluga ParticleFilter
.
A type F
satisfies the StateSamplingFunction
requirements for some state type S
if:
Given:
fn
of F
.s
of S
.e
satisfying URNG requirements.Then:
fn(s, e)
returns another sampled state ss
of S
.