Template Class LandmarkSensorModel
Defined in File landmark_sensor_model.hpp
Class Documentation
-
template<class LandmarkMap, class StateType>
class LandmarkSensorModel Generic landmark model for discrete detection sensors (both 2D and 3D).
This sensor model is a generalization of the Sensor Model with Known Correspondences described in Probabilistic Robotics thrun2005probabilistic, Chapter 6.6. This version has been extended to support landmark detection in 3D even when the robot is constrained to 2D motion. The importance weight function models detections as having two components that can be independently measured: range and bearing.
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 weight_type = double
Weight type of the particle.
-
using measurement_type = std::vector<LandmarkPositionDetection>
Measurement type of the sensor, detection position in robot frame.
-
using map_type = LandmarkMap
Map representation type.
-
using param_type = LandmarkModelParam
Parameter type that the constructor uses to configure the beam sensor model.
Public Functions
-
inline explicit LandmarkSensorModel(param_type params, LandmarkMap landmark_map)
Constructs a LandmarkSensorModel instance.
- Parameters:
params – Parameters to configure this instance. See beluga::BeamModelParams 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 position detections.
- Parameters:
detections – 2D lidar hit points in the reference frame of filter particles.
- Returns:
a state weighting function satisfying Beluga named requirements: StateWeightingFunction and borrowing a reference to this sensor model (and thus their lifetime are bound).