namespace mola::factors

Overview

namespace factors {

// classes

class FactorAngularVelocityIntegration;
class FactorAngularVelocityIntegrationPose;
class FactorConstLocalVelocity;
class FactorConstLocalVelocityPose;
class FactorGnssEnu;
class FactorGnssMapEnu;
class FactorTrapezoidalIntegrator;
class FactorTrapezoidalIntegratorPose;
class FactorTricycleKinematic;
class MapGravityFactor;
class MeasuredGravityFactor;
class Pose3RotationFactor;

// global functions

bool imu_accel_looks_like_gravity(const gtsam::Vector3& measuredAcc);
bool imu_quaternion_looks_valid(double qw, double qx, double qy, double qz);
gtsam::Rot3 imu_apply_enu_azimuth_correction(const gtsam::Rot3& rawAttitude, double azimuthOffsetDeg);

} // namespace factors

Global Functions

bool imu_accel_looks_like_gravity(const gtsam::Vector3& measuredAcc)

Returns true if the given accelerometer reading looks like a plausible gravity vector, accepting either raw m/s^2 units (norm ~9.8) or an already-normalized (“g”) unit vector (norm ~1.0), as reported by different IMU drivers.

bool imu_quaternion_looks_valid(double qw, double qx, double qy, double qz)

Returns true if the given IMU absolute-orientation quaternion (w,x,y,z) is finite and normalized, i.e. safe to convert into a gtsam::Rot3.

gtsam::Rot3 imu_apply_enu_azimuth_correction(
    const gtsam::Rot3& rawAttitude,
    double azimuthOffsetDeg
    )

Applies the fixed ENU-convention correction (yaw=0 => East) plus a user-calibrated azimuth offset (e.g. sensor mounting or magnetic declination) to a raw IMU attitude reading, so the result can be compared against poses expressed in the ENU frame.