Centroidal momentum residual. More...
#include <crocoddyl/multibody/residuals/centroidal-momentum.hpp>
Public Types | |
typedef ActivationModelAbstractTpl< Scalar > | ActivationModelAbstract |
typedef ResidualModelAbstractTpl< Scalar > | Base |
typedef ResidualDataCentroidalMomentumTpl< Scalar > | Data |
typedef DataCollectorAbstractTpl< Scalar > | DataCollectorAbstract |
typedef MathBaseTpl< Scalar > | MathBase |
typedef MathBase::Matrix6xs | Matrix6xs |
typedef ResidualDataAbstractTpl< Scalar > | ResidualDataAbstract |
typedef StateMultibodyTpl< Scalar > | StateMultibody |
typedef MathBase::Vector6s | Vector6s |
typedef MathBase::VectorXs | VectorXs |
Public Member Functions | |
ResidualModelCentroidalMomentumTpl (boost::shared_ptr< StateMultibody > state, const Vector6s &href) | |
Initialize the centroidal momentum residual model. More... | |
ResidualModelCentroidalMomentumTpl (boost::shared_ptr< StateMultibody > state, const Vector6s &href, const std::size_t nu) | |
Initialize the centroidal momentum residual model. More... | |
virtual void | calc (const boost::shared_ptr< ResidualDataAbstract > &data, const Eigen::Ref< const VectorXs > &x, const Eigen::Ref< const VectorXs > &u) |
Compute the centroidal momentum residual. More... | |
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 centroidal momentum residual. More... | |
virtual boost::shared_ptr< ResidualDataAbstract > | createData (DataCollectorAbstract *const data) |
Create the centroidal momentum residual data. | |
const Vector6s & | get_reference () const |
Return the reference centroidal momentum. | |
virtual void | print (std::ostream &os) const |
Print relevant information of the centroidal-momentum residual. More... | |
void | set_reference (const Vector6s &href) |
Modify the reference centroidal momentum. | |
Public Attributes | |
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef _Scalar | Scalar |
Protected Attributes | |
std::size_t | nu_ |
Control dimension. | |
boost::shared_ptr< StateAbstract > | state_ |
State description. | |
bool | u_dependent_ |
Label that indicates if the residual function depends on u. | |
VectorXs | unone_ |
No control vector. | |
Centroidal momentum residual.
This residual function defines the centroidal momentum tracking as \(\mathbf{r}=\mathbf{h}-\mathbf{h}^*\), where \(\mathbf{h},\mathbf{h}^*\in~\mathcal{X}\) are the current and reference centroidal momenta, respectively. Note that the dimension of the residual vector is 6. Furthermore, the Jacobians of the residual function are computed analytically.
As described in ResidualModelAbstractTpl()
, the residual value and its Jacobians are calculated by calc
and calcDiff
, respectively.
ResidualModelAbstractTpl
, calc()
, calcDiff()
, createData()
ResidualModelCentroidalMomentumTpl | ( | boost::shared_ptr< StateMultibody > | state, |
const Vector6s & | href, | ||
const std::size_t | nu | ||
) |
Initialize the centroidal momentum residual model.
[in] | state | State of the multibody system |
[in] | href | Reference centroidal momentum |
[in] | nu | Dimension of the control vector |
ResidualModelCentroidalMomentumTpl | ( | boost::shared_ptr< StateMultibody > | state, |
const Vector6s & | href | ||
) |
Initialize the centroidal momentum residual model.
The default nu
is obtained from StateAbstractTpl::get_nv()
.
[in] | state | State of the multibody system |
[in] | href | Reference centroidal momentum |
|
virtual |
Compute the centroidal momentum residual.
[in] | data | Centroidal momentum residual data |
[in] | x | State point \(\mathbf{x}\in\mathbb{R}^{ndx}\) |
[in] | u | Control input \(\mathbf{u}\in\mathbb{R}^{nu}\) |
|
virtual |
Compute the derivatives of the centroidal momentum residual.
[in] | data | Centroidal momentum residual data |
[in] | x | State point \(\mathbf{x}\in\mathbb{R}^{ndx}\) |
[in] | u | Control input \(\mathbf{u}\in\mathbb{R}^{nu}\) |
|
virtual |
Print relevant information of the centroidal-momentum residual.
[out] | os | Output stream object |