Class CICP::TConfigParams

Nested Relationships

This class is a nested type of Class CICP.

Inheritance Relationships

Base Type

  • public mrpt::config::CLoadableOptions

Class Documentation

class TConfigParams : public mrpt::config::CLoadableOptions

The ICP algorithm configuration data

Algorithms selection

TICPAlgorithm ICP_algorithm = {icpClassic}

The algorithm to use (default: icpClassic). See https://www.mrpt.org/tutorials/programming/scan-matching-and-icp/ for details

TICPCovarianceMethod ICP_covariance_method = {icpCovFiniteDifferences}

The method to use for covariance estimation (Default: icpCovFiniteDifferences)

Correspondence-finding criteria

bool onlyUniqueRobust = {false}

Termination criteria

if this option is enabled only the closest correspondence for each reference point will be kept (default=false).

unsigned int maxIterations = {40}

Maximum number of iterations to run.

double minAbsStep_trans = {1e-6}

If the correction in all translation coordinates (X,Y,Z) is below this threshold (in meters), iterations are terminated (Default:1e-6)

double minAbsStep_rot = {1e-6}

If the correction in all rotation coordinates (yaw,pitch,roll) is below this threshold (in radians), iterations are terminated (Default:1e-6)

RANSAC-step options for mrpt::tfest::se2_l2_robust() if \a

doRANSAC=true

unsigned int ransac_minSetSize = {3}
unsigned int ransac_maxSetSize = {20}
unsigned int ransac_nSimulations = {100}
double ransac_mahalanobisDistanceThreshold = {3.0}
double normalizationStd = {0.02}

RANSAC-step option: The standard deviation in X,Y of landmarks/points which are being matched (used to compute covariances in the SoG)

bool ransac_fuseByCorrsMatch = {true}
double ransac_fuseMaxDiffXY = {0.01}
double ransac_fuseMaxDiffPhi = {0.1 * M_PI / 180.0}

Public Functions

void loadFromConfigFile(const mrpt::config::CConfigFileBase &source, const std::string &section) override
void saveToConfigFile(mrpt::config::CConfigFileBase &c, const std::string &s) const override

Public Members

double thresholdDist = {0.75}

Initial threshold distance for two points to become a correspondence.

double thresholdAng = {0.15 * M_PI / 180.0}
double ALFA = {0.5}

The scale factor for thresholds every time convergence is achieved.

double smallestThresholdDist = {0.1}

The size for threshold such that iterations will stop, since it is considered precise enough.

double covariance_varPoints = {0.02 * 0.02}

This is the normalization constant \( \sigma^2_p \) that is used to scale the whole 3x3 covariance. This has a default value of \( (0.02)^2 \)

, that is, a 2cm sigma. See paper: J.L. Blanco, J. Gonzalez-Jimenez, J.A. Fernandez-Madrigal, “A Robust, Multi-Hypothesis Approach to Matching

Occupancy Grid Maps”, Robotica, vol. 31, no. 5, pp. 687-701, 2013.

bool doRANSAC = {false}

Perform a RANSAC step, mrpt::tfest::se2_l2_robust(), after the ICP convergence, to obtain a better estimation of the pose PDF.

double kernel_rho = {0.07}

Cauchy kernel rho, for estimating the optimal transformation covariance, in meters (default = 0.07m)

bool use_kernel = {true}

Whether to use kernel_rho to smooth distances, or use distances directly (default=true)

double Axy_aprox_derivatives = {0.05}

[LM method only] The size of the perturbance in x & y used to estimate the Jacobians of the square error (default=0.05)

double LM_initial_lambda = {1e-4}

[LM method only] The initial value of the lambda parameter in the LM method (default=1e-4)

bool skip_cov_calculation = {false}

Skip the computation of the covariance (saves some time) (default=false)

bool skip_quality_calculation = {true}

Skip the (sometimes) expensive evaluation of the term ‘quality’ at ICP output (Default=true)

uint32_t corresponding_points_decimation = {5}

Decimation of the point cloud being registered against the reference one (default=5) - set to 1 to have the older (MRPT <0.9.5) behavior of not approximating ICP by ignoring the correspondence of some points. The speed-up comes from a decimation of the number of KD-tree queries, the most expensive step in ICP