Main MRPT website > C++ reference for MRPT 1.9.9
data_association_unittest.cpp
Go to the documentation of this file.
1 /* +------------------------------------------------------------------------+
2  | Mobile Robot Programming Toolkit (MRPT) |
3  | http://www.mrpt.org/ |
4  | |
5  | Copyright (c) 2005-2017, Individual contributors, see AUTHORS file |
6  | See: http://www.mrpt.org/Authors - All rights reserved. |
7  | Released under BSD License. See details in http://www.mrpt.org/License |
8  +------------------------------------------------------------------------+ */
9 
11 #include <gtest/gtest.h>
12 
13 using namespace mrpt;
14 using namespace mrpt::slam;
15 using namespace mrpt::utils;
16 using namespace mrpt::math;
17 using namespace std;
18 
19 TEST(DataAssociation, TestNoICs)
20 {
21  // Try to do DA when no individual compatible pairings exist.
22  // Based on test proposed by Mauricio Soto Alvarez:
23  // See:
24  // https://sourceforge.net/tracker/?func=detail&aid=3562885&group_id=205280&atid=993006
25 
26  CMatrixDouble y, y_cov, z;
27  y.setSize(1, 1);
28  y_cov.setSize(1, 1);
29  z.setSize(1, 1);
30 
31  y(0, 0) = 0.0;
32  y_cov(0, 0) = 1.0;
33  z(0, 0) = 10.0;
34 
35  const TDataAssociationMethod dams[2] = {assocNN, assocJCBB};
36  const TDataAssociationMetric damets[2] = {metricMaha, metricML};
37 
38  for (unsigned int da_metric = 0;
39  da_metric < sizeof(damets) / sizeof(damets[0]); ++da_metric)
40  {
41  const TDataAssociationMetric damet = damets[da_metric];
42 
43  for (unsigned int da_method = 0;
44  da_method < sizeof(dams) / sizeof(dams[0]); ++da_method)
45  {
46  const TDataAssociationMethod dam = dams[da_method];
47 
48  TDataAssociationResults DAresults;
50  z, y, y_cov, DAresults, dam, damet, 0.99, true,
51  std::vector<prediction_index_t>(), metricMaha, 0.0);
52 
53  EXPECT_EQ(0u, DAresults.associations.size())
54  << "For da_method=" << da_method
55  << " and da_metric=" << da_metric << endl;
56  }
57  }
58 }
Nearest-neighbor.
Classes for serialization, sockets, ini-file manipulation, streams, list of properties-values, timewatch, extensions to STL.
GLdouble GLdouble z
Definition: glext.h:3872
Mahalanobis distance.
STL namespace.
JCBB: Joint Compatibility Branch & Bound [Neira, Tardos 2001].
This base provides a set of functions for maths stuff.
Definition: CArrayNumeric.h:19
TDataAssociationMetric
Different metrics for data association, used in mrpt::slam::data_association For a comparison of both...
TEST(DataAssociation, TestNoICs)
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...
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
std::map< observation_index_t, prediction_index_t > associations
For each observation (with row index IDX_obs in the input "Z_observations"), its association in the p...
GLenum GLint GLint y
Definition: glext.h:3538
The results from mrpt::slam::data_association.
Matching likelihood (See TDataAssociationMetric for a paper explaining this metric) ...
TDataAssociationMethod
Different algorithms for data association, used in mrpt::slam::data_association.



Page generated by Doxygen 1.8.14 for MRPT 1.9.9 Git: ae4571287 Thu Nov 23 00:06:53 2017 +0100 at dom oct 27 23:51:55 CET 2019