|
| ControlParametrizationModelAbstractTpl (const std::size_t nw, const std::size_t nu) |
| Initialize the control dimensions. More...
|
|
virtual void | calc (const boost::shared_ptr< ControlParametrizationDataAbstract > &data, const Scalar t, const Eigen::Ref< const VectorXs > &u) const =0 |
| Get the value of the control at the specified time. More...
|
|
virtual void | calcDiff (const boost::shared_ptr< ControlParametrizationDataAbstract > &data, const Scalar t, const Eigen::Ref< const VectorXs > &u) const =0 |
| Get the value of the Jacobian of the control with respect to the parameters. More...
|
|
virtual bool | checkData (const boost::shared_ptr< ControlParametrizationDataAbstract > &data) |
| Checks that a specific data belongs to this model.
|
|
virtual void | convertBounds (const Eigen::Ref< const VectorXs > &w_lb, const Eigen::Ref< const VectorXs > &w_ub, Eigen::Ref< VectorXs > u_lb, Eigen::Ref< VectorXs > u_ub) const =0 |
| Convert the bounds on the control inputs w to bounds on the control parameters u. More...
|
|
virtual boost::shared_ptr< ControlParametrizationDataAbstract > | createData () |
| Create the control-parametrization data. More...
|
|
std::size_t | get_nu () const |
| Return the dimension of control parameters.
|
|
std::size_t | get_nw () const |
| Return the dimension of the control inputs.
|
|
virtual void | multiplyByJacobian (const boost::shared_ptr< ControlParametrizationDataAbstract > &data, const Eigen::Ref< const MatrixXs > &A, Eigen::Ref< MatrixXs > out, const AssignmentOp=setto) const =0 |
| Compute the product between the given matrix A and the derivative of the control input with respect to the control parameters (i.e., A*dw_du). More...
|
|
virtual MatrixXs | multiplyByJacobian_J (const boost::shared_ptr< ControlParametrizationDataAbstract > &data, const Eigen::Ref< const MatrixXs > &A, const AssignmentOp=setto) const |
|
virtual void | multiplyJacobianTransposeBy (const boost::shared_ptr< ControlParametrizationDataAbstract > &data, const Eigen::Ref< const MatrixXs > &A, Eigen::Ref< MatrixXs > out, const AssignmentOp=setto) const =0 |
| Compute the product between the transpose of the derivative of the control input with respect to the control parameters and a given matrix A (i.e., dw_du^T*A) More...
|
|
virtual MatrixXs | multiplyJacobianTransposeBy_J (const boost::shared_ptr< ControlParametrizationDataAbstract > &data, const Eigen::Ref< const MatrixXs > &A, const AssignmentOp=setto) const |
|
virtual void | params (const boost::shared_ptr< ControlParametrizationDataAbstract > &data, const Scalar t, const Eigen::Ref< const VectorXs > &w) const =0 |
| Update the control parameters u for a specified time t given the control input w. More...
|
|
template<typename _Scalar>
class crocoddyl::ControlParametrizationModelAbstractTpl< _Scalar >
Abstract class for the control trajectory parametrization.
The control trajectory is a function of the (normalized) time. Normalized time is between 0 and 1, where 0 represents the beginning of the time step, and 1 represents its end. The trajectory depends on the control parameters u, whose size may be larger than the size of the control inputs w.
The main computations are carried out in calc
, multiplyByJacobian
and multiplyJacobianTransposeBy
, where the former computes control input \(\mathbf{w}\in\mathbb{R}^{nw}\) from a set of control parameters \(\mathbf{u}\in\mathbb{R}^{nu}\) where nw
and nu
represent the dimension of the control inputs and parameters, respectively, and the latter defines useful operations across the Jacobian of the control-parametrization model. Finally, params
allows us to obtain the control parameters from a the control input, i.e., it is the dual of calc
. Note that multiplyByJacobian
and multiplyJacobianTransposeBy
requires to run calc
first.
- See also
calc()
, calcDiff()
, createData()
, params
, multiplyByJacobian
, multiplyJacobianTransposeBy
Definition at line 43 of file control-base.hpp.