MRPT  1.9.9
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
 Finds partitions in metric maps based on N-cut graph partition theory. 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  map_keyframe_t
 Map keyframe, comprising raw observations and they as a metric map. More...
 
class  PF_implementation
 A set of common data shared by PF implementations for both SLAM and localization. More...
 
struct  TAuxDataRecursiveJCBB
 
struct  TDataAssociationResults
 The results from mrpt::slam::data_association. 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...
 

Typedefs

using 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  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...
 
enum  similarity_method_t : uint8_t { smMETRIC_MAP_MATCHING = 0, smOBSERVATION_OVERLAP, smCUSTOM_FUNCTION }
 For use in CIncrementalMapPartitioner. 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 CMatrixDynamic< T > &Z_observations_mean, const CMatrixDynamic< T > &Y_predictions_mean, const CMatrixDynamic< 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::CMatrixDynamic< T > &Z_observations_mean, const mrpt::math::CMatrixDynamic< T > &Y_predictions_mean, const mrpt::math::CMatrixDynamic< 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...
 
using observation_index_t = size_t
 Used in mrpt::slam::TDataAssociationResults. More...
 
using prediction_index_t = size_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

◆ TICPAlgorithm

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

Enumerator
icpClassic 
icpLevenbergMarquardt 

Definition at line 19 of file CICP.h.

Function Documentation

◆ isCloser()

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

◆ isCloser< metricMaha >()

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

Definition at line 137 of file data_association.cpp.

◆ isCloser< metricML >()

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

Definition at line 143 of file data_association.cpp.

◆ JCBB_recursive()

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

◆ joint_pdf_metric()

template<typename T , TDataAssociationMetric METRIC>
double mrpt::slam::joint_pdf_metric ( const CMatrixDynamic< T > &  Z_observations_mean,
const CMatrixDynamic< T > &  Y_predictions_mean,
const CMatrixDynamic< 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 64 of file data_association.cpp.

References ASSERT_, mrpt::slam::TAuxDataRecursiveJCBB::currentAssociation, mrpt::math::MatrixBase< T, CMatrixDynamic< T > >::det(), mrpt::math::extractSubmatrixSymmetricalBlocksDyn(), mrpt::math::MatrixBase< T, CMatrixDynamic< T > >::inverse_LLt(), 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:

◆ KLF_loadBinFromParticle() [1/5]

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 
)

◆ KLF_loadBinFromParticle() [2/5]

template<>
void mrpt::slam::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".

Definition at line 35 of file CMonteCarloLocalization3D.cpp.

References ASSERT_, mrpt::slam::TKLDParams::KLD_binSize_PHI, mrpt::slam::TKLDParams::KLD_binSize_XY, mrpt::math::TPose3D::pitch, mrpt::slam::detail::TPoseBin3D::pitch, mrpt::math::TPose3D::roll, mrpt::slam::detail::TPoseBin3D::roll, mrpt::round(), mrpt::math::TPose3D::x, mrpt::slam::detail::TPoseBin3D::x, mrpt::math::TPose3D::y, mrpt::slam::detail::TPoseBin3D::y, mrpt::math::TPose3D::yaw, mrpt::slam::detail::TPoseBin3D::yaw, mrpt::math::TPose3D::z, and mrpt::slam::detail::TPoseBin3D::z.

Here is the call graph for this function:

◆ KLF_loadBinFromParticle() [3/5]

template<>
void mrpt::slam::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".

Definition at line 41 of file CMonteCarloLocalization2D.cpp.

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

Here is the call graph for this function:

◆ KLF_loadBinFromParticle() [4/5]

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 46 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::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:

◆ KLF_loadBinFromParticle() [5/5]

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 73 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::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.14 for MRPT 1.9.9 Git: 8fe78517f Sun Jul 14 19:43:28 2019 +0200 at lun oct 28 02:10:00 CET 2019