- 3.0.2 optimal control module.
ct::optcon::TermQuadTracking< STATE_DIM, CONTROL_DIM, SCALAR_EVAL, SCALAR > Class Template Reference

A quadratic tracking term of type $ J(t) = (x_{ref}(t) - x)^T Q (x_{ref}(t) - x) + (u_{ref}(t) - u)^T R (u_{ref}(t) - u) $. More...

#include <TermQuadTracking.hpp>

Inheritance diagram for ct::optcon::TermQuadTracking< STATE_DIM, CONTROL_DIM, SCALAR_EVAL, SCALAR >:
ct::optcon::TermBase< STATE_DIM, CONTROL_DIM, SCALAR_EVAL, SCALAR >

Public Types

typedef Eigen::Matrix< SCALAR_EVAL, CONTROL_DIM, CONTROL_DIM > control_matrix_t
 
typedef Eigen::Matrix< SCALAR_EVAL, CONTROL_DIM, STATE_DIM > control_state_matrix_t
 
typedef Eigen::Matrix< SCALAR_EVAL, STATE_DIM, STATE_DIM > state_matrix_double_t
 
typedef Eigen::Matrix< SCALAR_EVAL, CONTROL_DIM, CONTROL_DIM > control_matrix_double_t
 
typedef Eigen::Matrix< SCALAR_EVAL, CONTROL_DIM, STATE_DIM > control_state_matrix_double_t
 
- Public Types inherited from ct::optcon::TermBase< STATE_DIM, CONTROL_DIM, SCALAR_EVAL, SCALAR >
typedef Eigen::Matrix< SCALAR_EVAL, STATE_DIM, STATE_DIM > state_matrix_t
 
typedef Eigen::Matrix< SCALAR_EVAL, CONTROL_DIM, CONTROL_DIM > control_matrix_t
 
typedef Eigen::Matrix< SCALAR_EVAL, CONTROL_DIM, STATE_DIM > control_state_matrix_t
 
typedef Eigen::Matrix< SCALAR_EVAL, STATE_DIM, STATE_DIM > state_matrix_double_t
 
typedef Eigen::Matrix< SCALAR_EVAL, CONTROL_DIM, CONTROL_DIM > control_matrix_double_t
 
typedef Eigen::Matrix< SCALAR_EVAL, CONTROL_DIM, STATE_DIM > control_state_matrix_double_t
 

Public Member Functions

 TermQuadTracking ()
 
 TermQuadTracking (const state_matrix_t &Q, const control_matrix_t &R, const core::InterpolationType &stateSplineType, const core::InterpolationType &controlSplineType, const bool trackControlTrajectory=false)
 
 TermQuadTracking (const TermQuadTracking &arg)
 
virtual ~TermQuadTracking ()
 
TermQuadTracking< STATE_DIM, CONTROL_DIM, SCALAR_EVAL, SCALAR > * clone () const override
 Deep-copy term. More...
 
void setWeights (const state_matrix_double_t &Q, const control_matrix_double_t &R)
 
void setStateAndControlReference (const core::StateTrajectory< STATE_DIM > &xTraj, const core::ControlTrajectory< CONTROL_DIM > &uTraj)
 
virtual SCALAR evaluate (const Eigen::Matrix< SCALAR, STATE_DIM, 1 > &x, const Eigen::Matrix< SCALAR, CONTROL_DIM, 1 > &u, const SCALAR &t) override
 Evaluates the term at x, u, t. More...
 
core::StateVector< STATE_DIM, SCALAR_EVAL > stateDerivative (const core::StateVector< STATE_DIM, SCALAR_EVAL > &x, const core::ControlVector< CONTROL_DIM, SCALAR_EVAL > &u, const SCALAR_EVAL &t) override
 compute derivative of this cost term w.r.t. the state More...
 
state_matrix_t stateSecondDerivative (const core::StateVector< STATE_DIM, SCALAR_EVAL > &x, const core::ControlVector< CONTROL_DIM, SCALAR_EVAL > &u, const SCALAR_EVAL &t) override
 compute second order derivative of this cost term w.r.t. the state More...
 
core::ControlVector< CONTROL_DIM, SCALAR_EVAL > controlDerivative (const core::StateVector< STATE_DIM, SCALAR_EVAL > &x, const core::ControlVector< CONTROL_DIM, SCALAR_EVAL > &u, const SCALAR_EVAL &t) override
 compute derivative of this cost term w.r.t. the control input More...
 
control_matrix_t controlSecondDerivative (const core::StateVector< STATE_DIM, SCALAR_EVAL > &x, const core::ControlVector< CONTROL_DIM, SCALAR_EVAL > &u, const SCALAR_EVAL &t) override
 compute second order derivative of this cost term w.r.t. the control input More...
 
control_state_matrix_t stateControlDerivative (const core::StateVector< STATE_DIM, SCALAR_EVAL > &x, const core::ControlVector< CONTROL_DIM, SCALAR_EVAL > &u, const SCALAR_EVAL &t) override
 compute the cross-term derivative (state-control) of this cost function term More...
 
virtual void loadConfigFile (const std::string &filename, const std::string &termName, bool verbose=false) override
 load this term from a configuration file More...
 
- Public Member Functions inherited from ct::optcon::TermBase< STATE_DIM, CONTROL_DIM, SCALAR_EVAL, SCALAR >
 TermBase (std::string name="Unnamed")
 Default constructor. More...
 
 TermBase (const TermBase &arg)
 Copy Cunstructor. More...
 
virtual ~TermBase ()
 Destructor. More...
 
SCALAR_EVAL eval (const Eigen::Matrix< SCALAR_EVAL, STATE_DIM, 1 > &x, const Eigen::Matrix< SCALAR_EVAL, CONTROL_DIM, 1 > &u, const SCALAR_EVAL &t)
 Gets called by the analytical costfunction. Adds time dependent activations on top of the term. More...
 
virtual bool isActiveAtTime (SCALAR_EVAL t)
 Returns if term is non-zero at a specific time By default, all terms are evaluated at all times. However, if a term is not active at a certain time, you can overload this function to spare evaluations of the term and its derivatives. More...
 
SCALAR_EVAL computeActivation (SCALAR_EVAL t)
 compute time activation More...
 
void setTimeActivation (std::shared_ptr< ct::core::tpl::ActivationBase< SCALAR_EVAL >> c_i, bool verbose=false)
 set the time activation functions for this term More...
 
void loadTimeActivation (const std::string &filename, const std::string &termName, bool verbose=false)
 load the time activation functions for this term from file More...
 
const std::string & getName () const
 Returns the name of the term. More...
 
void setName (const std::string &termName)
 Sets the name of the term. More...
 
virtual void updateReferenceState (const Eigen::Matrix< SCALAR_EVAL, STATE_DIM, 1 > &newRefState)
 updates the reference state for this term More...
 
virtual void updateReferenceControl (const Eigen::Matrix< SCALAR_EVAL, CONTROL_DIM, 1 > &newRefControl)
 updates the reference control for this term More...
 
virtual Eigen::Matrix< SCALAR_EVAL, STATE_DIM, 1 > getReferenceState () const
 retrieve this term's current reference state More...
 

Public Attributes

EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef Eigen::Matrix< SCALAR_EVAL, STATE_DIM, STATE_DIM > state_matrix_t
 

Protected Member Functions

template<typename SC >
SC evalLocal (const Eigen::Matrix< SC, STATE_DIM, 1 > &x, const Eigen::Matrix< SC, CONTROL_DIM, 1 > &u, const SC &t)
 

Protected Attributes

state_matrix_t Q_
 
control_matrix_t R_
 
ct::core::StateTrajectory< STATE_DIM, SCALAR_EVAL > x_traj_ref_
 
ct::core::ControlTrajectory< CONTROL_DIM, SCALAR_EVAL > u_traj_ref_
 
bool trackControlTrajectory_
 
- Protected Attributes inherited from ct::optcon::TermBase< STATE_DIM, CONTROL_DIM, SCALAR_EVAL, SCALAR >
std::string name_
 a name identifier for this term More...
 
std::shared_ptr< ct::core::tpl::ActivationBase< SCALAR_EVAL > > c_i_
 time activations for this term More...
 

Detailed Description

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR_EVAL = double, typename SCALAR = SCALAR_EVAL>
class ct::optcon::TermQuadTracking< STATE_DIM, CONTROL_DIM, SCALAR_EVAL, SCALAR >

A quadratic tracking term of type $ J(t) = (x_{ref}(t) - x)^T Q (x_{ref}(t) - x) + (u_{ref}(t) - u)^T R (u_{ref}(t) - u) $.

Member Typedef Documentation

◆ control_matrix_t

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR_EVAL = double, typename SCALAR = SCALAR_EVAL>
typedef Eigen::Matrix<SCALAR_EVAL, CONTROL_DIM, CONTROL_DIM> ct::optcon::TermQuadTracking< STATE_DIM, CONTROL_DIM, SCALAR_EVAL, SCALAR >::control_matrix_t

◆ control_state_matrix_t

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR_EVAL = double, typename SCALAR = SCALAR_EVAL>
typedef Eigen::Matrix<SCALAR_EVAL, CONTROL_DIM, STATE_DIM> ct::optcon::TermQuadTracking< STATE_DIM, CONTROL_DIM, SCALAR_EVAL, SCALAR >::control_state_matrix_t

◆ state_matrix_double_t

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR_EVAL = double, typename SCALAR = SCALAR_EVAL>
typedef Eigen::Matrix<SCALAR_EVAL, STATE_DIM, STATE_DIM> ct::optcon::TermQuadTracking< STATE_DIM, CONTROL_DIM, SCALAR_EVAL, SCALAR >::state_matrix_double_t

◆ control_matrix_double_t

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR_EVAL = double, typename SCALAR = SCALAR_EVAL>
typedef Eigen::Matrix<SCALAR_EVAL, CONTROL_DIM, CONTROL_DIM> ct::optcon::TermQuadTracking< STATE_DIM, CONTROL_DIM, SCALAR_EVAL, SCALAR >::control_matrix_double_t

◆ control_state_matrix_double_t

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR_EVAL = double, typename SCALAR = SCALAR_EVAL>
typedef Eigen::Matrix<SCALAR_EVAL, CONTROL_DIM, STATE_DIM> ct::optcon::TermQuadTracking< STATE_DIM, CONTROL_DIM, SCALAR_EVAL, SCALAR >::control_state_matrix_double_t

Constructor & Destructor Documentation

◆ TermQuadTracking() [1/3]

◆ TermQuadTracking() [2/3]

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR_EVAL , typename SCALAR >
ct::optcon::TermQuadTracking< STATE_DIM, CONTROL_DIM, SCALAR_EVAL, SCALAR >::TermQuadTracking ( const state_matrix_t Q,
const control_matrix_t R,
const core::InterpolationType stateSplineType,
const core::InterpolationType controlSplineType,
const bool  trackControlTrajectory = false 
)

◆ TermQuadTracking() [3/3]

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR_EVAL = double, typename SCALAR = SCALAR_EVAL>
ct::optcon::TermQuadTracking< STATE_DIM, CONTROL_DIM, SCALAR_EVAL, SCALAR >::TermQuadTracking ( const TermQuadTracking< STATE_DIM, CONTROL_DIM, SCALAR_EVAL, SCALAR > &  arg)

◆ ~TermQuadTracking()

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR_EVAL , typename SCALAR >
ct::optcon::TermQuadTracking< STATE_DIM, CONTROL_DIM, SCALAR_EVAL, SCALAR >::~TermQuadTracking ( )
virtual

Member Function Documentation

◆ clone()

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR_EVAL , typename SCALAR >
TermQuadTracking< STATE_DIM, CONTROL_DIM, SCALAR_EVAL, SCALAR > * ct::optcon::TermQuadTracking< STATE_DIM, CONTROL_DIM, SCALAR_EVAL, SCALAR >::clone ( ) const
overridevirtual

◆ setWeights()

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR_EVAL , typename SCALAR >
void ct::optcon::TermQuadTracking< STATE_DIM, CONTROL_DIM, SCALAR_EVAL, SCALAR >::setWeights ( const state_matrix_double_t Q,
const control_matrix_double_t R 
)

◆ setStateAndControlReference()

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR_EVAL , typename SCALAR >
void ct::optcon::TermQuadTracking< STATE_DIM, CONTROL_DIM, SCALAR_EVAL, SCALAR >::setStateAndControlReference ( const core::StateTrajectory< STATE_DIM > &  xTraj,
const core::ControlTrajectory< CONTROL_DIM > &  uTraj 
)

◆ evaluate()

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR_EVAL , typename SCALAR>
SCALAR ct::optcon::TermQuadTracking< STATE_DIM, CONTROL_DIM, SCALAR_EVAL, SCALAR >::evaluate ( const Eigen::Matrix< SCALAR, STATE_DIM, 1 > &  x,
const Eigen::Matrix< SCALAR, CONTROL_DIM, 1 > &  u,
const SCALAR t 
)
overridevirtual

Evaluates the term at x, u, t.

Parameters
[in]xThe current state
[in]uThe current control
[in]tThe current time
Returns
The evaluatated cost term

Implements ct::optcon::TermBase< STATE_DIM, CONTROL_DIM, SCALAR_EVAL, SCALAR >.

References t, u, and x.

◆ stateDerivative()

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR_EVAL, typename SCALAR >
ct::core::StateVector< STATE_DIM, SCALAR_EVAL > ct::optcon::TermQuadTracking< STATE_DIM, CONTROL_DIM, SCALAR_EVAL, SCALAR >::stateDerivative ( const core::StateVector< STATE_DIM, SCALAR_EVAL > &  x,
const core::ControlVector< CONTROL_DIM, SCALAR_EVAL > &  u,
const SCALAR_EVAL &  t 
)
overridevirtual

◆ stateSecondDerivative()

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR_EVAL, typename SCALAR >
TermQuadTracking< STATE_DIM, CONTROL_DIM, SCALAR_EVAL, SCALAR >::state_matrix_t ct::optcon::TermQuadTracking< STATE_DIM, CONTROL_DIM, SCALAR_EVAL, SCALAR >::stateSecondDerivative ( const core::StateVector< STATE_DIM, SCALAR_EVAL > &  x,
const core::ControlVector< CONTROL_DIM, SCALAR_EVAL > &  u,
const SCALAR_EVAL &  t 
)
overridevirtual

compute second order derivative of this cost term w.r.t. the state

Reimplemented from ct::optcon::TermBase< STATE_DIM, CONTROL_DIM, SCALAR_EVAL, SCALAR >.

References ct::optcon::TermQuadTracking< STATE_DIM, CONTROL_DIM, SCALAR_EVAL, SCALAR >::Q_.

◆ controlDerivative()

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR_EVAL, typename SCALAR >
core::ControlVector< CONTROL_DIM, SCALAR_EVAL > ct::optcon::TermQuadTracking< STATE_DIM, CONTROL_DIM, SCALAR_EVAL, SCALAR >::controlDerivative ( const core::StateVector< STATE_DIM, SCALAR_EVAL > &  x,
const core::ControlVector< CONTROL_DIM, SCALAR_EVAL > &  u,
const SCALAR_EVAL &  t 
)
overridevirtual

◆ controlSecondDerivative()

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR_EVAL, typename SCALAR >
TermQuadTracking< STATE_DIM, CONTROL_DIM, SCALAR_EVAL, SCALAR >::control_matrix_t ct::optcon::TermQuadTracking< STATE_DIM, CONTROL_DIM, SCALAR_EVAL, SCALAR >::controlSecondDerivative ( const core::StateVector< STATE_DIM, SCALAR_EVAL > &  x,
const core::ControlVector< CONTROL_DIM, SCALAR_EVAL > &  u,
const SCALAR_EVAL &  t 
)
overridevirtual

compute second order derivative of this cost term w.r.t. the control input

Reimplemented from ct::optcon::TermBase< STATE_DIM, CONTROL_DIM, SCALAR_EVAL, SCALAR >.

References ct::optcon::TermQuadTracking< STATE_DIM, CONTROL_DIM, SCALAR_EVAL, SCALAR >::R_.

◆ stateControlDerivative()

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR_EVAL, typename SCALAR >
TermQuadTracking< STATE_DIM, CONTROL_DIM, SCALAR_EVAL, SCALAR >::control_state_matrix_t ct::optcon::TermQuadTracking< STATE_DIM, CONTROL_DIM, SCALAR_EVAL, SCALAR >::stateControlDerivative ( const core::StateVector< STATE_DIM, SCALAR_EVAL > &  x,
const core::ControlVector< CONTROL_DIM, SCALAR_EVAL > &  u,
const SCALAR_EVAL &  t 
)
overridevirtual

compute the cross-term derivative (state-control) of this cost function term

Reimplemented from ct::optcon::TermBase< STATE_DIM, CONTROL_DIM, SCALAR_EVAL, SCALAR >.

◆ loadConfigFile()

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR_EVAL , typename SCALAR >
void ct::optcon::TermQuadTracking< STATE_DIM, CONTROL_DIM, SCALAR_EVAL, SCALAR >::loadConfigFile ( const std::string &  filename,
const std::string &  termName,
bool  verbose = false 
)
overridevirtual

◆ evalLocal()

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR_EVAL , typename SCALAR >
template<typename SC >
SC ct::optcon::TermQuadTracking< STATE_DIM, CONTROL_DIM, SCALAR_EVAL, SCALAR >::evalLocal ( const Eigen::Matrix< SC, STATE_DIM, 1 > &  x,
const Eigen::Matrix< SC, CONTROL_DIM, 1 > &  u,
const SC &  t 
)
protected

Member Data Documentation

◆ state_matrix_t

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR_EVAL = double, typename SCALAR = SCALAR_EVAL>
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef Eigen::Matrix<SCALAR_EVAL, STATE_DIM, STATE_DIM> ct::optcon::TermQuadTracking< STATE_DIM, CONTROL_DIM, SCALAR_EVAL, SCALAR >::state_matrix_t

◆ Q_

◆ R_

◆ x_traj_ref_

◆ u_traj_ref_

◆ trackControlTrajectory_

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR_EVAL = double, typename SCALAR = SCALAR_EVAL>
bool ct::optcon::TermQuadTracking< STATE_DIM, CONTROL_DIM, SCALAR_EVAL, SCALAR >::trackControlTrajectory_
protected

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