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 explicit 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 explicit LandmarkMap(landmarks_set_position_data landmarks)

Constructor with implicit map boundaries (computed from landmarks).

Note that computing map boundaries from landmarks will effectively constrain the traversable region to the volume delimited by such landmarks. In many cases this is undesirable e.g. when landmarks are scattered in some region of space, when landmarks are distributed on some flat surface such as a wall, when landmarks are located within a small area at some height for visibility, etc. Use with care.

Parameters:

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.