Skip to content

navigation: honor configured IMU bias in LeggedFixedLagSmoother#2515

Open
ChiyunNoh wants to merge 1 commit intoborglab:developfrom
ChiyunNoh:fix/legged-fixed-lag-bias-init
Open

navigation: honor configured IMU bias in LeggedFixedLagSmoother#2515
ChiyunNoh wants to merge 1 commit intoborglab:developfrom
ChiyunNoh:fix/legged-fixed-lag-bias-init

Conversation

@ChiyunNoh
Copy link
Copy Markdown

Summary

This PR fixes an unintentional zero-bias initialization path in LeggedFixedLagSmoother.

The fixed-lag single-bias estimator now consistently uses the configured startup IMU bias from params.imuBias.

Specifically, this PR:

  • uses params.imuBias when constructing the preintegration object (pim_)
  • initializes biasEstimate_ from params.imuBias
  • resets pim_ with params_.imuBias during full-contact reinitialization instead of using a zero bias

Motivation

LeggedEstimatorReplayExample estimates an initial IMU bias and passes it through params.imuBias. However, LeggedFixedLagSmoother previously initialized some preintegration paths with a zero bias, even when a non-zero startup bias was configured.

This made the fixed_lag_single_bias variant inconsistent with the configured initialization and could affect replay results when a non-zero initial bias is provided.

Validation

Built and ran the relevant legged estimator target/tests locally:

  • cmake --build build -j6 --target LeggedEstimatorReplayExample
  • cmake --build build -j6 --target testLeggedEstimator
  • ./build/gtsam/navigation/tests/testLeggedEstimator passes with no test failures.

Use params.imuBias for PIM construction/reset and initialize biasEstimate_ from params.imuBias to keep fixed_lag_single_bias behavior consistent with configured startup bias.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant