Go to the documentation of this file.
   30 #include <Eigen/Dense> 
   31 #include <type_traits> 
   72     template <
typename Dynamics>
 
   74       !std::is_convertible_v<Dynamics, TangentVector>&&
 
   91     template <
typename Dynamics, 
typename = enable_if_dynamics<Dynamics>>
 
   95       if constexpr (std::is_same_v<G, Matrix>) {
 
  100           const Matrix I_n = Matrix::Identity(this->
n_, this->
n_);
 
  101           *
A = I_n + Dexp * Df * 
dt; 
 
  110           *
A = traits<G>::Inverse(
U).AdjointMap() + Dexp * Df * 
dt;
 
  112         return this->
X_.compose(U);
 
  128     template <
typename Dynamics, 
typename = enable_if_dynamics<Dynamics>>
 
  132         A.resize(this->
n_, this->
n_);
 
  135       this->
P_ = A * this->
P_ * A.transpose() + 
Q;
 
  142     template<
typename Control, 
typename Dynamics>
 
  144       std::is_invocable_r_v<TangentVector, Dynamics, const G&, const Control&, OptionalJacobian<Dim, Dim>&>
 
  160     template <
typename Control, 
typename Dynamics, 
typename = enable_if_full_dynamics<Control, Dynamics>>
 
  178     template <
typename Control, 
typename Dynamics, 
typename = enable_if_full_dynamics<Control, Dynamics>>
 
  
G predictMean(Dynamics &&f, double dt, OptionalJacobian< Dim, Dim > A={}) const
int n_
Runtime tangent space dimension of M.
typename traits< G >::TangentVector TangentVector
Tangent vector type for the manifold M.
Extended Kalman Filter base class on a generic manifold M.
typename Base::Covariance Covariance
Eigen::Matrix< double, Dim, Dim > Jacobian
State transition Jacobian type (F).
void predict(Dynamics &&f, const Control &u, double dt, const Covariance &Q)
G X_
Manifold state estimate.
Eigen::Matrix< double, Dim, Dim > Covariance
Covariance matrix type (P, Q).
Pose2_ Expmap(const Vector3_ &xi)
G predictMean(Dynamics &&f, const Control &u, double dt, OptionalJacobian< Dim, Dim > A={}) const
Extended Kalman Filter on a Lie group G, derived from ManifoldEKF.
typename Base::TangentVector TangentVector
Covariance P_
Covariance (Eigen::Matrix<double, Dim, Dim>).
LieGroupEKF(const G &X0, const Covariance &P0)
void predict(Dynamics &&f, double dt, const Covariance &Q)
typename Base::Jacobian Jacobian
Jacobian for group operations (Adjoint, Expmap derivatives, F).
Point2(* f)(const Point3 &, OptionalJacobian< 2, 3 >)
The quaternion class used to represent 3D orientations and rotations.
Extended Kalman Filter on a generic manifold M.
Base class and basic functions for Lie types.
std::enable_if_t< !std::is_convertible_v< Dynamics, TangentVector > &&std::is_invocable_r_v< TangentVector, Dynamics, const G &, OptionalJacobian< Dim, Dim > & > > enable_if_dynamics
static constexpr int Dim
Compile-time dimension of G.
JacobiRotation< float > G
static constexpr int Dim
Compile-time dimension of the manifold M.
std::enable_if_t< std::is_invocable_r_v< TangentVector, Dynamics, const G &, const Control &, OptionalJacobian< Dim, Dim > & > > enable_if_full_dynamics
typename std::enable_if< B, T >::type enable_if_t
from cpp_future import (convenient aliases from C++14/17)
gtsam
Author(s): 
autogenerated on Wed May 28 2025 03:01:42