Class UDUEKF¶
Defined in File udu_filter.h
Inheritance Relationships¶
Base Type¶
public lupnt::EKF(Class EKF)
Derived Type¶
public lupnt::UDUStochasticCloningEKF(Class UDUStochasticCloningEKF)
Class Documentation¶
-
class UDUEKF : public lupnt::EKF¶
Extended Kalman filter that stores and updates the covariance as a UDU (Bierman-Thornton / square-root) factorization
P = U diag(D) U^Tinstead of a dense matrix.A drop-in
EKFreplacement (registered with theFilterasset factory as"UDUEKF") for applications that need the improved numerical conditioning of a square-root filter; reusesEKF’s outlier rejection, fault detection, and smoother infrastructure, but overridesPredict/Update/SetCovarianceto maintainU_/D_diag_viaUDUDecomposition/UDUReconstruct(seeudu_utils.h).Subclassed by lupnt::UDUStochasticCloningEKF
Public Functions
-
UDUEKF() = default¶
-
inline explicit UDUEKF(Config &config)¶
Construct a UDU EKF from a YAML config node (forwarded to
EKF).
-
~UDUEKF() override = default¶
-
virtual void SetCovariance(const MatXd &P) override¶
Set the initial state covariance
P_(viaFilter::SetCovariance) and immediately factor it intoU_/D_diag_viaSetUd.
-
virtual void Predict(Real t, const State *u = nullptr) override¶
UDU-filter predict step: same propagation as
EKF::Predict(state viaf_dyn_/F_, process noiseQ_viaf_proc_), but reconstructsP_fromU_/D_diag_before propagation and refactors the result back intoU_/D_diag_viaSetUdafterward.
-
virtual void Update(const VecX &z_true) override¶
UDU-filter update step: same outlier handling as
EKF::Update, but applies the correction via the sequential Carlson (UD/Bierman-Thornton) update (CarlsonUpdate) instead of a batch Joseph-form Kalman update.
Protected Functions
-
void SetUd()¶
Refactor the current dense covariance
P_intoU_/D_diag_viaUDUDecomposition.Called by
SetCovariance(on initialization) and at the end ofPredict(afterP_has been propagated and process noise added).
-
void CarlsonUpdate()¶
Sequentially process each scalar component of the measurement residual
dz_using the Carlson-form (rank-1 UD/Bierman-Thornton) measurement update, refactoringU_/D_diag_after each component and accumulating the total state correctiondx_.Called by
Updateonce outlier rejection has finalizeddz_/H_/R_. Implements the algorithmic core that distinguishesUDUEKF::UpdatefromEKF::Update’s batch Joseph-form update.
-
UDUEKF() = default¶