struct mola::LidarOdometry::Parameters
Overview
#include <LidarOdometry.h> struct Parameters: public mp2p_icp::Parameterizable { // structs struct AdaptiveThreshold; struct Diagnostics; struct ICP_case; struct IMUGravityCorrection; struct InitialLocalizationOptions; struct MapUpdateOptions; struct MultipleLidarOptions; struct ObservationValidityChecks; struct SimpleMapOptions; struct TraceOutputOptions; struct TrajectoryOutputOptions; struct Visualization; // fields std::vector<std::regex> lidar_sensor_labels; std::optional<std::regex> imu_sensor_label; std::optional<std::regex> gnss_sensor_label; double min_time_between_scans = 0.05; double observation_radius_filter_coefficient = 0.999; double absolute_minimum_observation_radius = 5.0; bool optimize_twist = false; double optimize_twist_rerun_min_trans = 0.1; double optimize_twist_rerun_min_rot_deg = 0.5; size_t optimize_twist_max_corrections = 8; MultipleLidarOptions multiple_lidars; MapUpdateOptions local_map_updates; double min_icp_goodness = 0.4; std::optional<double> write_debug_icp_log_if_quality_under; bool pipeline_profiler_enabled = false; bool icp_profiler_enabled = false; bool icp_profiler_full_history = false; Visualization visualization; AdaptiveThreshold adaptive_threshold; Diagnostics diagnostics; std::map<AlignKind, ICP_case> icp; SimpleMapOptions simplemap; TrajectoryOutputOptions estimated_trajectory; TraceOutputOptions debug_traces; InitialLocalizationOptions initial_localization; ObservationValidityChecks observation_validity_checks; IMUGravityCorrection imu_gravity_correction; bool start_active = true; uint32_t max_lidar_queue_before_drop = 15; uint32_t gnss_queue_max_size = 100; double min_motion_model_xyz_cov_inv = 1.0; std::string publish_reference_frame = "odom"; std::string publish_vehicle_frame = "base_link"; bool publish_deskewed_scans = false; };
Fields
std::vector<std::regex> lidar_sensor_labels
List of sensor labels or regex’s to be matched to input observations to be used as raw lidar observations.
std::optional<std::regex> imu_sensor_label
Sensor labels or regex to be matched to input observations to be used as raw IMU observations.
std::optional<std::regex> gnss_sensor_label
Sensor labels or regex to be matched to input observations to be used as GNSS (GPS) observations.
double min_time_between_scans = 0.05
Minimum time (seconds) between scans for being attempted to be aligned. Scans faster than this rate will be just silently ignored.
bool optimize_twist = false
If enabled (slower), vehicle twist will be optimized during ICP enabling better and more robust odometry in high dynamics motion.
double min_icp_goodness = 0.4
Minimum ICP “goodness” (in the range [0,1]) for a new KeyFrame to be accepted during regular lidar odometry & mapping
std::optional<double> write_debug_icp_log_if_quality_under
If defined, .icplog files will be saved if ICP quality drops below the given threshold
uint32_t max_lidar_queue_before_drop = 15
Under overload, incoming scans are processed with a “drop stale, keep freshest” policy: the single worker thread always advances to the newest ready scan, dropping older ones, so latency stays near one processing period regardless of this value. This parameter only bounds the auxiliary wait list used while a scan waits for its IMU data (IMU de-skew pipelines): if IMU delivery lags, no more than this many scans are kept waiting before the oldest are dropped.
double min_motion_model_xyz_cov_inv = 1.0
Minimum inverse covariance in (X,Y,Z) for a valid motion model.
std::string publish_reference_frame = "odom"
When publishing pose updates, the reference frame for both, estimated robot poses, and the local map.
std::string publish_vehicle_frame = "base_link"
When publishing pose updates, the vehicle frame name.