|
| CostModelContactImpulseTpl (boost::shared_ptr< StateMultibody > state, boost::shared_ptr< ActivationModelAbstract > activation, const FrameForce &fref) |
| Initialize the contact impulse cost model. More...
|
|
| CostModelContactImpulseTpl (boost::shared_ptr< StateMultibody > state, const FrameForce &fref, const std::size_t nr) |
| Initialize the contact impulse cost model. More...
|
|
| CostModelContactImpulseTpl (boost::shared_ptr< StateMultibody > state, const FrameForce &fref) |
| Initialize the contact impulse 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 contact impulse 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 contact impulse cost. More...
|
|
virtual boost::shared_ptr< CostDataAbstract > | createData (DataCollectorAbstract *const data) |
| Create the contact impulse cost data. More...
|
|
| DEPRECATED ("Used set_reference<FrameForceTpl<Scalar> >()", void set_fref(const FrameForce &fref)) |
|
| DEPRECATED ("Used get_reference<FrameForceTpl<Scalar> >()", const FrameForce &get_fref() const) |
|
| 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::CostModelContactImpulseTpl< _Scalar >
Define a contact impulse cost function.
This cost function defines a residual vector \(\mathbf{r}=\boldsymbol{\lambda}-\boldsymbol{\lambda}^*\), where \(\boldsymbol{\lambda}, \boldsymbol{\lambda}^*\) are the current and reference spatial impulses, respetively. The current spatial impulses \(\boldsymbol{\lambda}\in\mathbb{R}^{ni}\)is computed by DifferentialActionModelContactFwdDynamicsTpl
, with ni
as the dimension of the impulse.
Both cost and residual derivatives are computed analytically, where th force vector \(\boldsymbol{\lambda}\) and its derivatives \(\left(\frac{\partial\boldsymbol{\lambda}}{\partial\mathbf{x}}, \frac{\partial\boldsymbol{\lambda}}{\partial\mathbf{u}}\right)\) are computed by ActionModelImpulseFwdDynamicsTpl
. These values are stored in a shared data (i.e. DataCollectorImpulseTpl). Note that this cost function cannot be used with other action models. For the computation of the cost Hessian, we use the Gauss-Newton approximation, e.g. \(\mathbf{l_{xu}} = \mathbf{l_{x}}^T \mathbf{l_{u}} \).
- See also
- ActionModelImpulseFwdDynamicsTpl, DataCollectorImpulseTpl, ActivationModelAbstractTpl
Definition at line 44 of file contact-impulse.hpp.