Template Class BearingSensorModel

Class Documentation

template<class LandmarkMap, class StateType>
class BearingSensorModel

Generic bearing sensor model, for both 2D and 3D state types.

The model only relies on the bearing of a landmark detection relative to the sensor when calculating the updated importance weight. This can be used to support bearing-only measurements, such as feature detections in monocular images.

Note

This class satisfies Beluga named requirements: SensorModel.

Template Parameters:
  • LandmarkMap – class managing the list of known landmarks.

  • StateType – type of the state of the particle.

Public Types

using state_type = StateType

State type of a particle.

using weight_type = double

Weight type of the particle.

using measurement_type = std::vector<LandmarkBearingDetection>

Measurement type of the sensor: vector of landmark detections.

using map_type = LandmarkMap

Map representation type.

using param_type = BearingModelParam

Parameter type that the constructor uses to configure the bearing sensor model.

Public Functions

template<class ...Args>
inline explicit BearingSensorModel(param_type params, LandmarkMap landmark_map)

Constructs a BearingSensorModel instance.

Parameters:
  • params – Parameters to configure this instance. See beluga::BearingModelParam for details.

  • landmark_map – Map of landmarks to be used by the sensor model to compute importance weights for particle states.

inline auto operator()(measurement_type &&detections) const

Returns a state weighting function conditioned on landmark bearing detections.

Parameters:

detections – Landmark bearing detections in the reference frame of particle states.

Returns:

a state weighting function satisfying Beluga named requirements: StateWeightingFunction and borrowing a reference to this sensor model (and thus their lifetime are bound).

inline void update_map(map_type &&map)

Update the sensor model with a new landmark map.