class mola::state_estimation_simple::Parameters
Overview
Parameters needed by StateEstimationSimple.
#include <Parameters.h> class Parameters { public: // fields bool gnss_enabled = false; double gnss_max_horizontal_sigma = 0.20; double gnss_min_sigma_floor_xy = 0.10; double gnss_min_sigma_floor_z = 0.30; bool gnss_fuse_z = false; double max_time_to_use_velocity_model = 2.0; mrpt::math::TTwist3D initial_twist; double sigma_random_walk_acceleration_linear = 1.0; double sigma_random_walk_acceleration_angular = 10.0; double sigma_relative_pose_linear = 1.0; double sigma_relative_pose_angular = 0.1; double sigma_imu_angular_velocity = 0.05; bool velocity_filter_enabled = true; bool enforce_planar_motion = false; std::string do_process_imu_labels_re = ".*"; std::string do_process_odometry_labels_re = ".*"; std::string do_process_gnss_labels_re = ".*"; // methods void loadFrom(const mrpt::containers::yaml& cfg); };
Fields
bool gnss_enabled = false
Master switch. Default false preserves the legacy “GNSS ignored” behavior.
double gnss_max_horizontal_sigma = 0.20
Reject any GNSS fix whose reported horizontal sigma (sqrt of the larger of the ENU east/north variances) exceeds this [m]. The default 0.20 m cleanly selects RTK-fixed samples and rejects RTK-float / no-fix (and the UINT32_MAX no-fix covariance sentinel).
double gnss_min_sigma_floor_xy = 0.10
Lower bound on the horizontal measurement sigma actually used to correct the anchor [m]. A 2 cm RTK fix is softened to this floor so the prior Gaussian sent to the ICP still spans the next-step motion at speed.
double gnss_min_sigma_floor_z = 0.30
Same floor for the vertical component [m] (used only if gnss_fuse_z).
bool gnss_fuse_z = false
If true, also correct the Z of the anchor. Default false: vehicle-frame vertical is usually poorly observed and GNSS altitude is noisier.
double max_time_to_use_velocity_model = 2.0
Valid estimations will be extrapolated only up to this time since the last incorporated observation.
bool velocity_filter_enabled = true
If true, velocity estimates are smoothed via a per-component scalar Kalman filter. The process noise reuses sigma_random_walk_acceleration_linear/angular [m/s^2, rad/s^2], and measurement noise comes from the covariance already computed by each fuse_*() call. Default: true.
Enabled by default because raw velocities are obtained by differentiating consecutive poses (pose increment / dt), which amplifies pose noise; that velocity is then fed back into the LiDAR-odometry motion model (ICP initial guess + prior), so without smoothing the loop can oscillate. Set to false to recover the legacy direct pass-through behavior.
std::string do_process_imu_labels_re = ".*"
regex for IMU sensor labels (ROS topics) to accept as IMU readings.
std::string do_process_odometry_labels_re = ".*"
regex for odometry inputs labels (ROS topics) to be accepted as inputs
std::string do_process_gnss_labels_re = ".*"
regex for GNSS (GPS) labels (ROS topics) to be accepted as inputs
Methods
void loadFrom(const mrpt::containers::yaml& cfg)
Loads all parameters from a YAML map node.