Main MRPT website > C++ reference for MRPT 1.9.9
Namespaces | Classes | Enumerations | Functions
mrpt::slam Namespace Reference

Namespaces

 detail
 

Classes

class  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  CICP
 Several implementations of ICP (Iterative closest point) algorithms for aligning two point maps or a point map wrt a grid map. More...
 
class  CIncrementalMapPartitioner
 This class can be used to make partitions on a map/graph build from observations taken at some poses/nodes. More...
 
class  CMetricMapBuilder
 This virtual class is the base for SLAM implementations. More...
 
class  CMetricMapBuilderICP
 A class for very simple 2D SLAM based on ICP. More...
 
class  CMetricMapBuilderRBPF
 This class implements a Rao-Blackwelized Particle Filter (RBPF) approach to map building (SLAM). More...
 
class  CMetricMapsAlignmentAlgorithm
 A base class for any algorithm able of maps alignment. More...
 
class  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  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  COccupancyGridMapFeatureExtractor
 A class for detecting features from occupancy grid maps. More...
 
class  CRangeBearingKFSLAM
 An implementation of EKF-based SLAM with range-bearing sensors, odometry, a full 6D robot pose, and 3D landmarks. More...
 
class  CRangeBearingKFSLAM2D
 An implementation of EKF-based SLAM with range-bearing sensors, odometry, and a 2D (+heading) robot pose, and 2D landmarks. More...
 
class  CRejectionSamplingRangeOnlyLocalization
 An implementation of rejection sampling for generating 2D robot pose from range-only measurements within a landmarks (beacons) map. More...
 
struct  TDataAssociationResults
 The results from mrpt::slam::data_association. More...
 
class  PF_implementation
 A set of common data shared by PF implementations for both SLAM and localization. More...
 
class  TKLDParams
 Option set for KLD algorithm. More...
 
struct  TMonteCarloLocalizationParams
 The struct for passing extra simulation parameters to the prediction stage when running a particle filter. More...
 
struct  TAuxDataRecursiveJCBB
 

Enumerations

enum  TICPAlgorithm { icpClassic = 0, icpLevenbergMarquardt }
 The ICP algorithm selection, used in mrpt::slam::CICP::options mrpt_slam_grp. More...
 
enum  TICPCovarianceMethod { icpCovLinealMSE = 0, icpCovFiniteDifferences }
 ICP covariance estimation methods, used in mrpt::slam::CICP::options. More...
 

Functions

template<class PARTICLETYPE , class BINTYPE >
void KLF_loadBinFromParticle (BINTYPE &outBin, const TKLDParams &opts, const PARTICLETYPE *currentParticleValue=nullptr, const mrpt::math::TPose3D *newPoseToBeInserted=nullptr)
 
template<>
void KLF_loadBinFromParticle (mrpt::slam::detail::TPoseBin2D &outBin, const TKLDParams &opts, const CMonteCarloLocalization2D::CParticleDataContent *currentParticleValue, const TPose3D *newPoseToBeInserted)
 Fills out a "TPoseBin2D" variable, given a path hypotesis and (if not set to nullptr) a new pose appended at the end, using the KLD params in "options". More...
 
template<>
void KLF_loadBinFromParticle (mrpt::slam::detail::TPoseBin3D &outBin, const TKLDParams &opts, const CMonteCarloLocalization3D::CParticleDataContent *currentParticleValue, const TPose3D *newPoseToBeInserted)
 Fills out a "TPoseBin3D" variable, given a path hypotesis and (if not set to nullptr) a new pose appended at the end, using the KLD params in "options". More...
 
template<>
void KLF_loadBinFromParticle (detail::TPoseBin2D &outBin, const TKLDParams &opts, const mrpt::maps::CRBPFParticleData *currentParticleValue, const TPose3D *newPoseToBeInserted)
 Fills out a "TPoseBin2D" variable, given a path hypotesis and (if not set to nullptr) a new pose appended at the end, using the KLD params in "options". More...
 
template<>
void KLF_loadBinFromParticle (detail::TPathBin2D &outBin, const TKLDParams &opts, const mrpt::maps::CRBPFParticleData *currentParticleValue, const TPose3D *newPoseToBeInserted)
 Fills out a "TPathBin2D" variable, given a path hypotesis and (if not set to nullptr) a new pose appended at the end, using the KLD params in "options". More...
 
template<typename T , TDataAssociationMetric METRIC>
double joint_pdf_metric (const CMatrixTemplateNumeric< T > &Z_observations_mean, const CMatrixTemplateNumeric< T > &Y_predictions_mean, const CMatrixTemplateNumeric< T > &Y_predictions_cov, const TAuxDataRecursiveJCBB &info, const TDataAssociationResults &aux_data)
 Computes the joint distance metric (mahalanobis or matching likelihood) between two a set of associations. More...
 
template<TDataAssociationMetric METRIC>
bool isCloser (const double v1, const double v2)
 
template<>
bool isCloser< metricMaha > (const double v1, const double v2)
 
template<>
bool isCloser< metricML > (const double v1, const double v2)
 
template<typename T , TDataAssociationMetric METRIC>
void JCBB_recursive (const mrpt::math::CMatrixTemplateNumeric< T > &Z_observations_mean, const mrpt::math::CMatrixTemplateNumeric< T > &Y_predictions_mean, const mrpt::math::CMatrixTemplateNumeric< T > &Y_predictions_cov, TDataAssociationResults &results, const TAuxDataRecursiveJCBB &info, const observation_index_t curObsIdx)
 
Observations overlap functions
double 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 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 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 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...
 

Data association

enum  TDataAssociationMethod { assocNN = 0, assocJCBB }
 Different algorithms for data association, used in mrpt::slam::data_association. More...
 
enum  TDataAssociationMetric { metricMaha = 0, metricML }
 Different metrics for data association, used in mrpt::slam::data_association For a comparison of both methods see paper: More...
 
typedef size_t observation_index_t
 Used in mrpt::slam::TDataAssociationResults. More...
 
typedef size_t prediction_index_t
 Used in mrpt::slam::TDataAssociationResults. More...
 
void data_association_full_covariance (const mrpt::math::CMatrixDouble &Z_observations_mean, const mrpt::math::CMatrixDouble &Y_predictions_mean, const mrpt::math::CMatrixDouble &Y_predictions_cov, TDataAssociationResults &results, const TDataAssociationMethod method=assocJCBB, const TDataAssociationMetric metric=metricMaha, const double chi2quantile=0.99, const bool DAT_ASOC_USE_KDTREE=true, const std::vector< prediction_index_t > &predictions_IDs=std::vector< prediction_index_t >(), const TDataAssociationMetric compatibilityTestMetric=metricMaha, const double log_ML_compat_test_threshold=0.0)
 Computes the data-association between the prediction of a set of landmarks and their observations, all of them with covariance matrices - Generic version with prediction full cross-covariances. More...
 
void data_association_independent_predictions (const mrpt::math::CMatrixDouble &Z_observations_mean, const mrpt::math::CMatrixDouble &Y_predictions_mean, const mrpt::math::CMatrixDouble &Y_predictions_cov, TDataAssociationResults &results, const TDataAssociationMethod method=assocJCBB, const TDataAssociationMetric metric=metricMaha, const double chi2quantile=0.99, const bool DAT_ASOC_USE_KDTREE=true, const std::vector< prediction_index_t > &predictions_IDs=std::vector< prediction_index_t >(), const TDataAssociationMetric compatibilityTestMetric=metricMaha, const double log_ML_compat_test_threshold=0.0)
 Computes the data-association between the prediction of a set of landmarks and their observations, all of them with covariance matrices - Generic version with NO prediction cross-covariances. More...
 

Enumeration Type Documentation

The ICP algorithm selection, used in mrpt::slam::CICP::options mrpt_slam_grp.

Enumerator
icpClassic 
icpLevenbergMarquardt 

Definition at line 22 of file CICP.h.

Function Documentation

template<TDataAssociationMetric METRIC>
bool mrpt::slam::isCloser ( const double  v1,
const double  v2 
)
template<>
bool mrpt::slam::isCloser< metricMaha > ( const double  v1,
const double  v2 
)

Definition at line 142 of file data_association.cpp.

template<>
bool mrpt::slam::isCloser< metricML > ( const double  v1,
const double  v2 
)

Definition at line 148 of file data_association.cpp.

template<typename T , TDataAssociationMetric METRIC>
void mrpt::slam::JCBB_recursive ( const mrpt::math::CMatrixTemplateNumeric< T > &  Z_observations_mean,
const mrpt::math::CMatrixTemplateNumeric< T > &  Y_predictions_mean,
const mrpt::math::CMatrixTemplateNumeric< T > &  Y_predictions_cov,
TDataAssociationResults results,
const TAuxDataRecursiveJCBB info,
const observation_index_t  curObsIdx 
)
template<typename T , TDataAssociationMetric METRIC>
double mrpt::slam::joint_pdf_metric ( const CMatrixTemplateNumeric< T > &  Z_observations_mean,
const CMatrixTemplateNumeric< T > &  Y_predictions_mean,
const CMatrixTemplateNumeric< T > &  Y_predictions_cov,
const TAuxDataRecursiveJCBB info,
const TDataAssociationResults aux_data 
)

Computes the joint distance metric (mahalanobis or matching likelihood) between two a set of associations.

On "currentAssociation": maps "ID_obs" -> "ID_pred" For each landmark ID in the observations (ID_obs), its association in the predictions, that is: ID_pred = associations[ID_obs]

Definition at line 66 of file data_association.cpp.

References ASSERT_, mrpt::slam::TAuxDataRecursiveJCBB::currentAssociation, mrpt::slam::TAuxDataRecursiveJCBB::length_O, M_2PI, metricMaha, metricML, MRPT_UNUSED_PARAM, and mrpt::math::multiply_HCHt_scalar().

Here is the call graph for this function:

template<class PARTICLETYPE , class BINTYPE >
void mrpt::slam::KLF_loadBinFromParticle ( BINTYPE &  outBin,
const TKLDParams &  opts,
const PARTICLETYPE *  currentParticleValue = nullptr,
const mrpt::math::TPose3D newPoseToBeInserted = nullptr 
)
template<>
void mrpt::slam::KLF_loadBinFromParticle ( mrpt::slam::detail::TPoseBin3D outBin,
const TKLDParams opts,
const CMonteCarloLocalization3D::CParticleDataContent *  currentParticleValue,
const TPose3D newPoseToBeInserted 
)
template<>
void mrpt::slam::KLF_loadBinFromParticle ( mrpt::slam::detail::TPoseBin2D outBin,
const TKLDParams opts,
const CMonteCarloLocalization2D::CParticleDataContent *  currentParticleValue,
const TPose3D newPoseToBeInserted 
)
template<>
void mrpt::slam::KLF_loadBinFromParticle ( detail::TPoseBin2D outBin,
const TKLDParams opts,
const mrpt::maps::CRBPFParticleData currentParticleValue,
const TPose3D newPoseToBeInserted 
)

Fills out a "TPoseBin2D" variable, given a path hypotesis and (if not set to nullptr) a new pose appended at the end, using the KLD params in "options".

Definition at line 49 of file CMultiMetricMapPDF_RBPF.cpp.

References ASSERT_, mrpt::slam::TKLDParams::KLD_binSize_PHI, mrpt::slam::TKLDParams::KLD_binSize_XY, mrpt::slam::detail::TPoseBin2D::phi, mrpt::maps::CRBPFParticleData::robotPath, mrpt::utils::round(), mrpt::slam::detail::TPoseBin2D::x, mrpt::math::TPose3D::x, mrpt::slam::detail::TPoseBin2D::y, mrpt::math::TPose3D::y, and mrpt::math::TPose3D::yaw.

Here is the call graph for this function:

template<>
void mrpt::slam::KLF_loadBinFromParticle ( detail::TPathBin2D outBin,
const TKLDParams opts,
const mrpt::maps::CRBPFParticleData currentParticleValue,
const TPose3D newPoseToBeInserted 
)

Fills out a "TPathBin2D" variable, given a path hypotesis and (if not set to nullptr) a new pose appended at the end, using the KLD params in "options".

Definition at line 76 of file CMultiMetricMapPDF_RBPF.cpp.

References mrpt::slam::detail::TPathBin2D::bins, mrpt::slam::TKLDParams::KLD_binSize_PHI, mrpt::slam::TKLDParams::KLD_binSize_XY, mrpt::maps::CRBPFParticleData::robotPath, mrpt::utils::round(), mrpt::math::TPose3D::x, mrpt::math::TPose3D::y, and mrpt::math::TPose3D::yaw.

Here is the call graph for this function:




Page generated by Doxygen 1.8.6 for MRPT 1.9.9 Git: 6d99412 Sat Nov 18 10:43:44 2017 +0100 at sáb nov 18 10:50:13 CET 2017