74 const std::string& section)
override;
77 const std::string& s)
const override;
188 ~CICP()
override =
default;
222 std::nullopt)
override;
229 std::nullopt)
override;
236 float kernel(
float x2,
float rho2);
259 using namespace
mrpt::slam;
Use the covariance of the optimal registration, disregarding uncertainty in data association.
The ICP algorithm configuration data.
This is a virtual base class for sets of options than can be loaded from and/or saved to configuratio...
mrpt::poses::CPosePDF::Ptr AlignPDF(const mrpt::maps::CMetricMap *m1, const mrpt::maps::CMetricMap *m2, const mrpt::poses::CPosePDFGaussian &initialEstimationPDF, mrpt::optional_ref< TMetricMapAlignmentResult > outInfo=std::nullopt) override
See base method docs.
TICPAlgorithm ICP_algorithm
The algorithm to use (default: icpClassic).
Several implementations of ICP (Iterative closest point) algorithms for aligning two point maps or a ...
double LM_initial_lambda
[LM method only] The initial value of the lambda parameter in the LM method (default=1e-4) ...
unsigned int nIterations
The number of executed iterations until convergence.
bool skip_quality_calculation
Skip the (sometimes) expensive evaluation of the term 'quality' at ICP output (Default=true) ...
unsigned int ransac_nSimulations
std::optional< std::reference_wrapper< T > > optional_ref
Shorter name for std::optional<std::reference_wrapper<T>>
double smallestThresholdDist
The size for threshold such that iterations will stop, since it is considered precise enough...
TConfigParams options
The options employed by the ICP align.
void loadFromConfigFile(const mrpt::config::CConfigFileBase &source, const std::string §ion) override
This method load the options from a ".ini"-like file or memory-stored string list.
mrpt::poses::CPose3DPDF::Ptr ICP3D_Method_Classic(const mrpt::maps::CMetricMap *m1, const mrpt::maps::CMetricMap *m2, const mrpt::poses::CPose3DPDFGaussian &initialEstimationPDF, TReturnInfo &outInfo)
uint32_t corresponding_points_decimation
Decimation of the point cloud being registered against the reference one (default=5) - set to 1 to ha...
Used as base class for other result structures of each particular algorithm in CMetricMapsAlignmentAl...
virtual ~TReturnInfo() override=default
double ransac_fuseMaxDiffXY
bool ransac_fuseByCorrsMatch
This class allows loading and storing values and vectors of different types from a configuration text...
Declares a class that represents a Probability Density function (PDF) of a 2D pose ...
unsigned int maxIterations
Maximum number of iterations to run.
double normalizationStd
RANSAC-step option: The standard deviation in X,Y of landmarks/points which are being matched (used t...
TICPCovarianceMethod ICP_covariance_method
The method to use for covariance estimation (Default: icpCovFiniteDifferences)
double goodness
A goodness measure for the alignment, it is a [0,1] range indicator of percentage of correspondences...
bool doRANSAC
Perform a RANSAC step, mrpt::tfest::se2_l2_robust(), after the ICP convergence, to obtain a better es...
CICP(const TConfigParams &icpParams)
Constructor that directly set the ICP params from a given struct.
#define MRPT_ENUM_TYPE_END()
mrpt::poses::CPosePDF::Ptr ICP_Method_LM(const mrpt::maps::CMetricMap *m1, const mrpt::maps::CMetricMap *m2, const mrpt::poses::CPosePDFGaussian &initialEstimationPDF, TReturnInfo &outInfo)
bool use_kernel
Whether to use kernel_rho to smooth distances, or use distances directly (default=true) ...
void saveToConfigFile(mrpt::config::CConfigFileBase &c, const std::string &s) const override
This method saves the options to a ".ini"-like file or memory-stored string list. ...
TICPAlgorithm
The ICP algorithm selection, used in mrpt::slam::CICP::options mrpt_slam_grp.
double ransac_mahalanobisDistanceThreshold
CICP()
Constructor with the default options.
double kernel_rho
Cauchy kernel rho, for estimating the optimal transformation covariance, in meters (default = 0...
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
double minAbsStep_trans
If the correction in all translation coordinates (X,Y,Z) is below this threshold (in meters)...
bool skip_cov_calculation
Skip the computation of the covariance (saves some time) (default=false)
Declares a virtual base class for all metric maps storage classes.
A base class for any algorithm able of maps alignment.
double ALFA
The scale factor for thresholds every time convergence is achieved.
The ICP algorithm return information.
unsigned int ransac_minSetSize
Declares a class that represents a Probability Density function (PDF) of a 3D pose ...
unsigned int ransac_maxSetSize
double covariance_varPoints
This is the normalization constant that is used to scale the whole 3x3 covariance.
#define MRPT_ENUM_TYPE_BEGIN(_ENUM_TYPE_WITH_NS)
TICPCovarianceMethod
ICP covariance estimation methods, used in mrpt::slam::CICP::options.
double thresholdDist
Initial threshold distance for two points to become a correspondence.
mrpt::poses::CPose3DPDF::Ptr Align3DPDF(const mrpt::maps::CMetricMap *m1, const mrpt::maps::CMetricMap *m2, const mrpt::poses::CPose3DPDFGaussian &initialEstimationPDF, mrpt::optional_ref< TMetricMapAlignmentResult > outInfo=std::nullopt) override
double ransac_fuseMaxDiffPhi
MRPT_FILL_ENUM(icpClassic)
double Axy_aprox_derivatives
[LM method only] The size of the perturbance in x & y used to estimate the Jacobians of the square er...
~CICP() override=default
Destructor.
mrpt::poses::CPosePDF::Ptr ICP_Method_Classic(const mrpt::maps::CMetricMap *m1, const mrpt::maps::CMetricMap *m2, const mrpt::poses::CPosePDFGaussian &initialEstimationPDF, TReturnInfo &outInfo)
Covariance of a least-squares optimizer (includes data association uncertainty)
double minAbsStep_rot
If the correction in all rotation coordinates (yaw,pitch,roll) is below this threshold (in radians)...
double quality
A measure of the 'quality' of the local minimum of the sqr.
float kernel(float x2, float rho2)
Computes: or just return the input if options.useKernel = false.