21 #ifndef MOTION_MODEL__CATR_CORE_HPP_ 22 #define MOTION_MODEL__CATR_CORE_HPP_ 35 namespace motion_model
81 template<
int32_t NumStates>
83 const Eigen::Matrix<float32_t, NumStates, 1U> &
x,
93 template<
int32_t NumStates>
95 const Eigen::Matrix<float32_t, NumStates, 1U> &
x,
105 template<
int32_t NumStates>
109 Eigen::Matrix<float32_t, NumStates, NumStates> & F);
117 template<
int32_t NumStates>
119 const Eigen::Matrix<float32_t, NumStates, 1U> & ref,
122 Eigen::Matrix<float32_t, NumStates, 1U> &
x);
128 #endif // MOTION_MODEL__CATR_CORE_HPP_ This struct holds some common worker variables for CATR model's jacobian and prediction computation...
Definition: catr_core.hpp:40
This is an enum-like struct for convenience.
Definition: catr_core.hpp:67
float float32_t
Definition: types.hpp:36
This struct holds some common worker variables for CATR model's jacobian and prediction computation...
Definition: catr_core.hpp:54
float32_t vp
next velocity after time step
Definition: catr_core.hpp:57
MOTION_MODEL_LOCAL void catr_compute_jacobian(const CatrInvariantWorkspace &iws, const CatrVariantWorkspace &vws, Eigen::Matrix< float32_t, NumStates, NumStates > &F)
Compute jacobian for CATR model, assumes ws is fully initialized.
Definition: catr_core.cpp:81
float32_t w
current state heading rate
Definition: catr_core.hpp:43
bool bool8_t
Definition: types.hpp:33
This file includes common type definition.
float32_t a
current state acceleration
Definition: catr_core.hpp:44
float32_t cp
cosine of next heading, not calculated if w is 0
Definition: catr_core.hpp:61
float32_t w2_inv
inverse square of heading rate, not calculated if w is 0
Definition: catr_core.hpp:49
DifferentialState x
Definition: kinematic_bicycle.snippet.hpp:28
float32_t vw
product of velocity times heading rate, not calculated if w is 0
Definition: catr_core.hpp:47
MOTION_MODEL_LOCAL void catr_workspace_init_variant(const Eigen::Matrix< float32_t, NumStates, 1U > &x, const float32_t dt_s, const CatrInvariantWorkspace &iws, CatrVariantWorkspace &ws)
Initialize dt varying values for CATR model.
Definition: catr_core.cpp:55
float32_t thp
next heading after time step
Definition: catr_core.hpp:59
Definition: controller_base.hpp:30
bool8_t is_w_nonzero
if heading rate is above some small number threshold
Definition: catr_core.hpp:42
float32_t w_inv
inverse of heading rate, not calculated if w is 0
Definition: catr_core.hpp:48
float32_t wT
product of heading rate and time step, not calculated if w is 0
Definition: catr_core.hpp:58
float32_t s
sine of current state's heading
Definition: catr_core.hpp:45
float32_t c
cosine of current state's heading
Definition: catr_core.hpp:46
float32_t sp
sine of next heading, not calculated if w is 0
Definition: catr_core.hpp:60
MOTION_MODEL_LOCAL void catr_predict(const Eigen::Matrix< float32_t, NumStates, 1U > &ref, const CatrInvariantWorkspace &iws, const CatrVariantWorkspace &vws, Eigen::Matrix< float32_t, NumStates, 1U > &x)
Propagate CATR model forward in time.
Definition: catr_core.cpp:150
This file defines the motion model interface used by kalman filters.
float32_t awT
product of acceleration, heading rate, and time step. If w is 0, path length
Definition: catr_core.hpp:62
float32_t dt
time step
Definition: catr_core.hpp:56
Eigen::Index index_t
indexing matches what matrices use
Definition: motion_model.hpp:41
MOTION_MODEL_LOCAL void catr_workspace_init_invariant(const Eigen::Matrix< float32_t, NumStates, 1U > &x, CatrInvariantWorkspace &ws)
Initalize invariant values in catr workspace.
Definition: catr_core.cpp:33
This file defines the lanelet2_map_provider_node class.
Definition: quick_sort.hpp:24