[mrpt-slam]

SLAM and PF-localization algorithms

Library mrpt-slam

This library is part of MRPT and can be installed in Debian-based systems with:

sudo apt install libmrpt-slam-dev

Read also how to import MRPT into your CMake scripts.

Interesting stuff in this library:

See the full list of classes in mrpt::slam. Note that there are many classes in that namespace not in the library mrpt-slam, but in libraries mrpt-slam depends on. However, in you set mrpt-slam as a dependence of your project, you can be safe all mrpt::slam classes will be available to you.

See also: For Graph-SLAM, see the namespace mrpt::graphslam in the library mrpt-graphslam.

Library contents

// namespaces

namespace mrpt::slam;
    namespace mrpt::slam::detail;

// typedefs

typedef std::function<double(const map_keyframe_t&kf1, const map_keyframe_t&kf2, const mrpt::poses::CPose3D&relPose2wrt1)> mrpt::slam::similarity_func_t;

// enums

enum mrpt::slam::TICPCovarianceMethod;
enum mrpt::slam::similarity_method_t;

// structs

struct mrpt::slam::TMetricMapAlignmentResult;
struct mrpt::slam::TMonteCarloLocalizationParams;
struct mrpt::slam::map_keyframe_t;

// classes

class mrpt::detectors::CDetectorDoorCrossing;
class mrpt::slam::CGridMapAligner;
class mrpt::slam::CICP;
class mrpt::slam::CIncrementalMapPartitioner;
class mrpt::slam::CMetricMapsAlignmentAlgorithm;
class mrpt::slam::CMonteCarloLocalization2D;
class mrpt::slam::CMonteCarloLocalization3D;
class mrpt::slam::COccupancyGridMapFeatureExtractor;
class mrpt::maps::CRBPFParticleData;
class mrpt::slam::CRejectionSamplingRangeOnlyLocalization;

template <
    class PARTICLE_TYPE,
    class MYSELF,
    mrpt::bayes::particle_storage_mode STORAGE
    >
class mrpt::slam::PF_implementation;

class mrpt::slam::TKLDParams;

// global functions

double mrpt::slam::observationsOverlap(const mrpt::obs::CObservation* o1, const mrpt::obs::CObservation* o2, const mrpt::poses::CPose3D* pose_o2_wrt_o1 = nullptr);
double mrpt::slam::observationsOverlap(const mrpt::obs::CObservation::Ptr& o1, const mrpt::obs::CObservation::Ptr& o2, const mrpt::poses::CPose3D* pose_o2_wrt_o1 = nullptr);
double mrpt::slam::observationsOverlap(const mrpt::obs::CSensoryFrame& sf1, const mrpt::obs::CSensoryFrame& sf2, const mrpt::poses::CPose3D* pose_sf2_wrt_sf1 = nullptr);

Typedefs

typedef std::function<double(const map_keyframe_t&kf1, const map_keyframe_t&kf2, const mrpt::poses::CPose3D&relPose2wrt1)> mrpt::slam::similarity_func_t

Type of similarity evaluator for map keyframes.

For use in CIncrementalMapPartitioner

Global Functions

double mrpt::slam::observationsOverlap(
    const mrpt::obs::CObservation* o1,
    const mrpt::obs::CObservation* o2,
    const mrpt::poses::CPose3D* pose_o2_wrt_o1 = nullptr
    )

Estimates the “overlap” or “matching ratio” of two observations (range [0,1]), possibly taking into account their relative positions.

This is used in mrpt::slam::CIncrementalMapPartitioner

double mrpt::slam::observationsOverlap(
    const mrpt::obs::CObservation::Ptr& o1,
    const mrpt::obs::CObservation::Ptr& o2,
    const mrpt::poses::CPose3D* pose_o2_wrt_o1 = nullptr
    )

Estimates the “overlap” or “matching ratio” of two observations (range [0,1]), possibly taking into account their relative positions.

This is used in mrpt::slam::CIncrementalMapPartitioner

double mrpt::slam::observationsOverlap(
    const mrpt::obs::CSensoryFrame& sf1,
    const mrpt::obs::CSensoryFrame& sf2,
    const mrpt::poses::CPose3D* pose_sf2_wrt_sf1 = nullptr
    )

Estimates the “overlap” or “matching ratio” of two set of observations (range [0,1]), possibly taking into account their relative positions.

This method computes the average between each of the observations in each SF. This is used in mrpt::slam::CIncrementalMapPartitioner