[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:
mrpt::slam::CMetricMapBuilder : A virtual base for both ICP and RBPF-based SLAM.
mrpt::slam::CMonteCarloLocalization2D : Particle filter-based (Monte Carlo) localization for a robot in a planar scenario.
mrpt::maps::CMultiMetricMap : The most versatile kind of metric map, which contains an arbitrary number of any other maps.
Kalman Filters-based Range-Bearing SLAM, in 2D and 3D: See mrpt::slam::CRangeBearingKFSLAM and mrpt::slam::CRangeBearingKFSLAM2D.
Data association: The NN and the JCBB algorithms, as very generic templates. See
data_association.h
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
// 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); void mrpt::slam::registerAllClasses_mrpt_slam();
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
void mrpt::slam::registerAllClasses_mrpt_slam()
Forces manual RTTI registration of all serializable classes in this namespace.
Should never be required to be explicitly called by users, except if building MRPT as a static library.