Define a joint-effort residual. More...
#include <joint-effort.hpp>
Public Types | |
typedef ActuationModelAbstractTpl< Scalar > | ActuationModelAbstract |
typedef ResidualModelAbstractTpl< Scalar > | Base |
typedef ResidualDataJointEffortTpl< Scalar > | Data |
typedef DataCollectorAbstractTpl< Scalar > | DataCollectorAbstract |
typedef MathBaseTpl< Scalar > | MathBase |
typedef MathBase::MatrixXs | MatrixXs |
typedef ResidualDataAbstractTpl< Scalar > | ResidualDataAbstract |
typedef StateAbstractTpl< Scalar > | StateAbstract |
typedef MathBase::VectorXs | VectorXs |
![]() | |
typedef ActivationDataAbstractTpl< Scalar > | ActivationDataAbstract |
typedef CostDataAbstractTpl< Scalar > | CostDataAbstract |
typedef DataCollectorAbstractTpl< Scalar > | DataCollectorAbstract |
typedef MathBase::DiagonalMatrixXs | DiagonalMatrixXs |
typedef MathBaseTpl< Scalar > | MathBase |
typedef MathBase::MatrixXs | MatrixXs |
typedef ResidualDataAbstractTpl< Scalar > | ResidualDataAbstract |
typedef StateAbstractTpl< Scalar > | StateAbstract |
typedef MathBase::VectorXs | VectorXs |
Public Member Functions | |
ResidualModelJointEffortTpl (boost::shared_ptr< StateAbstract > state, boost::shared_ptr< ActuationModelAbstract > actuation) | |
Initialize the joint-effort residual model. More... | |
ResidualModelJointEffortTpl (boost::shared_ptr< StateAbstract > state, boost::shared_ptr< ActuationModelAbstract > actuation, const std::size_t nu) | |
Initialize the joint-effort residual model. More... | |
ResidualModelJointEffortTpl (boost::shared_ptr< StateAbstract > state, boost::shared_ptr< ActuationModelAbstract > actuation, const VectorXs &uref) | |
Initialize the joint-effort residual model. More... | |
ResidualModelJointEffortTpl (boost::shared_ptr< StateAbstract > state, boost::shared_ptr< ActuationModelAbstract > actuation, const VectorXs &uref, const std::size_t nu, const bool fwddyn=false) | |
Initialize the joint-effort residual model. More... | |
virtual void | calc (const boost::shared_ptr< ResidualDataAbstract > &data, const Eigen::Ref< const VectorXs > &x) |
virtual void | calc (const boost::shared_ptr< ResidualDataAbstract > &data, const Eigen::Ref< const VectorXs > &x, const Eigen::Ref< const VectorXs > &u) |
Compute the joint-effort residual. More... | |
virtual void | calcDiff (const boost::shared_ptr< ResidualDataAbstract > &data, const Eigen::Ref< const VectorXs > &x) |
virtual void | calcDiff (const boost::shared_ptr< ResidualDataAbstract > &data, const Eigen::Ref< const VectorXs > &x, const Eigen::Ref< const VectorXs > &u) |
Compute the derivatives of the joint-effort residual. More... | |
virtual boost::shared_ptr< ResidualDataAbstract > | createData (DataCollectorAbstract *const data) |
Create the joint-effort residual data. | |
const VectorXs & | get_reference () const |
Return the reference joint-effort vector. | |
virtual void | print (std::ostream &os) const |
Print relevant information of the joint-effort residual. More... | |
void | set_reference (const VectorXs &reference) |
Modify the reference joint-effort vector. | |
![]() | |
ResidualModelAbstractTpl (boost::shared_ptr< StateAbstract > state, const std::size_t nr, const bool q_dependent=true, const bool v_dependent=true, const bool u_dependent=true) | |
Initialize the residual model. More... | |
ResidualModelAbstractTpl (boost::shared_ptr< StateAbstract > state, const std::size_t nr, const std::size_t nu, const bool q_dependent=true, const bool v_dependent=true, const bool u_dependent=true) | |
Initialize the residual model. More... | |
virtual void | calcCostDiff (const boost::shared_ptr< CostDataAbstract > &cdata, const boost::shared_ptr< ResidualDataAbstract > &rdata, const boost::shared_ptr< ActivationDataAbstract > &adata, const bool update_u=true) |
Compute the derivative of the cost function. More... | |
std::size_t | get_nr () const |
Return the dimension of the residual vector. | |
std::size_t | get_nu () const |
Return the dimension of the control input. | |
bool | get_q_dependent () const |
Return true if the residual function depends on q. | |
const boost::shared_ptr< StateAbstract > & | get_state () const |
Return the state. | |
bool | get_u_dependent () const |
Return true if the residual function depends on u. | |
bool | get_v_dependent () const |
Return true if the residual function depends on v. | |
Public Attributes | |
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef _Scalar | Scalar |
![]() | |
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef _Scalar | Scalar |
Protected Attributes | |
std::size_t | nr_ |
Residual vector dimension. | |
std::size_t | nu_ |
Control dimension. | |
bool | q_dependent_ |
boost::shared_ptr< StateAbstract > | state_ |
State description. | |
bool | v_dependent_ |
![]() | |
std::size_t | nr_ |
Residual vector dimension. | |
std::size_t | nu_ |
Control dimension. | |
bool | q_dependent_ |
boost::shared_ptr< StateAbstract > | state_ |
State description. | |
bool | u_dependent_ |
VectorXs | unone_ |
No control vector. | |
bool | v_dependent_ |
Define a joint-effort residual.
This residual function is defined as \(\mathbf{r}=\mathbf{u}-\mathbf{u}^*\), where \(\mathbf{u},\mathbf{u}^*\in~\mathbb{R}^{nu}\) are the current and reference joint effort inputs, respectively. Note that the dimension of the residual vector is obtained from ActuationModelAbstract::nu
.
Both residual and residual Jacobians are computed analytically.
As described in ResidualModelAbstractTpl(), the residual value and its Jacobians are calculated by calc
and calcDiff
, respectively.
ResidualModelAbstractTpl
, calc()
, calcDiff()
, createData()
Definition at line 36 of file joint-effort.hpp.
ResidualModelJointEffortTpl | ( | boost::shared_ptr< StateAbstract > | state, |
boost::shared_ptr< ActuationModelAbstract > | actuation, | ||
const VectorXs & | uref, | ||
const std::size_t | nu, | ||
const bool | fwddyn = false |
||
) |
Initialize the joint-effort residual model.
[in] | state | State description |
[in] | actuation | Actuation model |
[in] | uref | Reference joint effort |
[in] | nu | Dimension of the control vector |
[in] | fwddyn | Indicates that we have a forward dynamics problem (true) or inverse dynamics (false) (default false) |
ResidualModelJointEffortTpl | ( | boost::shared_ptr< StateAbstract > | state, |
boost::shared_ptr< ActuationModelAbstract > | actuation, | ||
const VectorXs & | uref | ||
) |
Initialize the joint-effort residual model.
The default nu
value is obtained from StateAbstractTpl::get_nv()
.
[in] | state | State description |
[in] | actuation | Actuation model |
[in] | uref | Reference joint effort |
ResidualModelJointEffortTpl | ( | boost::shared_ptr< StateAbstract > | state, |
boost::shared_ptr< ActuationModelAbstract > | actuation, | ||
const std::size_t | nu | ||
) |
Initialize the joint-effort residual model.
The default reference joint effort is obtained from MathBaseTpl<>::VectorXs::Zero(actuation->get_nu())
.
[in] | state | State description |
[in] | actuation | Actuation model |
[in] | nu | Dimension of the control vector |
ResidualModelJointEffortTpl | ( | boost::shared_ptr< StateAbstract > | state, |
boost::shared_ptr< ActuationModelAbstract > | actuation | ||
) |
Initialize the joint-effort residual model.
The default reference joint effort is obtained from MathBaseTpl<>::VectorXs::Zero(actuation->get_nu())
. The default nu
value is obtained from StateAbstractTpl::get_nv()
.
[in] | state | State description |
[in] | actuation | Actuation model |
|
virtual |
Compute the joint-effort residual.
[in] | data | Joint-effort residual data |
[in] | x | State point \(\mathbf{x}\in\mathbb{R}^{ndx}\) |
[in] | u | Control input \(\mathbf{u}\in\mathbb{R}^{nu}\) |
Reimplemented from ResidualModelAbstractTpl< _Scalar >.
|
virtual |
It updates the residual vector based on the state only. This function is used in the terminal nodes of an optimal control problem.
[in] | data | Residual data |
[in] | x | State point \(\mathbf{x}\in\mathbb{R}^{ndx}\) |
Reimplemented from ResidualModelAbstractTpl< _Scalar >.
|
virtual |
Compute the derivatives of the joint-effort residual.
[in] | data | Joint-effort residual data |
[in] | x | State point \(\mathbf{x}\in\mathbb{R}^{ndx}\) |
[in] | u | Control input \(\mathbf{u}\in\mathbb{R}^{nu}\) |
Reimplemented from ResidualModelAbstractTpl< _Scalar >.
|
virtual |
Reimplemented from ResidualModelAbstractTpl< _Scalar >.
|
virtual |
Print relevant information of the joint-effort residual.
[out] | os | Output stream object |
Reimplemented from ResidualModelAbstractTpl< _Scalar >.
|
protected |
Label that indicates if the residual function depends on q
Definition at line 229 of file residual-base.hpp.
|
protected |
Label that indicates if the residual function depends on v
Definition at line 231 of file residual-base.hpp.