Struct KeyframePointCloudMap::TCreationOptions

Nested Relationships

This struct is a nested type of Class KeyframePointCloudMap.

Inheritance Relationships

Base Type

  • public mrpt::config::CLoadableOptions

Struct Documentation

struct TCreationOptions : public mrpt::config::CLoadableOptions

Public Functions

TCreationOptions() = default
void loadFromConfigFile(const mrpt::config::CConfigFileBase &c, const std::string &s) override
void dumpToTextStream(std::ostream &out) const override
void writeToStream(mrpt::serialization::CArchive &out) const
void readFromStream(mrpt::serialization::CArchive &in)

Public Members

uint32_t max_search_keyframes = 3

Maximum number of key-frames to search for NN.

uint32_t k_correspondences_for_cov = 20
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°.