Main MRPT website > C++ reference for MRPT 1.5.6
Classes
Data association

Detailed Description

Collaboration diagram for Data association:

Classes

struct  mrpt::slam::TDataAssociationResults
 The results from mrpt::slam::data_association. More...
 

Data association

enum  mrpt::slam::TDataAssociationMethod { mrpt::slam::assocNN = 0, mrpt::slam::assocJCBB }
 Different algorithms for data association, used in mrpt::slam::data_association. More...
 
enum  mrpt::slam::TDataAssociationMetric { mrpt::slam::metricMaha = 0, mrpt::slam::metricML }
 Different metrics for data association, used in mrpt::slam::data_association For a comparison of both methods see paper: More...
 
typedef size_t mrpt::slam::observation_index_t
 Used in mrpt::slam::TDataAssociationResults. More...
 
typedef size_t mrpt::slam::prediction_index_t
 Used in mrpt::slam::TDataAssociationResults. More...
 
void SLAM_IMPEXP mrpt::slam::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 SLAM_IMPEXP mrpt::slam::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...
 

Typedef Documentation

◆ observation_index_t

Used in mrpt::slam::TDataAssociationResults.

Definition at line 50 of file data_association.h.

◆ prediction_index_t

Used in mrpt::slam::TDataAssociationResults.

Definition at line 51 of file data_association.h.

Enumeration Type Documentation

◆ TDataAssociationMethod

Different algorithms for data association, used in mrpt::slam::data_association.

Enumerator
assocNN 

Nearest-neighbor.

assocJCBB 

JCBB: Joint Compatibility Branch & Bound [Neira, Tardos 2001].

Definition at line 34 of file data_association.h.

◆ TDataAssociationMetric

Different metrics for data association, used in mrpt::slam::data_association For a comparison of both methods see paper:

  • J.L. Blanco, J. Gonzalez-Jimenez, J.A. Fernandez-Madrigal, "An alternative to the Mahalanobis distance for determining optimal correspondences in data association", IEEE Transactions on Robotics (T-RO), (2012) DOI: 10.1109/TRO.2012.2193706 Draft: http://ingmec.ual.es/~jlblanco/papers/blanco2012amd.pdf
Enumerator
metricMaha 

Mahalanobis distance.

metricML 

Matching likelihood (See TDataAssociationMetric for a paper explaining this metric)

Definition at line 44 of file data_association.h.

Function Documentation

◆ data_association_full_covariance()

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

Implemented methods include (see TDataAssociation)

  • NN: Nearest-neighbor
  • JCBB: Joint Compatibility Branch & Bound [Neira, Tardos 2001]

With both a Mahalanobis-distance or Matching-likelihood metric. For a comparison of both methods, see paper:

  • J.L. Blanco, J. Gonzalez-Jimenez, J.A. Fernandez-Madrigal, "An alternative to the Mahalanobis distance for determining optimal correspondences in data association", IEEE Transactions on Robotics (T-RO), (2012) DOI: 10.1109/TRO.2012.2193706 Draft: http://ingmec.ual.es/~jlblanco/papers/blanco2012amd.pdf
    Parameters
    Z_observations_mean[IN] An MxO matrix with the M observations, each row containing the observation "mean".
    Y_predictions_mean[IN] An NxO matrix with the N predictions, each row containing the mean of one prediction.
    Y_predictions_cov[IN] An N*OxN*O matrix with the full covariance matrix of all the N predictions.
    results[OUT] The output data association hypothesis, and other useful information.
    method[IN, optional] The selected method to make the associations.
    chi2quantile[IN, optional] The threshold for considering a match between two close Gaussians for two landmarks, in the range [0,1]. It is used to call mrpt::math::chi2inv
    use_kd_tree[IN, optional] Build a KD-tree to speed-up the evaluation of individual compatibility (IC). It's perhaps more efficient to disable it for a small number of features. (default=true).
    predictions_IDs[IN, optional] (default:none) An N-vector. If provided, the resulting associations in "results.associations" will not contain prediction indices "i", but "predictions_IDs[i]".
    See also
    data_association_independent_predictions, data_association_independent_2d_points, data_association_independent_3d_points

Definition at line 273 of file data_association.cpp.

References ASSERT_, mrpt::slam::TDataAssociationResults::associations, mrpt::slam::assocJCBB, mrpt::slam::assocNN, mrpt::math::chi2inv(), mrpt::slam::TDataAssociationResults::clear(), mrpt::slam::TDataAssociationResults::distance, mrpt::math::CMatrixTemplate< T >::fillAll(), mrpt::math::CMatrixTemplate< T >::get_unsafe(), mrpt::slam::TDataAssociationResults::indiv_compatibility, mrpt::slam::TDataAssociationResults::indiv_compatibility_counts, mrpt::slam::TDataAssociationResults::indiv_distances, info, mrpt::math::mahalanobisDistance2AndLogPDF(), mrpt::slam::metricMaha, mrpt::slam::metricML, MRPT_END, MRPT_START, mrpt::math::CMatrixTemplate< T >::setSize(), THROW_EXCEPTION, and val.

Referenced by mrpt::slam::data_association_independent_predictions(), mrpt::slam::CRangeBearingKFSLAM2D::OnGetObservationsAndDataAssociation(), and mrpt::slam::CRangeBearingKFSLAM::OnGetObservationsAndDataAssociation().

◆ data_association_independent_predictions()

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

Implemented methods include (see TDataAssociation)

  • NN: Nearest-neighbor
  • JCBB: Joint Compatibility Branch & Bound [Neira, Tardos 2001]

With both a Mahalanobis-distance or Matching-likelihood metric. For a comparison of both methods, see paper:

  • J.L. Blanco, J. Gonzalez-Jimenez, J.A. Fernandez-Madrigal, "An alternative to the Mahalanobis distance for determining optimal correspondences in data association", IEEE Transactions on Robotics (T-RO), (2012) DOI: 10.1109/TRO.2012.2193706 Draft: http://ingmec.ual.es/~jlblanco/papers/blanco2012amd.pdf
    Parameters
    Z_observations_mean[IN] An MxO matrix with the M observations, each row containing the observation "mean".
    Y_predictions_mean[IN] An NxO matrix with the N predictions, each row containing the mean of one prediction.
    Y_predictions_cov[IN] An N*OxO matrix: A vertical stack of N covariance matrix, one for each of the N prediction.
    results[OUT] The output data association hypothesis, and other useful information.
    method[IN, optional] The selected method to make the associations.
    chi2quantile[IN, optional] The threshold for considering a match between two close Gaussians for two landmarks, in the range [0,1]. It is used to call mrpt::math::chi2inv
    use_kd_tree[IN, optional] Build a KD-tree to speed-up the evaluation of individual compatibility (IC). It's perhaps more efficient to disable it for a small number of features. (default=true).
    predictions_IDs[IN, optional] (default:none) An N-vector. If provided, the resulting associations in "results.associations" will not contain prediction indices "i", but "predictions_IDs[i]".
    See also
    data_association_full_covariance, data_association_independent_2d_points, data_association_independent_3d_points

Definition at line 528 of file data_association.cpp.

References ASSERT_, mrpt::slam::TDataAssociationResults::clear(), mrpt::slam::data_association_full_covariance(), mrpt::slam::metricMaha, mrpt::slam::metricML, MRPT_END, and MRPT_START.

Referenced by TEST().




Page generated by Doxygen 1.8.14 for MRPT 1.5.6 Git: 4c65e8431 Tue Apr 24 08:18:17 2018 +0200 at lun oct 28 01:35:26 CET 2019