Template Class LikelihoodFieldModel3

Class Documentation

template<typename GridT, typename PointCloud>
class LikelihoodFieldModel3

Likelihood field sensor model for range finders.

This model relies on a pre-computed likelihood map of the environment. It is less computationally intensive than the beluga::BeamSensorModel because no ray-tracing is required, and it can also provide better performance in environments with non-smooth occupation maps. See Probabilistic Robotics thrun2005probabilistic, Chapter 6.4, for further reference.

Note

This class satisfies SensorModelPage.

Template Parameters:

OpenVDB – grid type.

Public Types

using state_type = Sophus::SE3d

State type of a particle.

using weight_type = double

Weight type of the particle.

using measurement_type = PointCloud

Measurement type given by the interface.

using map_type = GridT

Map representation type.

using param_type = LikelihoodFieldModel3Param

Parameter type that the constructor uses to configure the likelihood field model.

Public Functions

inline explicit LikelihoodFieldModel3(const param_type &params, const map_type &grid)

Constructs a LikelihoodFieldModel3 instance.

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

  • grid – Narrow band Level set grid representing the static map that the sensor model uses to compute a likelihood field for lidar hits and compute importance weights for particle states. Currently only supports OpenVDB Level sets.

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

Returns a state weighting function conditioned on 3D lidar hits.

Parameters:

measurement – 3D lidar measurement containing the hit points and the transform to the origin.

Returns:

a state weighting function satisfying StateWeightingFunctionPage and borrowing a reference to this sensor model (and thus their lifetime are bound).