Skip to main content

ESTIMATOR

The ESTIMATOR block configures PpRx's navigation solution engine. It controls how GNSS measurements are corrected, weighted, accepted or rejected, and how the receiver position, velocity, clock, and related state are propagated over time.

Below is an example of the ESTIMATOR block:

[ESTIMATOR]
USE_IONO_CORR = TRUE
USE_TROPO_CORR = TRUE
ELEVATION_MASK_ANGLE_DEG = 15
ENFORCE_STRICT_SELECTION = TRUE
ALLOW_DELTR_FIXUPS = TRUE
MAX_ABS_DELTR_SEC = 0.0001
DYNAMICS_MODEL = STATIC
SQRT_Q_TILDE = 0.5
CLOCK_TYPE = TCXO
ZENITH_PSEUDORANGE_STD = 0.9
ZENITH_DOPPLER_STD = 0.7
SISRE_DEFAULT_STD = 1.0
SISRE_STD_INFLATION_FACTOR = 1.0
ZERO_VELOCITY_UPDATE_THRESHOLD_MPS = 0.15
ELEVATION_DEPENDENT_WEIGHTING = TRUE
ELEVATION_WEIGHTING_KNEE_DEG = 9
INNOVATIONS_TEST_PF = 1e-3

Estimator Profiles

ESTIMATOR_PROFILE selects a complete, supported PpRx navigation pipeline: standard navigation, dual-antenna heading, or IMU-aided pose. If omitted, PpRx defaults to STANDARD, so existing [ESTIMATOR] configurations continue to work unchanged.

The [CDGNSS] and [IMU] blocks only matter for the profile that requires them. See CDGNSS and IMU for details. For a GUI-based setup walkthrough, see Configure for Precision Heading in the GUI.

Dual-Antenna Heading (No IMU)

Set ESTIMATOR_PROFILE = STANDARD_DUAL_ANTENNA_HEADING in [ESTIMATOR], and provide exactly one of the following baseline descriptions. BASELINE_VECTOR_B is strongly preferred: it's required for IMU-aided pose, and it's what lets the GUI render antenna rotation correctly. Use BASELINE_LENGTH_CONSTRAINT only when the full body-frame vector genuinely isn't available.

  • BASELINE_VECTOR_B (full body-frame vector, preferred)
  • BASELINE_LENGTH_CONSTRAINT (scalar length only, fallback)
[ESTIMATOR]
ESTIMATOR_PROFILE = STANDARD_DUAL_ANTENNA_HEADING
GROUPS = PRIMARY ALT1
DYNAMICS_MODEL = NEARLY_CONSTANT_VELOCITY
BASELINE_VECTOR_B = 0 -0.622 0
note

Heading is defined from 0 to 360 degrees clockwise from North. BASELINE_LENGTH_CONSTRAINT/BASELINE_VECTOR_B describe the vector from PRIMARY to ALT1.

IMU-Aided Dual-Antenna Pose

For a full fused pose (heading plus IMU-propagated orientation and velocity), set ESTIMATOR_PROFILE = STANDARD_IMU_DUAL_ANTENNA_HEADING. This requires the full BASELINE_VECTOR_B (not just the scalar length) and an [IMU] block:

[ESTIMATOR]
ESTIMATOR_PROFILE = STANDARD_IMU_DUAL_ANTENNA_HEADING
GROUPS = PRIMARY ALT1
DYNAMICS_MODEL = NEARLY_CONSTANT_VELOCITY
BASELINE_VECTOR_B = 0 -0.622 0

[IMU]
IMU_TYPE = BMI088
POS_IMU_B = 0 0.311 0
ORIENTATION_IMU_B = 0 0 0 1

BASELINE_LENGTH_CONSTRAINT is not sufficient for this mode, since fused pose requires full antenna geometry. PpRx warns and ignores it if both are present.

Body-Frame Convention

Dual-antenna and IMU-aided pose configuration and output use a right-handed forward-left-up body frame centered at the phase center of the PRIMARY antenna:

  • positive X points forward;
  • positive Y points left (port); and
  • positive Z points up.

BASELINE_VECTOR_B is the directed vector from PRIMARY to ALT1, expressed in this frame in meters. For example, with PRIMARY on the left wing and ALT1 on the right wing, separated by 0.622 meters:

BASELINE_VECTOR_B = 0 -0.622 0

POS_IMU_B, POS_V0_B, and other body-frame position vectors use the same axis convention. ORIENTATION_IMU_B = 0 0 0 1 is appropriate only when the IMU's positive X, Y, and Z axes physically point forward, left, and up, respectively.

Fused-navigation body velocities are displayed as forward, left, and up components. Displayed yaw uses the navigation convention: zero degrees is North and angles increase clockwise toward East. Displayed pitch uses the aircraft convention, with nose-up positive.

The ESTIMATOR block can be configured with the following parameters.

Initialization & startup robustness

These parameters control when the estimator is allowed to form its first navigation solution and how strict it is during startup.

MIN_UNIQUE_TXS_FOR_UNINITIALIZED_SOLUTION

Default: 4
Parameter Class: Tunable
Impact of Change: Medium
Technical Info: Minimum number of distinct transmitters required before the estimator attempts to form an initial solution without a valid prior state. This protects initialization from relying on too few satellites, even if multiple measurements are available from the same transmitter.
Practical Tuning Info: Leave at 4 for most cases. Raising this value requires more satellite diversity before startup and can improve robustness at the cost of longer time-to-first-fix. Note that MIN_MEASUREMENTS_FOR_UNINITIALIZED_SOLUTION may gate estimator startup even if this value is low.

MIN_MEASUREMENTS_FOR_UNINITIALIZED_SOLUTION

Default: 5
Parameter Class: Tunable
Impact of Change: Medium
Technical Info: Minimum number of usable measurement rows required before the estimator attempts to form an initial solution without a valid prior state. This protects initialization from using a barely constrained measurement set, even when enough distinct transmitters are available.
Practical Tuning Info: Leave at 5 for most cases. A value of 5 rather than 4 allows consistency checking in addition to solving a unique solution. Raising this value requires more total observables before startup and can improve robustness at the cost of longer time-to-first-fix.

INITIALIZATION_TEST_PF

Default: 1e-5
Parameter Class: Tunable
Impact of Change: Medium
Technical Info: Target false-alarm probability for rejecting a good set of measurements while forming an initial estimator solution. The estimator compares the startup pseudorange/Doppler residuals against their expected uncertainty and only accepts the initial solution if the measurement set is statistically self-consistent.
Practical Tuning Info: Leave at the default for most cases. Higher values make initialization stricter and can delay the first solution by rejecting usable startup measurement sets; lower values make initialization more permissive but increase the risk of accepting a biased or low-quality initial solution.

INITIALIZATION_TEST_THRESHOLD_FACTOR

Default: 0
Parameter Class: Tunable
Impact of Change: Medium
Technical Info: Maximum allowed initialization NIS ratio when forming an initial estimator solution. If set, this fixed threshold is used instead of INITIALIZATION_TEST_PF; the estimator rejects the initialization attempt if the NIS, used as a measure of statistical self-consistency, exceeds this value.
Practical Tuning Info: Leave unset in most cases. If set, values around 1.5–3 are reasonable starting points, with lower values making startup stricter and higher values making startup more permissive. This value overrides INITIALIZATION_TEST_PF.

GNSS measurement noise

These parameters define the estimator's default assumptions about pseudorange and Doppler measurement quality.

ZENITH_PSEUDORANGE_STD

Default: 3
Parameter Class: Tunable
Impact of Change: Medium
Technical Info: Assumed pseudorange measurement standard deviation, in meters, for a satellite directly overhead, before elevation weighting, atmospheric uncertainty, and SISRE effects are applied. Larger values reduce pseudorange influence in the estimator; smaller values make pseudorange measurements more trusted.
Practical Tuning Info: The default should be a safe value for most applications, but additional performance may be possible by reducing this value down to the 1 meter range. Setting this value lower will increase the estimator's trust in measurements, making it more responsive to dynamics but also potentially increasing noise in position and velocity estimates.

ZENITH_DOPPLER_STD

Default: 1
Parameter Class: Tunable
Impact of Change: Medium
Technical Info: Assumed Doppler measurement standard deviation, in Hz, for a satellite directly overhead, before elevation weighting, atmospheric uncertainty, and SISRE effects are applied. Larger values reduce Doppler influence on the estimator solution.
Practical Tuning Info: The default should be a safe value for most applications, but additional performance may be possible by reducing this value down to the 0.3 Hz range. Setting this value lower will increase the estimator's trust in measurements, making it more responsive to dynamics but also potentially increasing noise in position and velocity estimates.

Measurement acceptance & consistency checks

These parameters control whether candidate measurements are allowed to participate in an estimator update.

ENFORCE_STRICT_SELECTION

Default: True
Parameter Class: Tunable
Impact of Change: Medium
Technical Info: When enabled, allows only signals with a healthy phase lock to participate in the estimation solution.
Practical Tuning Info: If navigation solution precision is desired, set to True. If operating in a challenging RF environment, set to False.

INNOVATIONS_TEST_PF

Default: 1e-3
Parameter Class: Tunable
Impact of Change: Medium
Technical Info: Target false-alarm probability for excluding a good set of measurements during an estimator update. The estimator compares the measured pseudorange/Doppler residuals against their expected uncertainty and attempts not to use suspect measurements when updating the navigation solution.
Practical Tuning Info: Leave at the default for most cases. Higher values make the test stricter and can cause good measurements to be excluded during normal noise variation; lower values make excluding good measurements less likely but can allow low-quality measurements to more easily remain in the solution.

INNOVATIONS_TEST_THRESHOLD_FACTOR

Default: 0
Parameter Class: Tunable
Impact of Change: Medium
Technical Info: Maximum allowed NIS ratio for a measurement set during an estimator update. If the NIS of a group of measurements (nominally 1.0) exceeds this value, the estimator treats the set as inconsistent and attempts not to use suspect measurements when updating the navigation solution.
Practical Tuning Info: Leave unset in most cases. If set, values of 3–6 are reasonable. This value overrides INNOVATIONS_TEST_PF, which is an alternate statistical method for setting the measurement exclusion threshold.

Elevation-based weighting & exclusion

These parameters reduce or remove the influence of low-elevation measurements, which are more likely to be affected by multipath, blockage, or atmospheric modeling error.

ELEVATION_MASK_ANGLE_DEG

Default: ~14.3 degrees (0.25 radians)
Parameter Class: Tunable
Impact of Change: Medium
Technical Info: Minimum satellite elevation angle allowed into the estimator solution. Signals below this angle are excluded, reducing use of low-elevation measurements that are more likely to suffer multipath, blockage, or atmospheric modeling error.
Practical Tuning Info: Typical values are 5–15 degrees, with higher values often working better in more occluded environments. Higher values produce cleaner but fewer measurements, while lower values increase satellite availability at the cost of admitting more potentially low-quality, low-elevation measurements.

ELEVATION_DEPENDENT_WEIGHTING

Default: True
Parameter Class: Tunable
Impact of Change: Medium
Technical Info: Enables elevation-based measurement uncertainty inflation. Low-elevation signals are assigned larger pseudorange and Doppler uncertainty, reducing their influence in the estimator.
Practical Tuning Info: Leave enabled for most real RF environments because low-elevation signals are more likely to suffer multipath and atmospheric modeling error.

ELEVATION_WEIGHTING_KNEE_DEG

Default: ~9.7 degrees (0.17 radians)
Parameter Class: Tunable
Impact of Change: Medium
Technical Info: Sets the elevation angle at which the elevation weighting "bends" significantly when using ELEVATION_DEPENDENT_WEIGHTING. At this elevation angle, the measurement standard deviation is inflated by about 4.7×, and increases toward the horizon.
Practical Tuning Info: Leave near the default for most cases. Using higher values may slightly improve performance in occluded environments.

Satellite signal-in-space error

These parameters control how satellite-side orbit and clock uncertainty contributes to the estimator's assumed measurement uncertainty.

SISRE_DEFAULT_STD

Default: 0.00
Parameter Class: Tunable
Impact of Change: Low
Technical Info: Default Signal-in-Space Range Error (SISRE) standard deviation, in meters, used when the ephemeris record does not provide a SISRE value. This term is the expected 1-sigma pseudorange error from satellite-side orbit/clock model inaccuracies, and contributes to assumed pseudorange measurement uncertainty.
Practical Tuning Info: Only relevant for unusual cases where SISRE information is not available from satellite transmissions. If needed, 0.5 meters would likely be a good conservative setting.

SISRE_STD_INFLATION_FACTOR

Default: 1.0
Parameter Class: Tunable
Impact of Change: Low
Technical Info: Global multiplier applied to SISRE standard deviation before it is included in the pseudorange measurement variance assumption. Increasing this value reduces the estimator's confidence in pseudorange values.
Practical Tuning Info: Leave at 1.0 for almost all cases. Tune only if ephemeris quality estimates are known to be under- or over-confident.

Receiver motion model

These parameters control how the estimator propagates receiver position, velocity, and related motion states between measurement updates.

DYNAMICS_MODEL

Default: NEARLY_CONSTANT_VELOCITY
Parameter Class: Tunable
Impact of Change: High

Options:

  • STATIC   [recommended for static usage]
  • NEARLY_CONSTANT_VELOCITY   [recommended for typical dynamic usage]
  • NEARLY_CONSTANT_ACCELERATION
  • LOW_EARTH_ORBIT

Technical Info: Selects the motion model used to propagate the receiver state between measurement updates. STATIC assumes fixed position, NEARLY_CONSTANT_VELOCITY assumes velocity changes slowly, NEARLY_CONSTANT_ACCELERATION assumes acceleration changes slowly, and LOW_EARTH_ORBIT uses an orbital propagation model.
Practical Tuning Info: Use STATIC for stationary receivers and NEARLY_CONSTANT_VELOCITY for all moving ground/air platforms. NEARLY_CONSTANT_ACCELERATION and LOW_EARTH_ORBIT should be used for space-based applications.

SQRT_Q_TILDE

Default: 5
Parameter Class: Tunable
Impact of Change: High
Technical Info: Controls how much the estimator allows the receiver state to change between measurement updates beyond what the selected DYNAMICS_MODEL predicts. Higher values make the estimator more willing to follow new measurements; lower values make it trust the propagated motion model more strongly.
Practical Tuning Info: For NEARLY_CONSTANT_VELOCITY, this value should be somewhat greater than the average expected vehicle acceleration, in m/s². Tuning higher will make the estimator more responsive to real motion, but can make the solution noisier.

For all other DYNAMICS_MODEL settings, this value should often be much smaller, typically 0.001 to 0.1. Tune toward the higher end of the range when unmodeled acceleration, atmospheric variation, multipath, or other slowly changing bias sources are expected.

MAX_OPEN_LOOP_PROP_SEC

Version Introduced: v5.1.0
Default: -1
Parameter Class: Tunable
Impact of Change: Medium
Technical Info: Maximum amount of time, in seconds, the estimator is allowed to propagate the state forward open-loop, without any measurements. Values less than 0 disable this feature.
Practical Tuning Info: Set a finite value when stale propagated solutions are undesirable; shorter values force faster reset/reinitialization after signal loss, while longer values tolerate brief outages but may result in incorrectly propagating state forward. Recommended ranges: -1 (disabled) or 10–20 seconds.

ZERO_VELOCITY_UPDATE_THRESHOLD_MPS

Default: 0.0
Parameter Class: Tunable
Impact of Change: Low
Technical Info: Speed threshold, in m/s, below which the estimator treats the receiver as stationary and sets estimated velocity to zero. When active, near-zero velocity updates are prevented from propagating the position forward during estimator prediction.
Practical Tuning Info: Leave at 0 to disable. For receivers where stationary periods are expected, values around 0.03–0.15 m/s can reduce slow position drift caused by noisy velocity estimates. Tune higher to more aggressively enforce stationary position during stops, but avoid values near expected real motion speeds to avoid suppression of slow movement.

INIT_ACCELERATION_STD

Default: 1000.0
Parameter Class: Tunable
Impact of Change: Low
Technical Info: Initial acceleration uncertainty, in m/s², used for NEARLY_CONSTANT_ACCELERATION and LOW_EARTH_ORBIT dynamics models.
Practical Tuning Info: Only relevant for space-based NEARLY_CONSTANT_ACCELERATION and LOW_EARTH_ORBIT dynamics models. Leave at the default for almost all cases.

Clock & receiver time behavior

These parameters control how the estimator models receiver clock behavior and manages receiver-time bookkeeping. Except for ensuring that the CLOCK_TYPE is correct for the receiver, these parameters should normally be set to defaults.

CLOCK_TYPE

Default: TCXO_LOW_QUALITY
Parameter Class: Tunable
Impact of Change: Medium
Options:

  • TCXO_LOW_QUALITY
  • TCXO   [recommended for RadioLion]
  • OCXO_LOW_QUALITY
  • OCXO

Technical Info: Selects the receiver clock stability model used to propagate receiver clock bias and clock drift uncertainty between estimator updates. Lower-quality clock models allow the estimated clock state to wander more freely, while higher-quality models constrain clock evolution more tightly.
Practical Tuning Info: TCXO should be used for RadioLion. For other front-ends, match this to the receiver oscillator's short-term stability: roughly TCXO_LOW_QUALITY for clocks with Allan deviation near 5e-10 at 1 second, TCXO near 1e-10, OCXO_LOW_QUALITY near 2e-11, and OCXO near 5e-12. Use a more conservative/lower-quality model if the oscillator is poorly characterized.

ALLOW_DELTR_FIXUPS

Default: True
Parameter Class: Tunable
Impact of Change: Low
Technical Info: Enables estimator-controlled receiver-time fixups that keep receiver time within MAX_ABS_DELTR_SEC of true GNSS time. This is only a bookkeeping mechanism and does not affect time measurement quality; it only prevents large receiver time-bias values from accumulating over time.
Practical Tuning Info: Leave enabled for normal operation. Disable for external timing workflows where receiver time discontinuities, even coordinated ones, are undesirable and clock bias is allowed to grow in the estimator state.

MAX_ABS_DELTR_SEC

Default: 0.032
Parameter Class: Tunable
Impact of Change: Low
Technical Info: Maximum absolute receiver clock bias allowed before the estimator performs a receiver-time fixup. When the estimated clock bias exceeds this threshold, receiver time, observables, and channel phase/timing state are adjusted together so the receiver clock remains close to true GNSS time.
Practical Tuning Info: Leave at the default for almost all cases. Smaller values cause more frequent clock fixups; larger values reduce fixup frequency but allow receiver time to drift farther before correction. This value must be at least DELTR_FIXUP_RESOLUTION_SEC.

DELTR_FIXUP_RESOLUTION_SEC

Default: 0.0001
Parameter Class: Tunable
Impact of Change: Low
Technical Info: Time quantization used when applying receiver clock-bias fixups. Any fixup applied by the estimator is rounded to an integer multiple of this value before receiver time and channel observables are adjusted.
Practical Tuning Info: Leave at the default for almost all cases. If changed, its value must be chosen such that for any carrier frequency used, multiplying that frequency by DELTR_FIXUP_RESOLUTION_SEC results in an integer value.

Atmospheric corrections

These parameters control whether the estimator applies standard atmospheric delay corrections when modeling GNSS measurements.

USE_IONO_CORR

Default: True
Parameter Class: Tunable
Impact of Change: High
Technical Info: Enables ionospheric-delay correction in the estimator measurement model. When enabled, predicted pseudorange and related modeled quantities include the receiver's available ionospheric correction; when disabled, ionospheric delay is left unmodeled.
Practical Tuning Info: Leave enabled for nearly all use cases. Disable for simulations or cases where ionospheric correction sources are known to be inappropriate.

USE_TROPO_CORR

Default: True
Parameter Class: Tunable
Impact of Change: High
Technical Info: Enables tropospheric delay correction in the estimator measurement model.
Practical Tuning Info: Leave enabled for nearly all use cases. Disable for simulations known to lack tropospheric modeling or non-terrestrial applications.

Fixed-position operation

These parameters configure operation when the receiver position should be constrained to a known, fixed location.

CONSTRAIN_ECEF_POSITION

Default: False
Parameter Class: Tunable
Impact of Change: High
Technical Info: Constrains the receiver position estimate instead of estimating it as a free state. This is useful for fixed receivers with a surveyed or otherwise trusted position.
Practical Tuning Info: Enable only for static receivers in a known position specified by KNOWN_ECEF_POSITION, with DYNAMICS_MODEL set to STATIC. This setting can be useful for improved time estimation or measurement quality observations.

KNOWN_ECEF_POSITION

Default: [0 0 0]
Parameter Class: Tunable
Impact of Change: High, when CONSTRAIN_ECEF_POSITION = TRUE
Technical Info: ECEF receiver position, in meters, used as the fixed position when CONSTRAIN_ECEF_POSITION is enabled. The coordinates should refer to the relevant antenna phase center.
Practical Tuning Info: Set only when using a surveyed or otherwise trusted fixed receiver position.

Dual-antenna operation

These parameters configure which antenna groups contribute observations to the estimator and how multiple antenna groups are modeled.

GROUPS

Default: PRIMARY
Parameter Class: Tunable
Impact of Change: High
Technical Info: Specifies which antennas are allowed to contribute observations to the estimator.
Practical Tuning Info: Leave as PRIMARY for normal single-input/single-antenna operation. Add ALT1 if an alternate antenna is connected and its signals have been registered in the [BANK] block.

ASSUME_COINCIDENT_GROUPS

Default: False
Parameter Class: Tunable
Impact of Change: Medium
Technical Info: Controls whether signal groups are estimated as separate receiver positions or as one common receiver state.
Practical Tuning Info: Only relevant in dual-antenna setups. Set true to treat all antennas specified in GROUPS as coincident and estimate only a single, common position (and velocity, acceleration, etc.). The final position estimate is at the midpoint of the two antennas. Set false to estimate independent positions for each antenna.

INTERCHANNEL_BIAS_STD

Default: 0.0
Parameter Class: Tunable
Impact of Change: Medium
Technical Info: Controls whether two antenna sources are assumed to share one receiver clock or use separate clocks. A value of 0 uses a common receiver clock bias for both antennas, while positive values allow clock biases to drift relative to each other.
Practical Tuning Info: Only applicable to multi-antenna operation. Leave at 0 for multi-antenna operation with RadioLion. Use a small positive value only for front-ends in which multiple antennas do not share a common clock, approximately equal to the expected drift between the two clocks, in seconds of drift per second.

Baseline geometry (STANDARD_DUAL_ANTENNA_HEADING / STANDARD_IMU_DUAL_ANTENNA_HEADING)

These parameters describe the physical antenna baseline and only apply to ESTIMATOR_PROFILE = STANDARD_DUAL_ANTENNA_HEADING or STANDARD_IMU_DUAL_ANTENNA_HEADING. BASELINE_VECTOR_B is strongly preferred over BASELINE_LENGTH_CONSTRAINT: it's required for IMU-aided pose, and it's what lets the GUI render antenna rotation correctly.

BASELINE_VECTOR_B

Default: None
Parameter Class: Operational Configuration
Technical Info: Directed vector from the PRIMARY to the ALT1 antenna phase center, in meters, expressed in the forward-left-up body frame. Required by ESTIMATOR_PROFILE = STANDARD_IMU_DUAL_ANTENNA_HEADING, and usable in place of BASELINE_LENGTH_CONSTRAINT for STANDARD_DUAL_ANTENNA_HEADING.
Practical Tuning Info: Preferred over BASELINE_LENGTH_CONSTRAINT in almost all cases. Required for IMU-aided pose, since pose initialization needs full antenna geometry, not only baseline distance. For heading-only operation, providing BASELINE_VECTOR_B instead also lets the GUI render antenna rotation correctly. If both BASELINE_LENGTH_CONSTRAINT and BASELINE_VECTOR_B are set on a profile that only needs the scalar length, PpRx warns and ignores BASELINE_LENGTH_CONSTRAINT.

BASELINE_LENGTH_CONSTRAINT

Default: None
Parameter Class: Operational Configuration
Technical Info: Constrained antenna separation, in meters, between the PRIMARY and ALT1 antenna phase centers. Used by ESTIMATOR_PROFILE = STANDARD_DUAL_ANTENNA_HEADING for heading-only operation.
Practical Tuning Info: Fallback for STANDARD_DUAL_ANTENNA_HEADING when the full body-frame vector genuinely isn't available. Exactly one of BASELINE_LENGTH_CONSTRAINT or BASELINE_VECTOR_B is required; prefer the vector where possible.

Dual-antenna heading (STANDARD_DUAL_ANTENNA_HEADING)

These parameters tune the Attitude2D sigma-point filter used by ESTIMATOR_PROFILE = STANDARD_DUAL_ANTENNA_HEADING and STANDARD_IMU_DUAL_ANTENNA_HEADING. They are ignored, with a startup warning, when ESTIMATOR_PROFILE = STANDARD. Satellite/measurement selection, differential noise, and integer least-squares settings for this filter live in the [CDGNSS] block, not here.

ATTITUDE_2D_SPF_ALPHA

Default: 1e-3
Parameter Class: Tunable
Impact of Change: Low
Technical Info: Attitude2D sigma-point spread parameter.
Practical Tuning Info: Leave at the default for almost all cases.

ATTITUDE_2D_SPF_BETA

Default: 2
Parameter Class: Tunable
Impact of Change: Low
Technical Info: Attitude2D sigma-point distribution parameter.
Practical Tuning Info: Leave at the default for almost all cases.

ATTITUDE_2D_SPF_KAPPA

Default: 0
Parameter Class: Tunable
Impact of Change: Low
Technical Info: Attitude2D secondary sigma-point scaling parameter.
Practical Tuning Info: Leave at the default for almost all cases.

ATTITUDE_2D_SPF_NUM_THREADS

Default: 1
Parameter Class: Tunable
Impact of Change: Low
Technical Info: Number of worker threads used by the Attitude2D sigma-point filter.
Practical Tuning Info: Leave at the default for almost all cases.

IMU-aided pose (STANDARD_IMU_DUAL_ANTENNA_HEADING)

These parameters configure the loosely coupled IMU-aided pose estimator used by ESTIMATOR_PROFILE = STANDARD_IMU_DUAL_ANTENNA_HEADING. All are optional and retain their internal default when omitted, except BASELINE_VECTOR_B, which is required. This mode also requires an [IMU] block. See the body-frame convention below for axis and rotation conventions.

CONSUME_EXTERNAL_CDGNSS_REPORTS

Default: TRUE
Parameter Class: Tunable
Impact of Change: Medium
Technical Info: Continues ingesting Attitude2D/CDGNSS heading reports into the pose filter after initialization, rather than only during startup.
Practical Tuning Info: Leave enabled for almost all cases.

INCLUDE_STANDARD_NAVIGATION_SOLUTION_VELOCITY_MEASUREMENT

Default: FALSE
Parameter Class: Tunable
Impact of Change: Medium
Technical Info: Includes the standard navigation solution's velocity as a measurement in the fused pose update.
Practical Tuning Info: Leave at the default unless standard-navigation velocity is known to improve pose stability for a given platform.

SIGMA_CONSTRAINED_BASELINE_ERROR_RAD

Default: 0.1
Parameter Class: Tunable
Impact of Change: Medium
Technical Info: Angular uncertainty, in radians, assumed for the constrained-baseline measurement used by the pose filter.
Practical Tuning Info: Leave at the default for most cases. Lower values increase the pose filter's trust in the constrained baseline.

AZIMUTH_ONLY_FROM_CONSTRAINED_BASELINE

Default: TRUE
Parameter Class: Tunable
Impact of Change: Medium
Technical Info: Uses only the constrained baseline's azimuth, rather than its full 2D orientation, in the fused pose measurement.
Practical Tuning Info: Leave at the default for almost all cases.

OUTPUT_EVENT

Default: MEASUREMENT_UPDATE
Parameter Class: Tunable
Impact of Change: Low
Options:

  • MEASUREMENT_UPDATE
  • TIME_UPDATE

Technical Info: Selects whether fused pose output is emitted on each measurement update or each time update.
Practical Tuning Info: Leave at the default for most cases.

INTEGRATOR_TYPE

Default: EULER_METHOD
Parameter Class: Tunable
Impact of Change: Medium
Options:

  • EULER_METHOD
  • PIECEWISE_CONSTANT_AW_OMEGAB

Technical Info: Selects the integration method used to propagate IMU measurements between updates.
Practical Tuning Info: Leave at the default for most cases.

SIGMA_P_STANDARD

Default: 1
Parameter Class: Tunable
Impact of Change: Medium
Technical Info: Standard-navigation position-sigma floor, in meters, used by the IMU-aided estimator.
Practical Tuning Info: Values below 1 meter currently behave as 1 meter, since the internal estimator clamps this uncertainty floor to that minimum.

PRECISE_POS_MEASUREMENT_SIGMA_INFLATION_FACTOR

Default: 3
Parameter Class: Tunable
Impact of Change: Low
Technical Info: Uncertainty inflation factor applied to precise position measurements used by the pose filter.
Practical Tuning Info: Leave at the default for almost all cases.

IMU_AIDED_SPF_ALPHA

Default: 1e-3
Parameter Class: Tunable
Impact of Change: Low
Technical Info: IMU-aided sigma-point filter spread parameter.
Practical Tuning Info: Leave at the default for almost all cases.

IMU_AIDED_SPF_BETA

Default: 2
Parameter Class: Tunable
Impact of Change: Low
Technical Info: IMU-aided sigma-point distribution parameter.
Practical Tuning Info: Leave at the default for almost all cases.

IMU_AIDED_SPF_KAPPA

Default: 0
Parameter Class: Tunable
Impact of Change: Low
Technical Info: IMU-aided secondary sigma-point scaling parameter.
Practical Tuning Info: Leave at the default for almost all cases.

IMU_AIDED_SPF_INNOVATIONS_TEST_PF

Default: 1e-6
Parameter Class: Tunable
Impact of Change: Medium
Technical Info: Target false-alarm probability for the IMU-aided estimator's innovations test, similar in purpose to INNOVATIONS_TEST_PF but independent of the standard navigation filter.
Practical Tuning Info: Leave at the default for most cases.

IMU_AIDED_SPF_PERFORM_INNOVATIONS_TESTING

Default: TRUE
Parameter Class: Tunable
Impact of Change: Medium
Technical Info: Enables innovations testing on the IMU-aided estimator.
Practical Tuning Info: Leave enabled for almost all cases.

IMU_AIDED_SPF_NUM_THREADS

Default: 1
Parameter Class: Tunable
Impact of Change: Low
Technical Info: Number of worker threads used by the IMU-aided sigma-point filter.
Practical Tuning Info: Leave at the default for almost all cases.

APPLY_VEHICLE_VELOCITY_CONSTRAINTS

Default: FALSE
Parameter Class: Tunable
Impact of Change: Medium
Technical Info: Enables near-zero lateral and vertical vehicle-velocity constraints in the pose filter. Requires ORIENTATION_B2V and POS_V0_B.
Practical Tuning Info: Enable for ground vehicles where lateral/vertical slip is expected to be near zero. Leave disabled for platforms where this assumption does not hold, such as aircraft or watercraft.

ORIENTATION_B2V

Default: None
Parameter Class: Operational Configuration
Technical Info: Body-to-vehicle quaternion. Required when APPLY_VEHICLE_VELOCITY_CONSTRAINTS is enabled.
Practical Tuning Info: Set only when using vehicle-velocity constraints.

POS_V0_B

Default: None
Parameter Class: Operational Configuration
Technical Info: Vehicle center of rotation, in body-frame coordinates. Required when APPLY_VEHICLE_VELOCITY_CONSTRAINTS is enabled.
Practical Tuning Info: Set only when using vehicle-velocity constraints.

SIGMA_VEHICLE_VELOCITY_CONSTRAINT_MPS

Default: 0.2 0.3
Parameter Class: Tunable
Impact of Change: Medium
Technical Info: Lateral and vertical vehicle-velocity constraint sigmas, in m/s.
Practical Tuning Info: Leave at the default for most ground-vehicle cases.

POLYNOMIAL_COEFFICIENTS_OMEGABZ_TO_V0VY

Default: 0 0
Parameter Class: Tunable
Impact of Change: Low
Technical Info: Polynomial coefficients modeling lateral velocity as a function of body yaw rate.
Practical Tuning Info: Leave at the default unless vehicle-specific yaw/lateral-velocity coupling has been characterized.

APPLY_ZERO_VELOCITY_CONSTRAINT

Default: FALSE
Parameter Class: Tunable
Impact of Change: Medium
Technical Info: Enables IMU-triggered zero-velocity updates when the platform is detected as stationary.
Practical Tuning Info: Enable for platforms with expected stationary periods to reduce pose drift during stops.

SIGMA_ZERO_TRANSLATIONAL_VELOCITY_CONSTRAINT_MPS

Default: 0.02
Parameter Class: Tunable
Impact of Change: Low
Technical Info: Translational zero-velocity constraint sigma, in m/s.
Practical Tuning Info: Leave at the default for most cases.

SIGMA_ZERO_ROTATIONAL_VELOCITY_CONSTRAINT_RPS

Default: 0.002
Parameter Class: Tunable
Impact of Change: Low
Technical Info: Rotational zero-velocity constraint sigma, in rad/s.
Practical Tuning Info: Leave at the default for most cases.

ZERO_VELOCITY_UPDATE_DF_MAGNITUDE_THRESHOLD

Default: 0.8
Parameter Class: Tunable
Impact of Change: Low
Technical Info: Accelerometer-delta stationarity threshold used to detect zero-velocity conditions.
Practical Tuning Info: Leave at the default for most cases.

ZERO_VELOCITY_UPDATE_DOMEGATILDE_MAGNITUDE_THRESHOLD

Default: 0.006
Parameter Class: Tunable
Impact of Change: Low
Technical Info: Gyro-delta stationarity threshold used to detect zero-velocity conditions.
Practical Tuning Info: Leave at the default for most cases.

ZERO_VELOCITY_UPDATE_CONSECUTIVE_COUNT_THRESHOLD

Default: 10
Parameter Class: Tunable
Impact of Change: Low
Technical Info: Number of consecutive stationary IMU samples required before a zero-velocity update is applied.
Practical Tuning Info: Leave at the default for most cases. Raise it to require more sustained stillness before zero-velocity updates engage.