21 #ifndef MOTION_MODEL__MOTION_MODEL_HPP_
22 #define MOTION_MODEL__MOTION_MODEL_HPP_
37 namespace motion_model
45 template<
int32_t NumStates>
58 Eigen::Matrix<float32_t, NumStates, 1U> &
x,
59 const std::chrono::nanoseconds & dt)
const = 0;
66 virtual void predict(
const std::chrono::nanoseconds & dt) = 0;
70 virtual void compute_jacobian(
71 Eigen::Matrix<float32_t, NumStates, NumStates> & F,
72 const std::chrono::nanoseconds & dt) = 0;
79 virtual void compute_jacobian_and_predict(
80 Eigen::Matrix<float32_t, NumStates, NumStates> & F,
81 const std::chrono::nanoseconds & dt) = 0;
88 virtual void reset(
const Eigen::Matrix<float32_t, NumStates, 1U> &
x) = 0;
91 virtual const Eigen::Matrix<float32_t, NumStates, 1U> & get_state()
const = 0;
106 #endif // MOTION_MODEL__MOTION_MODEL_HPP_