Autoware.Auto
autoware::motion::motion_model::ParameterEstimator< NumStates > Class Template Reference

Simple "motion model" with no dynamics for parameter estimation. More...

#include <parameter_estimator.hpp>

Inheritance diagram for autoware::motion::motion_model::ParameterEstimator< NumStates >:
Collaboration diagram for autoware::motion::motion_model::ParameterEstimator< NumStates >:

Public Member Functions

ParameterEstimatoroperator= (const ParameterEstimator &rhs)
 Default assignment operator. More...
 
void predict (Eigen::Matrix< float32_t, NumStates, 1U > &x, const std::chrono::nanoseconds &dt) const override
 Do motion based on current state, store result somewhere else. This is intended to be used with motion planning/collision avoidance i.e. to make multiple calls to predict with different time deltas for a rollout to get a concrete representation of predicted trajectories. This function does not mutate the core state of the motion model, and should only mutate some cached worker variables at most. More...
 
void predict (const std::chrono::nanoseconds &dt) override
 Update current state with a given motion. Note that this should be called after compute_jacobian() as it will change the object's state. This is meant to be called before doing assignment and observation updating. This is the equivalent of temporal update for the state. This function mutates the core state of the motion model. More...
 
void compute_jacobian (Eigen::Matrix< float32_t, NumStates, NumStates > &F, const std::chrono::nanoseconds &dt) override
 Compute the jacobian based on the current state and store the result somewhere else. More...
 
void compute_jacobian_and_predict (Eigen::Matrix< float32_t, NumStates, NumStates > &F, const std::chrono::nanoseconds &dt) override
 This is called by Esrcf. This should be first a computation of the jacobian, and then a motion to update the state. This is a distinct function because depending on the motion model, there is some caching and optimization that can be done computing both the motion and jacobian together. More...
 
float32_t operator[] (const motion_model::index_t idx) const override
 Get elements of the model's state. More...
 
void reset (const Eigen::Matrix< float32_t, NumStates, 1U > &x) override
 Set the state. More...
 
const Eigen::Matrix< float32_t, NumStates, 1U > & get_state () const override
 const access to internal state More...
 
- Public Member Functions inherited from autoware::motion::motion_model::MotionModel< NumStates >
constexpr index_t get_num_states () const noexcept
 get dimensionality of this model More...
 
virtual ~MotionModel ()=default
 Destructor. More...
 

Detailed Description

template<int32_t NumStates>
class autoware::motion::motion_model::ParameterEstimator< NumStates >

Simple "motion model" with no dynamics for parameter estimation.

Template Parameters
NumStatesdimensionality of this model's state space

Member Function Documentation

◆ compute_jacobian()

template<int32_t NumStates>
void autoware::motion::motion_model::ParameterEstimator< NumStates >::compute_jacobian ( Eigen::Matrix< float32_t, NumStates, NumStates > &  F,
const std::chrono::nanoseconds &  dt 
)
inlineoverridevirtual

Compute the jacobian based on the current state and store the result somewhere else.

Parameters
[out]Fmatrix to store jacobian into
[in]dtprediction horizon to build jacobian off of

Implements autoware::motion::motion_model::MotionModel< NumStates >.

◆ compute_jacobian_and_predict()

template<int32_t NumStates>
void autoware::motion::motion_model::ParameterEstimator< NumStates >::compute_jacobian_and_predict ( Eigen::Matrix< float32_t, NumStates, NumStates > &  F,
const std::chrono::nanoseconds &  dt 
)
inlineoverridevirtual

This is called by Esrcf. This should be first a computation of the jacobian, and then a motion to update the state. This is a distinct function because depending on the motion model, there is some caching and optimization that can be done computing both the motion and jacobian together.

Parameters
[out]Fmatrix to store jacobian into
[in]dtprediction horizon to build jacobian off of

Implements autoware::motion::motion_model::MotionModel< NumStates >.

◆ get_state()

template<int32_t NumStates>
const Eigen::Matrix<float32_t, NumStates, 1U>& autoware::motion::motion_model::ParameterEstimator< NumStates >::get_state ( ) const
inlineoverridevirtual

const access to internal state

Returns
const reference to internal state vector

Implements autoware::motion::motion_model::MotionModel< NumStates >.

◆ operator=()

template<int32_t NumStates>
ParameterEstimator& autoware::motion::motion_model::ParameterEstimator< NumStates >::operator= ( const ParameterEstimator< NumStates > &  rhs)
inline

Default assignment operator.

Parameters
[in]rhsObject to copy
Returns
reference to this object

◆ operator[]()

template<int32_t NumStates>
float32_t autoware::motion::motion_model::ParameterEstimator< NumStates >::operator[] ( const motion_model::index_t  idx) const
inlineoverridevirtual

Get elements of the model's state.

Parameters
[in]idxindex of state variable to get
Returns
copy of state variable

Implements autoware::motion::motion_model::MotionModel< NumStates >.

◆ predict() [1/2]

template<int32_t NumStates>
void autoware::motion::motion_model::ParameterEstimator< NumStates >::predict ( const std::chrono::nanoseconds &  dt)
inlineoverridevirtual

Update current state with a given motion. Note that this should be called after compute_jacobian() as it will change the object's state. This is meant to be called before doing assignment and observation updating. This is the equivalent of temporal update for the state. This function mutates the core state of the motion model.

Parameters
[in]dtprediction horizon based on current state

Implements autoware::motion::motion_model::MotionModel< NumStates >.

◆ predict() [2/2]

template<int32_t NumStates>
void autoware::motion::motion_model::ParameterEstimator< NumStates >::predict ( Eigen::Matrix< float32_t, NumStates, 1U > &  x,
const std::chrono::nanoseconds &  dt 
) const
inlineoverridevirtual

Do motion based on current state, store result somewhere else. This is intended to be used with motion planning/collision avoidance i.e. to make multiple calls to predict with different time deltas for a rollout to get a concrete representation of predicted trajectories. This function does not mutate the core state of the motion model, and should only mutate some cached worker variables at most.

Parameters
[out]xvector to store result into
[in]dtprediction horizon based on current state

Implements autoware::motion::motion_model::MotionModel< NumStates >.

◆ reset()

template<int32_t NumStates>
void autoware::motion::motion_model::ParameterEstimator< NumStates >::reset ( const Eigen::Matrix< float32_t, NumStates, 1U > &  x)
inlineoverridevirtual

Set the state.

Parameters
[in]xthe state to store internally

Implements autoware::motion::motion_model::MotionModel< NumStates >.


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