Template Class ResidualModelNumDiffTpl
Defined in File residual.hpp
Inheritance Relationships
Base Type
public crocoddyl::ResidualModelAbstractTpl< _Scalar >(Template Class ResidualModelAbstractTpl)
Class Documentation
-
template<typename _Scalar>
class ResidualModelNumDiffTpl : public crocoddyl::ResidualModelAbstractTpl<_Scalar> This class computes the numerical differentiation of a residual model.
It computes the Jacobian of the residual model via numerical differentiation, i.e., \(\mathbf{R_x}\) and \(\mathbf{R_u}\) which denote the Jacobians of the residual function \(\mathbf{r}(\mathbf{x},\mathbf{u})\).
See also
ResidualModelAbstractTpl(),calcDiff()Public Types
-
typedef ResidualDataAbstractTpl<Scalar> ResidualDataAbstract
-
typedef ResidualModelAbstractTpl<Scalar> Base
-
typedef ResidualDataNumDiffTpl<Scalar> Data
-
typedef DataCollectorAbstractTpl<Scalar> DataCollectorAbstract
-
typedef MathBaseTpl<Scalar> MathBase
-
typedef MathBaseTpl<Scalar>::VectorXs VectorXs
-
typedef MathBaseTpl<Scalar>::MatrixXs MatrixXs
Public Functions
Initialize the numdiff residual model.
- Parameters:
model – Residual model that we want to apply the numerical differentiation
-
virtual ~ResidualModelNumDiffTpl() = default
Initialize the numdiff residual model.
Compute the residual vector.
- Parameters:
data – [in] Residual data
x – [in] State point \(\mathbf{x}\in\mathbb{R}^{ndx}\)
u – [in] Control input \(\mathbf{u}\in\mathbb{R}^{nu}\)
Compute the Jacobian of the residual vector.
It computes the Jacobian the residual function. It assumes that
calc()has been run first.- Parameters:
data – [in] Residual data
x – [in] State point \(\mathbf{x}\in\mathbb{R}^{ndx}\)
u – [in] Control input \(\mathbf{u}\in\mathbb{R}^{nu}\)
-
virtual std::shared_ptr<ResidualDataAbstract> createData(DataCollectorAbstract *const data) override
Create the residual data.
The default data contains objects to store the values of the residual vector and their Jacobians. However, it is possible to specialize this function if we need to create additional data, for instance, to avoid dynamic memory allocation.
- Parameters:
data – Data collector
- Returns:
the residual data
-
template<typename NewScalar>
ResidualModelNumDiffTpl<NewScalar> cast() const
-
const Scalar get_disturbance() const
Return the disturbance constant used by the numerical differentiation routine.
-
void set_disturbance(const Scalar disturbance)
Modify the disturbance constant used by the numerical differentiation 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.
- Parameters:
reevals – are the registered functions.
Public Members
- EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef _Scalar Scalar
Protected Attributes
-
std::size_t nu_
Control dimension.
-
std::shared_ptr<StateAbstract> state_
State description.
-
typedef ResidualDataAbstractTpl<Scalar> ResidualDataAbstract