Class CICP::TConfigParams
Defined in File CICP.h
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 §ion) 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
-
TICPAlgorithm ICP_algorithm = {icpClassic}