Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
tuw::KalmanFilterPredictInterface< NumType, XDim, UDim, ParamType > Class Template Referenceabstract

Interface for simplified manipulation of specialized (Extended) Kalman Filter prediction part. More...

#include <kalman_filter.hpp>

Inheritance diagram for tuw::KalmanFilterPredictInterface< NumType, XDim, UDim, ParamType >:
Inheritance graph
[legend]

Public Types

using ParamsType = ParamType
 Parameter type. More...
 
- Public Types inherited from tuw::KalmanFilter< NumType, XDim >
using NumericalType = NumType
 Numerical type. More...
 

Public Member Functions

void init (const Eigen::Matrix< NumType, XDim, 1 > &_x0)
 Initializes the state vector and triggers initialization of Sigma_. More...
 
 KalmanFilterPredictInterface (ParamType &_params)
 
 KalmanFilterPredictInterface (const KalmanFilterPredictInterface &)=default
 
 KalmanFilterPredictInterface (KalmanFilterPredictInterface &&)=default
 
KalmanFilterPredictInterfaceoperator= (const KalmanFilterPredictInterface &)=default
 
KalmanFilterPredictInterfaceoperator= (KalmanFilterPredictInterface &&)=default
 
const ParamType & param () const
 Parameters const acces. More...
 
template<int i = XDim, typename std::enable_if<(i > = 0>
void predict (const Eigen::Matrix< NumType, UDim, 1 > &_u, const double &_Ta)
 Performs the prediction step. More...
 
template<int i = XDim, typename std::enable_if<(i==-1)>::type * = nullptr>
void predict (const Eigen::Matrix< NumType, UDim, 1 > &_u, const double &_Ta)
 Performs the prediction step with resizing. More...
 
template<int i = UDim, typename std::enable_if<(i==0)>::type * = nullptr>
void predict (const double &_Ta)
 
virtual ~KalmanFilterPredictInterface ()=default
 
- Public Member Functions inherited from tuw::KalmanFilter< NumType, XDim >
void init (const Eigen::Matrix< NumType, XDim, 1 > &_x0, const Eigen::Matrix< NumType, XDim, XDim > &_Sigma0)
 Initializes state and covariance of filter. More...
 
 KalmanFilter ()=default
 
 KalmanFilter (const KalmanFilter &)=default
 
 KalmanFilter (KalmanFilter &&)=default
 
KalmanFilteroperator= (const KalmanFilter &)=default
 
KalmanFilteroperator= (KalmanFilter &&)=default
 
void predict (const Eigen::Matrix< NumType, XDim, 1 > &_f, const Eigen::Matrix< NumType, XDim, XDim > &_Phi, const Eigen::Matrix< NumType, XDim, XDim > &_Q)
 Preforms Kalman prediction step. More...
 
const Eigen::Matrix< NumType, XDim, XDim > & Sigma () const
 State covariance matrix const access. More...
 
template<int UpdateDim>
void update (const Eigen::Matrix< NumType, UpdateDim, 1 > &_deltah, const Eigen::Matrix< NumType, UpdateDim, XDim > &_C, const Eigen::Matrix< NumType, UpdateDim, UpdateDim > &_R)
 Preforms Kalman update step. More...
 
const Eigen::Matrix< NumType, XDim, 1 > & x () const
 State vector const access. More...
 
virtual ~KalmanFilter ()=default
 

Protected Member Functions

virtual void computef (const Eigen::Matrix< NumType, UDim, 1 > &_u)=0
 Interface for computation of the state transition function vector f_. More...
 
virtual void computePhi ()=0
 Interface for computation of the state transition matrix Phi_. More...
 
virtual void computeQ ()=0
 Interface for computation of the state process noise matrix Q_. More...
 
virtual void computeSigmaInit ()=0
 Interface for initialization of the state covariance matrix Sigma_. More...
 
virtual void precompute (const double &_Ta)=0
 Interface for precomputation function called at the beginning of the prediction step. More...
 

Protected Attributes

Eigen::Matrix< NumType, XDim, 1 > f_
 State transition function vector More...
 
ParamType & params_
 Filter parameters. More...
 
Eigen::Matrix< NumType, XDim, XDim > Phi_
 
Eigen::Matrix< NumType, XDim, XDim > Q_
 to the state variables More...
 
- Protected Attributes inherited from tuw::KalmanFilter< NumType, XDim >
Eigen::Matrix< NumType, XDim, XDim > Sigma_
 State covariance matrix More...
 
Eigen::Matrix< NumType, XDim, 1 > x_
 State vector More...
 

Additional Inherited Members

- Static Public Attributes inherited from tuw::KalmanFilter< NumType, XDim >
static constexpr const int xDim = XDim
 State vector size More...
 

Detailed Description

template<typename NumType, int XDim, size_t UDim, typename ParamType>
class tuw::KalmanFilterPredictInterface< NumType, XDim, UDim, ParamType >

Interface for simplified manipulation of specialized (Extended) Kalman Filter prediction part.

Template Parameters
NumTypeNumerical type of the underlying variables (matrices, vectors)
XDimDimension of the state vector. Value -1 relates to dynamic size state vector
UDimDimension of the input vector. Value 0 relates to an input-less filter

Definition at line 146 of file kalman_filter.hpp.

Member Typedef Documentation

template<typename NumType, int XDim, size_t UDim, typename ParamType>
using tuw::KalmanFilterPredictInterface< NumType, XDim, UDim, ParamType >::ParamsType = ParamType

Parameter type.

Definition at line 170 of file kalman_filter.hpp.

Constructor & Destructor Documentation

template<typename NumType, int XDim, size_t UDim, typename ParamType>
tuw::KalmanFilterPredictInterface< NumType, XDim, UDim, ParamType >::KalmanFilterPredictInterface ( ParamType &  _params)
inline

Definition at line 150 of file kalman_filter.hpp.

template<typename NumType, int XDim, size_t UDim, typename ParamType>
virtual tuw::KalmanFilterPredictInterface< NumType, XDim, UDim, ParamType >::~KalmanFilterPredictInterface ( )
virtualdefault
template<typename NumType, int XDim, size_t UDim, typename ParamType>
tuw::KalmanFilterPredictInterface< NumType, XDim, UDim, ParamType >::KalmanFilterPredictInterface ( const KalmanFilterPredictInterface< NumType, XDim, UDim, ParamType > &  )
default
template<typename NumType, int XDim, size_t UDim, typename ParamType>
tuw::KalmanFilterPredictInterface< NumType, XDim, UDim, ParamType >::KalmanFilterPredictInterface ( KalmanFilterPredictInterface< NumType, XDim, UDim, ParamType > &&  )
default

Member Function Documentation

template<typename NumType, int XDim, size_t UDim, typename ParamType>
virtual void tuw::KalmanFilterPredictInterface< NumType, XDim, UDim, ParamType >::computef ( const Eigen::Matrix< NumType, UDim, 1 > &  _u)
protectedpure virtual

Interface for computation of the state transition function vector f_.

Implemented in tuw::KalmanFilterLinOrd1< NumType, XDim, UDim, ParamType >.

template<typename NumType, int XDim, size_t UDim, typename ParamType>
virtual void tuw::KalmanFilterPredictInterface< NumType, XDim, UDim, ParamType >::computePhi ( )
protectedpure virtual

Interface for computation of the state transition matrix Phi_.

Implemented in tuw::KalmanFilterLinOrd1< NumType, XDim, UDim, ParamType >.

template<typename NumType, int XDim, size_t UDim, typename ParamType>
virtual void tuw::KalmanFilterPredictInterface< NumType, XDim, UDim, ParamType >::computeQ ( )
protectedpure virtual

Interface for computation of the state process noise matrix Q_.

Implemented in tuw::KalmanFilterLinOrd1< NumType, XDim, UDim, ParamType >.

template<typename NumType, int XDim, size_t UDim, typename ParamType>
virtual void tuw::KalmanFilterPredictInterface< NumType, XDim, UDim, ParamType >::computeSigmaInit ( )
protectedpure virtual

Interface for initialization of the state covariance matrix Sigma_.

Implemented in tuw::KalmanFilterLinOrd1< NumType, XDim, UDim, ParamType >.

template<typename NumType, int XDim, size_t UDim, typename ParamType>
void tuw::KalmanFilterPredictInterface< NumType, XDim, UDim, ParamType >::init ( const Eigen::Matrix< NumType, XDim, 1 > &  _x0)
inline

Initializes the state vector and triggers initialization of Sigma_.

For dynamic state vector size, Sigma_ is being properly resized (as quadratic matrix) but its content is not* initialized.

Parameters
_x0Initial state
See also
computeSigmaInit for the interface of the state covariance matrix initialization.

Definition at line 182 of file kalman_filter.hpp.

template<typename NumType, int XDim, size_t UDim, typename ParamType>
KalmanFilterPredictInterface& tuw::KalmanFilterPredictInterface< NumType, XDim, UDim, ParamType >::operator= ( const KalmanFilterPredictInterface< NumType, XDim, UDim, ParamType > &  )
default
template<typename NumType, int XDim, size_t UDim, typename ParamType>
KalmanFilterPredictInterface& tuw::KalmanFilterPredictInterface< NumType, XDim, UDim, ParamType >::operator= ( KalmanFilterPredictInterface< NumType, XDim, UDim, ParamType > &&  )
default
template<typename NumType, int XDim, size_t UDim, typename ParamType>
const ParamType& tuw::KalmanFilterPredictInterface< NumType, XDim, UDim, ParamType >::param ( ) const
inline

Parameters const acces.

Definition at line 248 of file kalman_filter.hpp.

template<typename NumType, int XDim, size_t UDim, typename ParamType>
virtual void tuw::KalmanFilterPredictInterface< NumType, XDim, UDim, ParamType >::precompute ( const double &  _Ta)
protectedpure virtual

Interface for precomputation function called at the beginning of the prediction step.

Implemented in tuw::KalmanFilterLinOrd1< NumType, XDim, UDim, ParamType >.

template<typename NumType, int XDim, size_t UDim, typename ParamType>
template<int i = XDim, typename std::enable_if<(i > = 0>
void tuw::KalmanFilterPredictInterface< NumType, XDim, UDim, ParamType >::predict ( const Eigen::Matrix< NumType, UDim, 1 > &  _u,
const double &  _Ta 
)
inline

Performs the prediction step.

This function performs no resizing on the internal filter variables and is thus intended for external use only for compile-time constant filter state size.

The order in which the implementation-specific functions are called is: precompute, computePhi, computef, computeQ. Note that computePhi is called before computef and thus Phi_ can be used in computef (for linear prediction models).

Parameters
_uInputs vector
_TaTime duration since last prediction step
See also
precompute, computePhi, computef, computeQ

Definition at line 206 of file kalman_filter.hpp.

template<typename NumType, int XDim, size_t UDim, typename ParamType>
template<int i = XDim, typename std::enable_if<(i==-1)>::type * = nullptr>
void tuw::KalmanFilterPredictInterface< NumType, XDim, UDim, ParamType >::predict ( const Eigen::Matrix< NumType, UDim, 1 > &  _u,
const double &  _Ta 
)
inline

Performs the prediction step with resizing.

This function performs resizing on the internal filter variables and later calls its its static counterpart. It is intended for external use for dynamic filter state vector size.

For dynamic state vector size, f_, Phi_ and Q_ are being properly resized but their content is not* initialized.

See also
predict version for constant state vector size.

Definition at line 227 of file kalman_filter.hpp.

template<typename NumType, int XDim, size_t UDim, typename ParamType>
template<int i = UDim, typename std::enable_if<(i==0)>::type * = nullptr>
void tuw::KalmanFilterPredictInterface< NumType, XDim, UDim, ParamType >::predict ( const double &  _Ta)
inline

Definition at line 237 of file kalman_filter.hpp.

Member Data Documentation

template<typename NumType, int XDim, size_t UDim, typename ParamType>
Eigen::Matrix<NumType, XDim, 1> tuw::KalmanFilterPredictInterface< NumType, XDim, UDim, ParamType >::f_
protected

State transition function vector

Definition at line 254 of file kalman_filter.hpp.

template<typename NumType, int XDim, size_t UDim, typename ParamType>
ParamType& tuw::KalmanFilterPredictInterface< NumType, XDim, UDim, ParamType >::params_
protected

Filter parameters.

Definition at line 261 of file kalman_filter.hpp.

template<typename NumType, int XDim, size_t UDim, typename ParamType>
Eigen::Matrix<NumType, XDim, XDim> tuw::KalmanFilterPredictInterface< NumType, XDim, UDim, ParamType >::Phi_
protected

State transition function partial derivative (Jacobian) with respect

Definition at line 256 of file kalman_filter.hpp.

template<typename NumType, int XDim, size_t UDim, typename ParamType>
Eigen::Matrix<NumType, XDim, XDim> tuw::KalmanFilterPredictInterface< NumType, XDim, UDim, ParamType >::Q_
protected

to the state variables

Process noise matrix (mapped in state-space)

Definition at line 259 of file kalman_filter.hpp.


The documentation for this class was generated from the following file:


tuw_control
Author(s): George Todoran
autogenerated on Mon Jun 10 2019 15:27:23