25 #ifndef INCLUDED_FlexibleKalmanBase_h_GUID_E4CC84A0_1B4F_4389_95ED_9C37F5FEE95D 26 #define INCLUDED_FlexibleKalmanBase_h_GUID_E4CC84A0_1B4F_4389_95ED_9C37F5FEE95D 35 #include <type_traits> 37 #ifndef OSVR_KALMAN_DEBUG_OUTPUT 38 #define OSVR_KALMAN_DEBUG_OUTPUT(Name, Value) 54 template <DimensionType n>
62 template <types::DimensionType DIM>
73 template <DimensionType n>
80 HasDimensionBase, T>::value>::type> {
87 using Dimension =
typename detail::Dimension_impl<T>::type;
90 template <
typename FilterType>
94 template <
typename FilterType>
104 template <DimensionType n>
108 template <
typename T>
112 template <DimensionType n>
116 template <
typename T>
120 template <DimensionType m, DimensionType n>
124 template <
typename T,
typename U>
133 template <
typename StateType,
typename ProcessModelType>
138 processModel.getStateTransitionMatrix(state, dt);
145 OSVR_KALMAN_DEBUG_OUTPUT(
146 "Process Noise Covariance Q",
147 processModel.getSampledProcessNoiseCovariance(dt));
148 return A * P * A.transpose() +
149 processModel.getSampledProcessNoiseCovariance(dt);
155 #endif // INCLUDED_FlexibleKalmanBase_h_GUID_E4CC84A0_1B4F_4389_95ED_9C37F5FEE95D Definition: FlexibleKalmanBase.h:57
types::DimSquareMatrix< StateType > predictErrorCovariance(StateType const &state, ProcessModelType &processModel, double dt)
Computes P-.
Definition: FlexibleKalmanBase.h:135
typename FilterType::State StateType
Given a filter type, get the state type.
Definition: FlexibleKalmanBase.h:91
std::integral_constant< DimensionType, n > DimensionConstant
Type constant for dimensions.
Definition: FlexibleKalmanBase.h:55
typename detail::Dimension_impl< T >::type Dimension
Given a state or measurement, get the dimension as a std::integral_constant.
Definition: FlexibleKalmanBase.h:87
Convenience base class for things (like states and measurements) that have a dimension.
Definition: FlexibleKalmanBase.h:63
The main namespace for all C++ elements of the framework, internal and external.
Definition: namespace_osvr.dox:3
Represents a diagonal matrix with its storage.
Definition: DiagonalMatrix.h:135
Definition: TypeSafeIdHash.h:44
Header wrapping include of <Eigen/Core> and <Eigen/Geometry> for warning quieting.
typename FilterType::ProcessModel ProcessModelType
Given a filter type, get the process model type.
Definition: FlexibleKalmanBase.h:95
Definition: newuoa.h:1888
Definition: FlexibleKalmanBase.h:69
std::size_t DimensionType
Type for dimensions.
Definition: FlexibleKalmanBase.h:51
The matrix class, also used for vectors and row-vectors.
Definition: Matrix.h:127
double Scalar
Common scalar type.
Definition: FlexibleKalmanBase.h:48