MRPT  2.0.2
Classes | Namespaces | Modules | Typedefs | Enumerations | Functions
[mrpt-slam]

Detailed Description

SLAM and PF-localization algorithms.

Back to list of all libraries | See all modules

Library `mrpt-slam`

[New in MRPT 2.0.0]

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

    sudo apt install libmrpt-slam-dev

See: Using MRPT from your CMake project

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.

Collaboration diagram for [mrpt-slam]:

Classes

class  mrpt::detectors::CDetectorDoorCrossing
 
class  mrpt::maps::CRBPFParticleData
 Auxiliary class used in mrpt::maps::CMultiMetricMapPDF. More...
 
class  mrpt::slam::CGridMapAligner
 A class for aligning two multi-metric maps (with an occupancy grid maps and a points map, at least) based on features extraction and matching. More...
 
class  mrpt::slam::CICP
 Several implementations of ICP (Iterative closest point) algorithms for aligning two point maps or a point map wrt a grid map. More...
 
struct  mrpt::slam::map_keyframe_t
 Map keyframe, comprising raw observations and they as a metric map. More...
 
class  mrpt::slam::CIncrementalMapPartitioner
 Finds partitions in metric maps based on N-cut graph partition theory. More...
 
struct  mrpt::slam::TMetricMapAlignmentResult
 Used as base class for other result structures of each particular algorithm in CMetricMapsAlignmentAlgorithm derived classes. More...
 
class  mrpt::slam::CMetricMapsAlignmentAlgorithm
 A base class for any algorithm able of maps alignment. More...
 
class  mrpt::slam::CMonteCarloLocalization2D
 Declares a class that represents a Probability Density Function (PDF) over a 2D pose (x,y,phi), using a set of weighted samples. More...
 
class  mrpt::slam::CMonteCarloLocalization3D
 Declares a class that represents a Probability Density Function (PDF) over a 3D pose (x,y,phi,yaw,pitch,roll), using a set of weighted samples. More...
 
class  mrpt::slam::COccupancyGridMapFeatureExtractor
 A class for detecting features from occupancy grid maps. More...
 
class  mrpt::slam::CRejectionSamplingRangeOnlyLocalization
 An implementation of rejection sampling for generating 2D robot pose from range-only measurements within a landmarks (beacons) map. More...
 
class  mrpt::slam::PF_implementation< PARTICLE_TYPE, MYSELF, STORAGE >
 A set of common data shared by PF implementations for both SLAM and localization. More...
 
class  mrpt::slam::TKLDParams
 Option set for KLD algorithm. More...
 
struct  mrpt::slam::TMonteCarloLocalizationParams
 The struct for passing extra simulation parameters to the prediction stage when running a particle filter. More...
 

Namespaces

 mrpt::slam
 

Modules

 Metric SLAM algorithms
 
 Data association
 

Typedefs

using mrpt::slam::similarity_func_t = std::function< double(const map_keyframe_t &kf1, const map_keyframe_t &kf2, const mrpt::poses::CPose3D &relPose2wrt1)>
 Type of similarity evaluator for map keyframes. More...
 

Enumerations

enum  mrpt::slam::TICPCovarianceMethod { mrpt::slam::icpCovLinealMSE = 0, mrpt::slam::icpCovFiniteDifferences }
 ICP covariance estimation methods, used in mrpt::slam::CICP::options. More...
 
enum  mrpt::slam::similarity_method_t : uint8_t { mrpt::slam::smMETRIC_MAP_MATCHING = 0, mrpt::slam::smOBSERVATION_OVERLAP, mrpt::slam::smCUSTOM_FUNCTION }
 For use in CIncrementalMapPartitioner. More...
 

Functions

template<class BINTYPE >
bool mrpt::slam::PF_implementation< PARTICLE_TYPE, MYSELF, STORAGE >::PF_SLAM_implementation_gatherActionsCheckBothActObs (const mrpt::obs::CActionCollection *actions, const mrpt::obs::CSensoryFrame *sf)
 Auxiliary method called by PF implementations: return true if we have both action & observation, otherwise, return false AND accumulate the odometry so when we have an observation we didn't lose a thing. More...
 

Observations overlap 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. More...
 
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. More...
 
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. More...
 
double mrpt::slam::observationsOverlap (const mrpt::obs::CSensoryFrame::Ptr &sf1, const mrpt::obs::CSensoryFrame::Ptr &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. More...
 

Typedef Documentation

◆ similarity_func_t

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

Type of similarity evaluator for map keyframes.

For use in CIncrementalMapPartitioner

Definition at line 49 of file CIncrementalMapPartitioner.h.

Enumeration Type Documentation

◆ similarity_method_t

For use in CIncrementalMapPartitioner.

Enumerator
smMETRIC_MAP_MATCHING 
smOBSERVATION_OVERLAP 
smCUSTOM_FUNCTION 

Definition at line 27 of file CIncrementalMapPartitioner.h.

◆ TICPCovarianceMethod

ICP covariance estimation methods, used in mrpt::slam::CICP::options.

Enumerator
icpCovLinealMSE 

Use the covariance of the optimal registration, disregarding uncertainty in data association.

icpCovFiniteDifferences 

Covariance of a least-squares optimizer (includes data association uncertainty)

Definition at line 27 of file CICP.h.

Function Documentation

◆ observationsOverlap() [1/4]

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.

Note
This is used in mrpt::slam::CIncrementalMapPartitioner

Definition at line 26 of file observations_overlap.cpp.

References mrpt::obs::CObservation2DRangeScan::buildAuxPointsMap(), mrpt::maps::TMatchingExtraResults::correspondencesRatio, IS_CLASS, mrpt::maps::TMatchingParams::maxAngularDistForCorrespondence, and mrpt::maps::TMatchingParams::maxDistForCorrespondence.

Referenced by eval_similarity_observation_overlap(), and mrpt::slam::observationsOverlap().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ observationsOverlap() [2/4]

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 
)
inline

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

Note
This is used in mrpt::slam::CIncrementalMapPartitioner

Definition at line 34 of file observations_overlap.h.

References mrpt::slam::observationsOverlap().

Here is the call graph for this function:

◆ observationsOverlap() [3/4]

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.

Note
This is used in mrpt::slam::CIncrementalMapPartitioner

◆ observationsOverlap() [4/4]

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

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.

Note
This is used in mrpt::slam::CIncrementalMapPartitioner

Definition at line 58 of file observations_overlap.h.

References mrpt::slam::observationsOverlap().

Here is the call graph for this function:

◆ PF_SLAM_implementation_gatherActionsCheckBothActObs()

template<class PARTICLE_TYPE , class MYSELF , mrpt::bayes::particle_storage_mode STORAGE>
template<class BINTYPE >
bool mrpt::slam::PF_implementation< PARTICLE_TYPE, MYSELF, STORAGE >::PF_SLAM_implementation_gatherActionsCheckBothActObs ( const mrpt::obs::CActionCollection actions,
const mrpt::obs::CSensoryFrame sf 
)

Auxiliary method called by PF implementations: return true if we have both action & observation, otherwise, return false AND accumulate the odometry so when we have an observation we didn't lose a thing.

On return=true, the "m_movementDrawer" member is loaded and ready to draw samples of the increment of pose since last step. This method is smart enough to accumulate CActionRobotMovement2D or CActionRobotMovement3D, whatever comes in.

Definition at line 46 of file PF_implementations.h.




Page generated by Doxygen 1.8.14 for MRPT 2.0.2 Git: 9b4fd2465 Mon May 4 16:59:08 2020 +0200 at lun may 4 17:26:07 CEST 2020