struct mola::KeyframePointCloudMap::TCreationOptions
Overview
#include <KeyframePointCloudMap.h> struct TCreationOptions: public mrpt::config::CLoadableOptions { // fields uint32_t max_search_keyframes = 3; uint32_t k_correspondences_for_cov = 20; double rotation_distance_weight = 2.0; uint32_t num_diverse_keyframes = 1; bool use_view_direction_filter = true; double max_view_angle_deg = 120.0; // methods void loadFromConfigFile( const mrpt::config::CConfigFileBase& c, const std::string& s ); void dumpToTextStream(std::ostream& out) const; void writeToStream(mrpt::serialization::CArchive& out) const; void readFromStream(mrpt::serialization::CArchive& in); };
Fields
uint32_t max_search_keyframes = 3
Maximum number of key-frames to search for NN.
double rotation_distance_weight = 2.0
Weight converting angular distance [rad] to equivalent linear distance [m] for keyframe proximity ranking. Higher values favor angularly-close (similar orientation) frames.
uint32_t num_diverse_keyframes = 1
Number of keyframe slots (out of max_search_keyframes) reserved for angularly diverse and/or more distant keyframes. Must be < max_search_keyframes.
bool use_view_direction_filter = true
If true (default), and if both the reference and query point clouds contain per-point view-direction fields (“view_x”, “view_y”, “view_z” - unit vectors pointing FROM the point TOWARD the sensor at acquisition time), then a cov-to-cov pairing is accepted only when the angle between the two view directions is at most max_view_angle_deg.
The rationale is that two points on opposite sides of a thin surface (e.g. a wall seen from the front vs. the back, or a thin pole) will have nearly anti-parallel view vectors. Pairing them would produce a badly conditioned or outright wrong ICP residual. 120° is a reasonable default: it rejects pairs whose view directions differ by more than 120° (cos < -0.5) while keeping pairs seen from “similar enough” directions.
Setting this to false, or to a threshold ≥ 180°, effectively disables the filter even when view fields are present.
double max_view_angle_deg = 120.0
Maximum allowed angle [degrees] between the view-direction vectors of a candidate cov-to-cov pair. Only used when use_view_direction_filter is true and the view fields are present. Default: 120°.