Class LandmarkMap

Class Documentation

class LandmarkMap

Basic 3D landmark map datatype.

Public Types

using landmarks_set_position_data = std::vector<LandmarkPositionDetection>

Vector of landmarks.

using world_pose_type = Sophus::SE3d

Type used to represent poses in the world frame.

Public Functions

inline LandmarkMap(const LandmarkMapBoundaries &boundaries, landmarks_set_position_data landmarks)

Constructor.

Parameters:
  • boundaries – Limits of the map.

  • landmarks – List of landmarks that can be expected to be detected.

inline LandmarkMapBoundaries map_limits() const

Returns the map boundaries.

Returns:

The map boundaries.

inline std::optional<LandmarkPosition3> find_nearest_landmark(const LandmarkPosition3 &detection_position_in_world, const LandmarkCategory &detection_category) const

Finds the nearest landmark to a given detection and returns it’s data.

Parameters:
  • detection_position_in_world – The detection data.

  • detection_category – The category of the detection.

Returns:

The landmark data. nullopt if no landmark was found.

inline std::optional<LandmarkBearing3> find_closest_bearing_landmark(const LandmarkBearing3 &detection_bearing_in_sensor, const LandmarkCategory &detection_category, const world_pose_type &sensor_pose_in_world) const

Finds the landmark that minimizes the bearing error to a given detection and returns its data.

Parameters:
  • detection_bearing_in_sensor – The detection data.

  • detection_category – The category of the detection.

  • sensor_pose_in_world – The pose of the sensor in the world frame.

Returns:

The landmark data. nullopt if no landmark was found.