template<typename G>
class gtsam::LeftLinearEKF< G >
EKF on a Lie group with a general left–linear prediction model.
Discrete step: x⁺ = W · φ(x) · U, with W,U ∈ G and φ ∈ Aut(G). For left-invariant error, the state-independent linearization is A = Ad_{U^{-1}} · Φ where Φ := dφ|_e. The left factor W cancels in A and does not appear there.
|
|
| LeftLinearEKF (const G &X0, const Covariance &P0) |
|
template<class Phi, typename = std::enable_if_t<is_automorphism<Phi>::value>> |
| void | predict (const G &W, const Phi &phi, const G &U, const Covariance &Q) |
| | General left–linear prediction, updates filter state as follows: X⁺ = W · φ(X) · U P⁺ = A P Aᵀ + Q with A = Ad_{U^{-1}} Φ, Φ := dφ|_e.
|
|
template<class Phi, typename = std::enable_if_t<is_automorphism<Phi>::value>> |
| void | predict (const Phi &phi, const G &U, const Covariance &Q) |
| | Special case of predict with W=I, updates filter state as follows: Update: X⁺ = φ(X) · U Covariance: P⁺ = A P Aᵀ + Q with A = Ad_{U^{-1}} Φ, Φ := dφ|_e.
|
| | LieGroupEKF (const G &X0, const Covariance &P0) |
| | Constructor: initialize with state and covariance.
|
| template<size_t K = 1> |
| Jacobian | transitionMatrix (const TangentVector &xi, const Jacobian &Df, double dt, const G &U, const Jacobian &Dexp) const |
| | Compute the discrete-time transition matrix Φ corresponding to a continuous-time linearization (Df) over time dt.
|
| template<size_t K = 1, typename Dynamics, typename = enable_if_dynamics<Dynamics>> |
| G | predictMean (Dynamics &&f, double dt, OptionalJacobian< Dim, Dim > Phi={}) const |
| | Predict mean and Jacobian Phi with state-dependent dynamics: xi = f(X_k, Df) (tangent vector dynamics and Jacobian Df) U = Expmap(xi * dt, Dexp) (motion increment U and Expmap Jacobian Dexp) X_{k+1} = X_k * U (Predict next state via compose) Phi = Ad_{U^{-1}} + Dexp * Df * dt (K=1 first-order Jacobian) expm((Df - ad(xi))dt) (K>1 matrix exponential discretization).
|
| template<size_t K = 1, typename Dynamics, typename = enable_if_dynamics<Dynamics>> |
| void | predict (Dynamics &&f, double dt, const Covariance &Q) |
| | Predict step with state-dependent dynamics: Uses predictMean to compute X_{k+1} and Phi, then updates covariance.
|
| template<size_t K = 1, typename Control, typename Dynamics, typename = enable_if_full_dynamics<Control, Dynamics>> |
| G | predictMean (Dynamics &&f, const Control &u, double dt, OptionalJacobian< Dim, Dim > Phi={}) const |
| | Predict mean and Jacobian A with state and control input dynamics: Wraps the dynamics function and calls the state-only predictMean.
|
| template<size_t K = 1, typename Control, typename Dynamics, typename = enable_if_full_dynamics<Control, Dynamics>> |
| void | predict (Dynamics &&f, const Control &u, double dt, const Covariance &Q) |
| | Predict step with state and control input dynamics: Wraps the dynamics function and calls the state-only predict.
|
| void | predictWithCompose (const G &U, const Jacobian &J_UX, const Covariance &Q) |
| | Predict using a precomputed group increment U and its Jacobian J_UX.
|
|
void | predict (const G &X_next, const Jacobian &F, const Covariance &Q) |
| | Expose base class predict method, predict(const M& X_next, const Jacobian& F, const Covariance& Q).
|
|
void | update (const Measurement &prediction, const Eigen::Matrix< double, traits< Measurement >::dimension, Dim > &H, const Measurement &z, const Eigen::Matrix< double, traits< Measurement >::dimension, traits< Measurement >::dimension > &R, bool performReset=true) |
| | Update overloads follow ManifoldEKF.
|
|
void | update (MeasurementFunction &&h, const Measurement &z, const Eigen::Matrix< double, traits< Measurement >::dimension, traits< Measurement >::dimension > &R, bool performReset=true) |
| | Update overloads follow ManifoldEKF.
|
| | ManifoldEKF (const G &X0, const Covariance &P0) |
| | Constructor: initialize with state and covariance.
|
| const G & | state () const |
| const Covariance & | covariance () const |
| size_t | dimension () const |
| void | predict (const G &X_next, const Jacobian &F, const Covariance &Q) |
| | Basic predict step: Updates state and covariance given the predicted next state and the state transition Jacobian F.
|
|
auto | KalmanGain (const HMatrix &H, const RMatrix &R) const |
| | Kalman gain K = P H^T S^-1.
|
|
void | JosephUpdate (const GainMatrix &K, const HMatrix &H, const RMatrix &R) |
| | Joseph-form covariance update in the current tangent space using a precomputed gain.
|
| void | update (const Measurement &prediction, const Eigen::Matrix< double, traits< Measurement >::dimension, Dim > &H, const Measurement &z, const Eigen::Matrix< double, traits< Measurement >::dimension, traits< Measurement >::dimension > &R, bool performReset=true) |
| | Measurement update: Corrects the state and covariance using a pre-calculated predicted measurement and its Jacobian.
|
| void | update (MeasurementFunction &&h, const Measurement &z, const Eigen::Matrix< double, traits< Measurement >::dimension, traits< Measurement >::dimension > &R, bool performReset=true) |
| | Measurement update: Corrects the state and covariance using a measurement model function.
|
| void | updateWithVector (const gtsam::Vector &prediction, const Matrix &H, const gtsam::Vector &z, const Matrix &R, bool performReset=true) |
| | Convenience bridge for wrappers: vector measurement update calling update<Vector>.
|
| void | reset (const TangentVector &eta) |
| | Reset step: retract the state by a tangent perturbation and, if available, transport the covariance from the old tangent space to the new tangent space.
|