Control gravity residual under contact. More...
#include <crocoddyl/multibody/residuals/contact-control-gravity.hpp>
Public Types | |
typedef ActuationModelAbstractTpl< Scalar > | ActuationModelAbstract |
typedef ResidualModelAbstractTpl< Scalar > | Base |
typedef ResidualDataContactControlGravTpl< Scalar > | Data |
typedef DataCollectorAbstractTpl< Scalar > | DataCollectorAbstract |
typedef MathBaseTpl< Scalar > | MathBase |
typedef MathBase::MatrixXs | MatrixXs |
typedef ResidualDataAbstractTpl< Scalar > | ResidualDataAbstract |
typedef StateMultibodyTpl< Scalar > | StateMultibody |
typedef MathBase::VectorXs | VectorXs |
Public Member Functions | |
ResidualModelContactControlGravTpl (boost::shared_ptr< StateMultibody > state) | |
Initialize the contact control gravity contact residual model. More... | |
ResidualModelContactControlGravTpl (boost::shared_ptr< StateMultibody > state, const std::size_t nu) | |
Initialize the contact control gravity contact 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 contact control gravity contact 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 Jacobians of the contact control gravity contact residual. More... | |
virtual boost::shared_ptr< ResidualDataAbstract > | createData (DataCollectorAbstract *const data) |
virtual void | print (std::ostream &os) const |
Print relevant information of the contact-control-grav residual. More... | |
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. | |
VectorXs | unone_ |
No control vector. | |
bool | v_dependent_ |
Label that indicates if the residual function depends on v. | |
Control gravity residual under contact.
This residual function is defined as \(\mathbf{r}=\mathbf{u}-(\mathbf{g}(\mathbf{q}) - \sum \mathbf{J}_c(\mathbf{q})^{\top} \mathbf{f}_c)\), where \(\mathbf{u}\in~\mathbb{R}^{nu}\) is the current control input, \(\mathbf{J}_c(\mathbf{q})\) is the contact Jacobians, \(\mathbf{f}_c\) contains the contact forces, \(\mathbf{g}(\mathbf{q})\) is the gravity torque corresponding to the current configuration, \(\mathbf{q}\in~\mathbb{R}^{nq}\) is the current position joints input. Note that the dimension of the residual vector is obtained from state->get_nv()
.
As described in ResidualModelAbstractTpl()
, the residual value and its Jacobians are calculated by calc
and calcDiff
, respectively.
ResidualModelAbstractTpl
, calc()
, calcDiff()
, createData()
ResidualModelContactControlGravTpl | ( | boost::shared_ptr< StateMultibody > | state, |
const std::size_t | nu | ||
) |
Initialize the contact control gravity contact residual model.
[in] | state | State of the multibody system |
[in] | nu | Dimension of the control vector |
|
explicit |
Initialize the contact control gravity contact residual model.
The default nu
value is obtained from StateAbstractTpl::get_nv()
.
[in] | state | State of the multibody system |
|
virtual |
Compute the contact control gravity contact residual.
[in] | data | Contact control gravity 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 Jacobians of the contact control gravity contact residual.
[in] | data | Contact control gravity 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 contact-control-grav residual.
[out] | os | Output stream object |