crocoddyl  1.8.1
Contact RObot COntrol by Differential DYnamic programming Library (Crocoddyl)
ResidualModelNumDiffTpl< _Scalar > Class Template Reference

Public Types

typedef ResidualModelAbstractTpl< Scalar > Base
 
typedef ResidualDataNumDiffTpl< Scalar > Data
 
typedef DataCollectorAbstractTpl< Scalar > DataCollectorAbstract
 
typedef MathBaseTpl< Scalar > MathBase
 
typedef MathBaseTpl< Scalar >::MatrixXs MatrixXs
 
typedef boost::function< void(const VectorXs &, const VectorXs &)> ReevaluationFunction
 
typedef ResidualDataAbstractTpl< Scalar > ResidualDataAbstract
 
typedef MathBaseTpl< Scalar >::VectorXs VectorXs
 

Public Member Functions

 ResidualModelNumDiffTpl (const boost::shared_ptr< Base > &model)
 Initialize the numdiff residual model. More...
 
virtual ~ResidualModelNumDiffTpl ()
 Initialize the numdiff residual model.
 
virtual void calc (const boost::shared_ptr< ResidualDataAbstract > &data, const Eigen::Ref< const VectorXs > &x, const Eigen::Ref< const VectorXs > &u)
 Compute the residual vector. More...
 
virtual void calcDiff (const boost::shared_ptr< ResidualDataAbstract > &data, const Eigen::Ref< const VectorXs > &x, const Eigen::Ref< const VectorXs > &u)
 Compute the Jacobian of the residual vector. More...
 
virtual boost::shared_ptr< ResidualDataAbstractcreateData (DataCollectorAbstract *const data)
 Create a data object. More...
 
const Scalar get_disturbance () const
 Return the disturbance value used by the numdiff routine.
 
const boost::shared_ptr< Base > & get_model () const
 Return the original residual model.
 
void set_disturbance (const Scalar disturbance)
 Modify the disturbance value used by the numdiff routine.
 
void set_reevals (const std::vector< ReevaluationFunction > &reevals)
 Register functions that updates the shared data computed for a system rollout The updated data is used to evaluate of the gradient and hessian. More...
 

Public Attributes

EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef _Scalar Scalar
 

Protected Attributes

Scalar disturbance_
 Numerical disturbance used in the numerical differentiation.
 
boost::shared_ptr< Basemodel_
 Model of the residual.
 
std::size_t nu_
 Control dimension.
 
std::vector< ReevaluationFunction > reevals_
 Functions that needs execution before calc or calcDiff.
 
boost::shared_ptr< StateAbstractstate_
 State description.
 
VectorXs unone_
 No control vector.
 

Detailed Description

template<typename _Scalar>
class crocoddyl::ResidualModelNumDiffTpl< _Scalar >

Definition at line 192 of file fwd.hpp.

Constructor & Destructor Documentation

◆ ResidualModelNumDiffTpl()

ResidualModelNumDiffTpl ( const boost::shared_ptr< Base > &  model)
explicit

Initialize the numdiff residual model.

Parameters
model

Member Function Documentation

◆ calc()

virtual void calc ( const boost::shared_ptr< ResidualDataAbstract > &  data,
const Eigen::Ref< const VectorXs > &  x,
const Eigen::Ref< const VectorXs > &  u 
)
virtual

Compute the residual vector.

Parameters
[in]dataResidual data
[in]xState point \(\mathbf{x}\in\mathbb{R}^{ndx}\)
[in]uControl input \(\mathbf{u}\in\mathbb{R}^{nu}\)

◆ calcDiff()

virtual void calcDiff ( const boost::shared_ptr< ResidualDataAbstract > &  data,
const Eigen::Ref< const VectorXs > &  x,
const Eigen::Ref< const VectorXs > &  u 
)
virtual

Compute the Jacobian of the residual vector.

It computes the Jacobian the residual function. It assumes that calc() has been run first.

Parameters
[in]dataResidual data
[in]xState point \(\mathbf{x}\in\mathbb{R}^{ndx}\)
[in]uControl input \(\mathbf{u}\in\mathbb{R}^{nu}\)

◆ createData()

virtual boost::shared_ptr<ResidualDataAbstract> createData ( DataCollectorAbstract *const  data)
virtual

Create a data object.

Parameters
dataData collector used by the original model
Returns
the residual data

◆ set_reevals()

void set_reevals ( const std::vector< ReevaluationFunction > &  reevals)

Register functions that updates the shared data computed for a system rollout The updated data is used to evaluate of the gradient and hessian.

Parameters
reevalsare the registered functions.

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