struct mp2p_icp_filters::FilterRangeBiasCorrection::Parameters
Overview
#include <FilterRangeBiasCorrection.h> struct Parameters { // fields std::string pointcloud_layer; mrpt::math::TPoint3Df sensor_origin = {0, 0, 0}; std::array<double, 3> ground = {0, 0, 0}; std::array<double, 3> slanted = {0, 0, 0}; std::array<double, 3> wall = {0, 0, 0}; double ground_min_nz = 0.9; double wall_max_nz = 0.3; unsigned int k_neighbors = 16; double max_neighbor_distance = 1.0; unsigned int min_neighbors = 6; double max_planarity_ratio = 0.1; double min_line_ratio = 0.05; double max_correction = 0.05; size_t parallelization_grain_size = 1024UL; // methods void load_from_yaml( const mrpt::containers::yaml& c, FilterRangeBiasCorrection& parent ); };
Fields
std::string pointcloud_layer
The point cloud layer to correct, in place.
mrpt::math::TPoint3Df sensor_origin = {0, 0, 0}
Sensor position in the frame of the point cloud. Can be defined as a function of the robot pose variables, as in FilterByRange.
std::array<double, 3> ground = {0, 0, 0}
Model coefficients (a [m], b [m/m], c [m]) per surface class.
double ground_min_nz = 0.9
A normal with |n_z| above this is ground, below wall_max_nz a wall, and anything in between slanted.
unsigned int k_neighbors = 16
Neighbors used to estimate each normal.
double max_neighbor_distance = 1.0
Neighbors farther than this are ignored [m].
unsigned int min_neighbors = 6
Points with fewer usable neighbors are left untouched.
double max_planarity_ratio = 0.1
The neighborhood is a plane only if its smallest covariance eigenvalue is below this fraction of the middle one.
double min_line_ratio = 0.05
…and it is not a line: the middle eigenvalue must be above this fraction of the largest one.
double max_correction = 0.05
Corrections are clamped to this magnitude [m].
size_t parallelization_grain_size = 1024UL
When TBB is enabled, the grainsize for parallel processing.