Struct CovarianceParameters
Defined in File covariance.h
Struct Documentation
-
struct CovarianceParameters
Public Types
-
enum class Method : uint8_t
Covariance estimation backend.
Values:
-
enumerator InverseHessian
Inverse of the (whitened) Gauss-Newton Hessian, scaled by the a-posteriori unit-weight variance chi^2/(m-n). Cheap but typically optimistic, since it ignores correspondence and surface-mismatch noise.
-
enumerator Censi3D
Censi-style sandwich H^{-1} M H^{-1}, with H = sum J_i^T J_i and M = sum J_i^T Sigma_z_i J_i. For cov2cov pairings the per-pair Sigma_z = inv(cov_inv) is used directly; for pt2pt without per-pair noise, an isotropic Sigma_z = defaultPointSigma^2 * I is assumed. Reference: Censi 2007, Prakhya 2015.
-
enumerator InverseHessian
Public Functions
-
void load_from(const mrpt::containers::yaml &p)
Loads the parameters from a YAML map node. All entries are optional; unspecified fields keep their default values. Recognized keys:
method: “InverseHessian” | “Censi3D” defaultPointSigma: [m] floor_sigma_xyz: [m] floor_sigma_angles: [rad] (use floor_sigma_angles_deg for degrees) floor_sigma_angles_deg: [deg] (alternative to the radian form) finDif_xyz, finDif_angles
-
void save_to(mrpt::containers::yaml &p) const
Public Members
-
Method method = Method::InverseHessian
-
double defaultPointSigma = 0.02
For pt2pt pairings without per-pair Sigma in Censi3D path: isotropic point-noise std-dev [m].
-
double floor_sigma_xyz = 0.0
[m]
Per-axis floor added to the resulting covariance diagonal. Stored as std-dev for readability; squared internally. Useful to absorb unmodelled errors and keep downstream filters numerically stable.
-
double floor_sigma_angles = 0.0
[rad]
-
double finDif_xyz = 1e-7
-
double finDif_angles = 1e-7
-
enum class Method : uint8_t