Struct Parameters

Inheritance Relationships

Base Type

  • public mrpt::serialization::CSerializable

Struct Documentation

struct Parameters : public mrpt::serialization::CSerializable

ICP parameters.

See also

ICP_Base

Termination criteria

uint32_t maxIterations = {40}

Maximum number of ICP iterations to run.

double minAbsStep_trans = {5e-4}

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-4}

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

Debugging and logging

bool generateDebugFiles = false

If true, debug files useful to inspect how ICP works internally will be generated and saved to disk for posterior inspection with a GUI.

The same mp2p_icp::LogRecord object saved to disk will be also returned by ICP::align().

bool saveIterationDetails = false

If enabled, the intermediary pairings and SE(3) solution for each ICP step will be also stored in the mp2p_icp::LogRecord to help investigating how ICP made progress.

uint32_t decimationIterationDetails = 10

If set to N>1, only 1 out of N ICP iterations will be kept. Applicable if saveIterationDetails is true. Useful to save tons of disk space for large datasets (!).

uint32_t decimationDebugFiles = 1

If set to N>1, only 1 out of N log files will be actually generated. Useful to save tons of disk space for large datasets (!).

std::string debugFileNameFormat  ="icp-run-$UNIQUE_ID-local-$LOCAL_ID$LOCAL_LABEL-""global-$GLOBAL_ID$GLOBAL_LABEL.icplog"

Generated files format, if generateDebugFiles is true.

std::function<void(mp2p_icp::metric_map_t&)> functor_before_logging_local

Function to apply to the local and global maps before saving the map to a log file. Useful to apply deletion filters to save space and time.

std::function<void(mp2p_icp::metric_map_t&)> functor_before_logging_global
bool debugPrintIterationProgress = false
std::map<uint32_t, double> quality_checkpoints = {{50U, 0.05}, {100U, 0.10}}

Quality checkpoints: if the quality is smaller than the given threshold at the prescribed iteration, ICP will be aborted.

Public Functions

void load_from(const mrpt::containers::yaml &p)
void save_to(mrpt::containers::yaml &p) const