|
| CostModelControlGravContactTpl (boost::shared_ptr< StateMultibody > state, boost::shared_ptr< ActivationModelAbstract > activation, const std::size_t nu) |
| Initialize the control gravity contact cost model. More...
|
|
| CostModelControlGravContactTpl (boost::shared_ptr< StateMultibody > state, boost::shared_ptr< ActivationModelAbstract > activation) |
| Initialize the control gravity contact cost model. More...
|
|
| CostModelControlGravContactTpl (boost::shared_ptr< StateMultibody > state, const std::size_t nu) |
| Initialize the control gravity contact cost model. More...
|
|
| CostModelControlGravContactTpl (boost::shared_ptr< StateMultibody > state) |
| Initialize the control gravity contact cost model. More...
|
|
virtual void | calc (const boost::shared_ptr< CostDataAbstract > &data, const Eigen::Ref< const VectorXs > &x, const Eigen::Ref< const VectorXs > &u) |
| Compute the control gravity contact cost. More...
|
|
virtual void | calcDiff (const boost::shared_ptr< CostDataAbstract > &data, const Eigen::Ref< const VectorXs > &x, const Eigen::Ref< const VectorXs > &u) |
| Compute the derivatives of the control gravity contact cost. More...
|
|
virtual boost::shared_ptr< CostDataAbstract > | createData (DataCollectorAbstract *const data) |
| Create the cost data. More...
|
|
| CostModelAbstractTpl (boost::shared_ptr< StateAbstract > state, boost::shared_ptr< ActivationModelAbstract > activation, const std::size_t nu) |
| Initialize the cost model. More...
|
|
| CostModelAbstractTpl (boost::shared_ptr< StateAbstract > state, boost::shared_ptr< ActivationModelAbstract > activation) |
|
| CostModelAbstractTpl (boost::shared_ptr< StateAbstract > state, const std::size_t nr, const std::size_t nu) |
|
| CostModelAbstractTpl (boost::shared_ptr< StateAbstract > state, const std::size_t nr) |
|
virtual void | calc (const boost::shared_ptr< CostDataAbstract > &data, const Eigen::Ref< const VectorXs > &x, const Eigen::Ref< const VectorXs > &u)=0 |
| Compute the cost value and its residual vector. More...
|
|
void | calc (const boost::shared_ptr< CostDataAbstract > &data, const Eigen::Ref< const VectorXs > &x) |
|
virtual void | calcDiff (const boost::shared_ptr< CostDataAbstract > &data, const Eigen::Ref< const VectorXs > &x, const Eigen::Ref< const VectorXs > &u)=0 |
| Compute the Jacobian and Hessian of cost and its residual vector. More...
|
|
void | calcDiff (const boost::shared_ptr< CostDataAbstract > &data, const Eigen::Ref< const VectorXs > &x) |
|
const boost::shared_ptr< ActivationModelAbstract > & | get_activation () const |
| Return the activation model.
|
|
std::size_t | get_nu () const |
| Return the dimension of the control input.
|
|
template<class ReferenceType > |
ReferenceType | get_reference () const |
| Return the cost reference.
|
|
const boost::shared_ptr< StateAbstract > & | get_state () const |
| Return the state.
|
|
template<class ReferenceType > |
void | set_reference (ReferenceType ref) |
| Modify the cost reference.
|
|
template<typename _Scalar>
class crocoddyl::CostModelControlGravContactTpl< _Scalar >
Control gravity cost.
This cost function defines a residual vector as \(\mathbf{r}=\mathbf{u}-(g(q) - \sum J(q)^{\top} f_{\text{ext}})\), where \(\mathbf{u}\in~\mathbb{R}^{nu}\) is the current control input, \(J(q)\) the contact Jacobians, \(f_{\text{ext}}\) the external forces associated with the contacts, g the gravity torque corresponding to the current configuration, \(\mathbf{q}\in~\mathbb{R}^{nq}\) the current position joints input. Note that the dimension of the residual vector is obtained from nu
.
Both cost and residual derivatives are computed analytically. For the computation of the cost Hessian, we use the Gauss-Newton approximation, e.g. \(\mathbf{l_{xx}} = \mathbf{l_{x}}^T \mathbf{l_{x}} \).
As described in CostModelAbstractTpl(), the cost value and its derivatives are calculated by calc
and calcDiff
, respectively.
- See also
CostModelAbstractTpl
, calc()
, calcDiff()
, createData()
Definition at line 41 of file control-gravity-contact.hpp.