struct mp2p_icp_filters::FilterPlanePatches::Parameters
Overview
#include <FilterPlanePatches.h> struct Parameters { // fields std::string input_pointcloud_layer = mp2p_icp::metric_map_t::PT_LAYER_RAW; bool clear_previous = true; double voxel_size = 0.10; double distance_threshold = 0.06; double normal_agreement_deg = 12.0; uint32_t min_points = 300; double min_span = 1.5; double range_min = 1.0; double range_max = 60.0; uint32_t max_patches = 12; uint32_t normal_knn = 13; uint32_t seed_candidates = 120; // methods void load_from_yaml( const mrpt::containers::yaml& c, FilterPlanePatches& parent ); };
Fields
bool clear_previous = true
If true, planes is emptied before appending. Leave it on for a per-scan observation map, whose patches describe only this scan.
double voxel_size = 0.10
Downsampling applied before anything else [m]. It also sets the area credited to a patch: one point stands for one voxel face.
double distance_threshold = 0.06
Maximum point-to-plane distance for an inlier [m].
double normal_agreement_deg = 12.0
Maximum angle between a point’s own normal and the candidate plane’s [deg]. Rejects points that merely lie near the plane while belonging to a surface crossing it.
uint32_t min_points = 300
Minimum inlier count for a patch. With the default voxel size, 300 points is 3 m2.
double min_span = 1.5
Minimum extent along the shorter in-plane axis [m].
double range_min = 1.0
Points outside this range from the layer’s origin are ignored [m]. The near limit drops the vehicle body, the far one drops returns whose angular resolution no longer supports a plane fit.
uint32_t max_patches = 12
Stop after this many patches.
uint32_t normal_knn = 13
Neighbors used to estimate each point’s normal.
uint32_t seed_candidates = 120
How many seeds to try per patch. Cost is linear in this.