|
| ControlParametrizationModelPolyTwoRKTpl (const std::size_t nw, const RKType rktype) |
| Initialize the poly-two RK control parametrization. More...
|
|
virtual void | calc (const boost::shared_ptr< ControlParametrizationDataAbstract > &data, const Scalar t, const Eigen::Ref< const VectorXs > &u) const |
| 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 |
| Get the value of the Jacobian of the control with respect to the parameters. More...
|
|
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 |
| Map the specified bounds from the control space to the parameter space. More...
|
|
virtual boost::shared_ptr< ControlParametrizationDataAbstract > | createData () |
| Create the control-parametrization data. More...
|
|
virtual void | multiplyByJacobian (const boost::shared_ptr< ControlParametrizationDataAbstract > &data, const Eigen::Ref< const MatrixXs > &A, Eigen::Ref< MatrixXs > out, const AssignmentOp=setto) const |
| Compute the product between a specified matrix and the Jacobian of the control (with respect to the parameters) More...
|
|
virtual void | multiplyJacobianTransposeBy (const boost::shared_ptr< ControlParametrizationDataAbstract > &data, const Eigen::Ref< const MatrixXs > &A, Eigen::Ref< MatrixXs > out, const AssignmentOp=setto) const |
| Compute the product between the transposed Jacobian of the control (with respect to the parameters) and a specified matrix. More...
|
|
virtual void | params (const boost::shared_ptr< ControlParametrizationDataAbstract > &data, const Scalar t, const Eigen::Ref< const VectorXs > &w) const |
| Get a value of the control parameters u such that the control at the specified time t is equal to the specified value w. More...
|
|
| 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.
|
|
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 MatrixXs | multiplyByJacobian_J (const boost::shared_ptr< ControlParametrizationDataAbstract > &data, const Eigen::Ref< const MatrixXs > &A, const AssignmentOp=setto) const |
|
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::ControlParametrizationModelPolyTwoRKTpl< _Scalar >
A polynomial function of time of degree two, that is a quadratic function.
The size of the parameters \(\mathbf{u}\) is 3 times the size of the control input \(\mathbf{w}\). It defines a polynomial of degree two, customized for the RK4 and RK4 integrators (even though it can be used with whatever integration scheme). The first third of \(\mathbf{u}\) represents the value of \(\mathbf{w}\) at time 0. The second third of \(\mathbf{u}\) represents the value of \(\mathbf{w}\) at time 0.5 or 1/3 for RK4 and RK3 parametrization, respectively. The last third of \(\mathbf{u}\) represents the value of \(\mathbf{w}\) at time 1 or 2/3 for the RK4 and RK3 parametrization, respectively. This parametrization is suitable to be used with the RK-4 or RK-3 integration schemes, because they require the value of \(\mathbf{w}\) exactly at 0, 0.5, 1 (for RK4) or 0, 1/3, 2/3 (for RK3).
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 inverse of calc
. Note that multiplyByJacobian
and multiplyJacobianTransposeBy
requires to run calc
first.
- See also
ControlParametrizationAbstractTpl
, calc()
, calcDiff()
, createData()
, params
, multiplyByJacobian
, multiplyJacobianTransposeBy
Definition at line 50 of file poly-two-rk.hpp.