Autoware.Auto
autoware::motion::motion_model Namespace Reference

This namespace is for the motion_model package. More...

Classes

struct  CatrInvariantWorkspace
 This struct holds some common worker variables for CATR model's jacobian and prediction computation, specifically those that are time invariant. More...
 
class  CatrModel
 This is a constant acceleration, constant turn-rate motion model. This model produces clothoidal trajectories and corresponds to a zero order hold on vehicle controls (throttle and steer angle) More...
 
struct  CatrState
 This is an enum-like struct for convenience. More...
 
struct  CatrVariantWorkspace
 This struct holds some common worker variables for CATR model's jacobian and prediction computation, specifically those that are time varying. More...
 
class  ConstantAcceleration
 This is a simple constant acceleration motion model. More...
 
class  ConstantVelocity
 This is a simple constant velocity motion model. More...
 
class  MotionModel
 Virtual interface for all motion models for use with prediction. More...
 
class  ParameterEstimator
 Simple "motion model" with no dynamics for parameter estimation. More...
 

Typedefs

using index_t = Eigen::Index
 indexing matches what matrices use More...
 

Functions

template<int32_t NumStates>
MOTION_MODEL_LOCAL void catr_workspace_init_invariant (const Eigen::Matrix< float32_t, NumStates, 1U > &x, CatrInvariantWorkspace &ws)
 Initalize invariant values in catr workspace. More...
 
template<int32_t NumStates>
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. More...
 
template<int32_t NumStates>
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. More...
 
template<int32_t NumStates>
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. More...
 
template<int32_t NumStates>
void catr_workspace_init_invariant (const Eigen::Matrix< float32_t, NumStates, 1U > &x, CatrInvariantWorkspace &ws)
 Initalize invariant values in catr workspace. More...
 
template<int32_t NumStates>
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. More...
 
template<int32_t NumStates>
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. More...
 
template<int32_t NumStates>
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. More...
 
template void catr_workspace_init_invariant< 6U > (const Eigen::Matrix< float32_t, 6U, 1U > &, CatrInvariantWorkspace &)
 
template void catr_workspace_init_variant< 6U > (const Eigen::Matrix< float32_t, 6U, 1U > &, const float32_t, const CatrInvariantWorkspace &, CatrVariantWorkspace &)
 
template void catr_compute_jacobian< 6U > (const CatrInvariantWorkspace &, const CatrVariantWorkspace &, Eigen::Matrix< float32_t, 6U, 6U > &)
 
template void catr_predict< 6U > (const Eigen::Matrix< float32_t, 6U, 1U > &, const CatrInvariantWorkspace &, const CatrVariantWorkspace &, Eigen::Matrix< float32_t, 6U, 1U > &)
 
template void catr_workspace_init_invariant< 8U > (const Eigen::Matrix< float32_t, 8U, 1U > &, CatrInvariantWorkspace &)
 
template void catr_workspace_init_variant< 8U > (const Eigen::Matrix< float32_t, 8U, 1U > &, const float32_t, const CatrInvariantWorkspace &, CatrVariantWorkspace &)
 
template void catr_compute_jacobian< 8U > (const CatrInvariantWorkspace &, const CatrVariantWorkspace &, Eigen::Matrix< float32_t, 8U, 8U > &)
 
template void catr_predict< 8U > (const Eigen::Matrix< float32_t, 8U, 1U > &, const CatrInvariantWorkspace &, const CatrVariantWorkspace &, Eigen::Matrix< float32_t, 8U, 1U > &)
 

Detailed Description

This namespace is for the motion_model package.

Typedef Documentation

◆ index_t

using autoware::motion::motion_model::index_t = typedef Eigen::Index

indexing matches what matrices use

Function Documentation

◆ catr_compute_jacobian() [1/2]

template<int32_t NumStates>
void autoware::motion::motion_model::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.

Parameters
[in]iwsprecompute worker variables for a given state
[in]vwsprecompute worker variables for a given state and dt
[out]Fgets filled with jacobian
Template Parameters
NumStatesdimensionality of model, CATR model is assumed to take the first 6 slots

◆ catr_compute_jacobian() [2/2]

template<int32_t NumStates>
MOTION_MODEL_LOCAL void autoware::motion::motion_model::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.

Parameters
[in]iwsprecompute worker variables for a given state
[in]vwsprecompute worker variables for a given state and dt
[out]Fgets filled with jacobian
Template Parameters
NumStatesdimensionality of model, CATR model is assumed to take the first 6 slots

◆ catr_compute_jacobian< 6U >()

template void autoware::motion::motion_model::catr_compute_jacobian< 6U > ( const CatrInvariantWorkspace ,
const CatrVariantWorkspace ,
Eigen::Matrix< float32_t, 6U, 6U > &   
)

◆ catr_compute_jacobian< 8U >()

template void autoware::motion::motion_model::catr_compute_jacobian< 8U > ( const CatrInvariantWorkspace ,
const CatrVariantWorkspace ,
Eigen::Matrix< float32_t, 8U, 8U > &   
)

◆ catr_predict() [1/2]

template<int32_t NumStates>
MOTION_MODEL_LOCAL void autoware::motion::motion_model::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.

Parameters
[in]refreference state to propagate forward
[in]iwsprecomputed worker variables for ref
[in]vwsprecomputed worker variables for ref and a given dt
[out]xgets filled with reference state propagated forward
Template Parameters
NumStatesdimensionality of model, CATR model is assumed to take the first 6 slots

◆ catr_predict() [2/2]

template<int32_t NumStates>
void autoware::motion::motion_model::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.

Parameters
[in]refreference state to propagate forward
[in]iwsprecomputed worker variables for ref
[in]vwsprecomputed worker variables for ref and a given dt
[out]xgets filled with reference state propagated forward
Template Parameters
NumStatesdimensionality of model, CATR model is assumed to take the first 6 slots

◆ catr_predict< 6U >()

template void autoware::motion::motion_model::catr_predict< 6U > ( const Eigen::Matrix< float32_t, 6U, 1U > &  ,
const CatrInvariantWorkspace ,
const CatrVariantWorkspace ,
Eigen::Matrix< float32_t, 6U, 1U > &   
)

◆ catr_predict< 8U >()

template void autoware::motion::motion_model::catr_predict< 8U > ( const Eigen::Matrix< float32_t, 8U, 1U > &  ,
const CatrInvariantWorkspace ,
const CatrVariantWorkspace ,
Eigen::Matrix< float32_t, 8U, 1U > &   
)

◆ catr_workspace_init_invariant() [1/2]

template<int32_t NumStates>
void autoware::motion::motion_model::catr_workspace_init_invariant ( const Eigen::Matrix< float32_t, NumStates, 1U > &  x,
CatrInvariantWorkspace ws 
)

Initalize invariant values in catr workspace.

Parameters
[in]xstate vector to initialize invariants with
[out]wsgets filled with invariants
Template Parameters
NumStatesdimensionality of model, CATR model is assumed to take the first 6 slots

◆ catr_workspace_init_invariant() [2/2]

template<int32_t NumStates>
MOTION_MODEL_LOCAL void autoware::motion::motion_model::catr_workspace_init_invariant ( const Eigen::Matrix< float32_t, NumStates, 1U > &  x,
CatrInvariantWorkspace ws 
)

Initalize invariant values in catr workspace.

Parameters
[in]xstate vector to initialize invariants with
[out]wsgets filled with invariants
Template Parameters
NumStatesdimensionality of model, CATR model is assumed to take the first 6 slots

◆ catr_workspace_init_invariant< 6U >()

template void autoware::motion::motion_model::catr_workspace_init_invariant< 6U > ( const Eigen::Matrix< float32_t, 6U, 1U > &  ,
CatrInvariantWorkspace  
)

◆ catr_workspace_init_invariant< 8U >()

template void autoware::motion::motion_model::catr_workspace_init_invariant< 8U > ( const Eigen::Matrix< float32_t, 8U, 1U > &  ,
CatrInvariantWorkspace  
)

◆ catr_workspace_init_variant() [1/2]

template<int32_t NumStates>
void autoware::motion::motion_model::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.

Parameters
[in]xstate vector to use as refrence
[in]dt_slookahead time to use for computation
[in]iwsworkspace variable filled with invariants, assumed to have been initialized with the same x in catr_workspace_init_invariant()
[in,out]wsget filled with varying stuff
Template Parameters
NumStatesdimensionality of model, CATR model is assumed to take the first 6 slots

◆ catr_workspace_init_variant() [2/2]

template<int32_t NumStates>
MOTION_MODEL_LOCAL void autoware::motion::motion_model::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.

Parameters
[in]xstate vector to use as refrence
[in]dt_slookahead time to use for computation
[in]iwsworkspace variable filled with invariants, assumed to have been initialized with the same x in catr_workspace_init_invariant()
[in,out]wsget filled with varying stuff
Template Parameters
NumStatesdimensionality of model, CATR model is assumed to take the first 6 slots

◆ catr_workspace_init_variant< 6U >()

template void autoware::motion::motion_model::catr_workspace_init_variant< 6U > ( const Eigen::Matrix< float32_t, 6U, 1U > &  ,
const  float32_t,
const CatrInvariantWorkspace ,
CatrVariantWorkspace  
)

◆ catr_workspace_init_variant< 8U >()

template void autoware::motion::motion_model::catr_workspace_init_variant< 8U > ( const Eigen::Matrix< float32_t, 8U, 1U > &  ,
const  float32_t,
const CatrInvariantWorkspace ,
CatrVariantWorkspace  
)