crocoddyl  1.8.1
Contact RObot COntrol by Differential DYnamic programming Library (Crocoddyl)
ResidualModelContactControlGravTpl< _Scalar > Class Template Reference

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< ResidualDataAbstractcreateData (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< StateAbstractstate_
 State description.
 
VectorXs unone_
 No control vector.
 
bool v_dependent_
 Label that indicates if the residual function depends on v.
 

Detailed Description

template<typename _Scalar>
class crocoddyl::ResidualModelContactControlGravTpl< _Scalar >

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.

See also
ResidualModelAbstractTpl, calc(), calcDiff(), createData()

Definition at line 122 of file fwd.hpp.

Constructor & Destructor Documentation

◆ ResidualModelContactControlGravTpl() [1/2]

ResidualModelContactControlGravTpl ( boost::shared_ptr< StateMultibody state,
const std::size_t  nu 
)

Initialize the contact control gravity contact residual model.

Parameters
[in]stateState of the multibody system
[in]nuDimension of the control vector

◆ ResidualModelContactControlGravTpl() [2/2]

ResidualModelContactControlGravTpl ( boost::shared_ptr< StateMultibody state)
explicit

Initialize the contact control gravity contact residual model.

The default nu value is obtained from StateAbstractTpl::get_nv().

Parameters
[in]stateState of the multibody system

Member Function Documentation

◆ calc()

virtual void calc ( const boost::shared_ptr< ResidualDataAbstract > &  data,
const Eigen::Ref< const VectorXs > &  x,
const Eigen::Ref< const VectorXs > &  u 
)
virtual

Compute the contact control gravity contact residual.

Parameters
[in]dataContact control gravity residual data
[in]xState point \(\mathbf{x}\in\mathbb{R}^{ndx}\)
[in]uControl input \(\mathbf{u}\in\mathbb{R}^{nu}\)

◆ calcDiff()

virtual void calcDiff ( const boost::shared_ptr< ResidualDataAbstract > &  data,
const Eigen::Ref< const VectorXs > &  x,
const Eigen::Ref< const VectorXs > &  u 
)
virtual

Compute the Jacobians of the contact control gravity contact residual.

Parameters
[in]dataContact control gravity residual data
[in]xState point \(\mathbf{x}\in\mathbb{R}^{ndx}\)
[in]uControl input \(\mathbf{u}\in\mathbb{R}^{nu}\)

◆ print()

virtual void print ( std::ostream &  os) const
virtual

Print relevant information of the contact-control-grav residual.

Parameters
[out]osOutput stream object

The documentation for this class was generated from the following files: