51 LeftLinearEKF(
const G& X0,
const Covariance& P0) : Base(X0, P0) {}
59 template <
typename Phi>
62 std::is_invocable_r<G, Phi, const G&>,
63 std::is_same<decltype(std::declval<Phi>().dIdentity()), Jacobian>> {
70 template <class Phi, typename = std::enable_if_t<is_automorphism<Phi>::value>>
71 static G
Dynamics(
const G& W,
const Phi& phi,
const G& X,
const G& U,
80 template <class Phi, typename = std::enable_if_t<is_automorphism<Phi>::value>>
81 static G
Dynamics(
const Phi& phi,
const G& X,
const G& U,
87 return traits<G>::Compose(phi(X), U);
95 template <class Phi, typename = std::enable_if_t<is_automorphism<Phi>::value>>
96 void predict(
const G& W,
const Phi& phi,
const G& U,
const Covariance& Q) {
99 this->
P_ = A * this->
P_ * A.transpose() + Q;
107 template <class Phi, typename = std::enable_if_t<is_automorphism<Phi>::value>>
108 void predict(
const Phi& phi,
const G& U,
const Covariance& Q) {
111 this->
P_ = A * this->
P_ * A.transpose() + Q;
Base class and basic functions for Lie types.
Extended Kalman Filter derived class for Lie groups G.
Global functions in a separate testing namespace.
Definition chartTesting.h:28
A manifold defines a space in which there is a notion of a linear tangent space that can be centered ...
Definition Group.h:37
OptionalJacobian is an Eigen::Ref like class that can take be constructed using either a fixed size o...
Definition OptionalJacobian.h:40
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 wi...
Definition LeftLinearEKF.h:96
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: ...
Definition LeftLinearEKF.h:108
static G Dynamics(const G &W, const Phi &phi, const G &X, const G &U, OptionalJacobian< Dim, Dim > A={})
General left–linear dynamics.
Definition LeftLinearEKF.h:71
static constexpr int Dim
Definition LeftLinearEKF.h:46
static G Dynamics(const Phi &phi, const G &X, const G &U, OptionalJacobian< Dim, Dim > A={})
Left–linear dynamics with W=I.
Definition LeftLinearEKF.h:81
SFINAE template to check if a type satisfies the automorphism concept.
Definition LeftLinearEKF.h:63
typename Base::TangentVector TangentVector
Tangent vector type.
Definition LieGroupEKF.h:68
typename Base::Jacobian Jacobian
Dim x Dim.
Definition LieGroupEKF.h:66
static constexpr int Dim
Compile-time dimension of G.
Definition LieGroupEKF.h:64
typename Base::Covariance Covariance
Dim x Dim.
Definition LieGroupEKF.h:67
LieGroupEKF(const G &X0, const Covariance &P0)
Constructor: initialize with state and covariance.
Definition LieGroupEKF.h:105
G X_
Definition ManifoldEKF.h:284
Covariance P_
Definition ManifoldEKF.h:285