Crocoddyl
ContactModel2DTpl< _Scalar > Class Template Reference
Inheritance diagram for ContactModel2DTpl< _Scalar >:
ContactModelAbstractTpl< _Scalar >

Public Types

typedef ContactModelAbstractTpl< Scalar > Base
 
typedef ContactDataAbstractTpl< Scalar > ContactDataAbstract
 
typedef ContactData2DTpl< Scalar > Data
 
typedef MathBaseTpl< Scalar > MathBase
 
typedef MathBase::Matrix3s Matrix3s
 
typedef StateMultibodyTpl< Scalar > StateMultibody
 
typedef MathBase::Vector2s Vector2s
 
typedef MathBase::Vector3s Vector3s
 
typedef MathBase::VectorXs VectorXs
 
- Public Types inherited from ContactModelAbstractTpl< _Scalar >
typedef ContactDataAbstractTpl< Scalar > ContactDataAbstract
 
typedef MathBaseTpl< Scalar > MathBase
 
typedef MathBase::MatrixXs MatrixXs
 
typedef StateMultibodyTpl< Scalar > StateMultibody
 
typedef MathBase::VectorXs VectorXs
 

Public Member Functions

 ContactModel2DTpl (boost::shared_ptr< StateMultibody > state, const pinocchio::FrameIndex id, const Vector2s &xref, const std::size_t nu, const Vector2s &gains=Vector2s::Zero())
 Initialize the 2d contact model. More...
 
 ContactModel2DTpl (boost::shared_ptr< StateMultibody > state, const pinocchio::FrameIndex id, const Vector2s &xref, const Vector2s &gains=Vector2s::Zero())
 Initialize the 2d contact model. More...
 
virtual void calc (const boost::shared_ptr< ContactDataAbstract > &data, const Eigen::Ref< const VectorXs > &x)
 Compute the 2d contact Jacobian and drift. More...
 
virtual void calcDiff (const boost::shared_ptr< ContactDataAbstract > &data, const Eigen::Ref< const VectorXs > &x)
 Compute the derivatives of the 2d contact holonomic constraint. More...
 
virtual boost::shared_ptr< ContactDataAbstractcreateData (pinocchio::DataTpl< Scalar > *const data)
 Create the 2d contact data.
 
const Vector2s & get_gains () const
 Create the 2d contact data.
 
const Vector2s & get_reference () const
 Return the reference frame translation.
 
virtual void print (std::ostream &os) const
 Print relevant information of the 2d contact model. More...
 
void set_reference (const Vector2s &reference)
 Modify the reference frame translation.
 
virtual void updateForce (const boost::shared_ptr< ContactDataAbstract > &data, const VectorXs &force)
 Convert the force into a stack of spatial forces. More...
 
- Public Member Functions inherited from ContactModelAbstractTpl< _Scalar >
 ContactModelAbstractTpl (boost::shared_ptr< StateMultibody > state, const pinocchio::ReferenceFrame type, const std::size_t nc)
 
 ContactModelAbstractTpl (boost::shared_ptr< StateMultibody > state, const pinocchio::ReferenceFrame type, const std::size_t nc, const std::size_t nu)
 Initialize the contact abstraction. More...
 
this assumes is ContactModelAbstractTpl (boost::shared_ptr< StateMultibody > state, const std::size_t nc)
 
 DEPRECATED ("Use constructor that passes the type type of contact, this assumes is " "pinocchio::LOCAL", ContactModelAbstractTpl(boost::shared_ptr< StateMultibody > state, const std::size_t nc, const std::size_t nu);) DEPRECATED("Use const ructor that passes the type type of contact
 
pinocchio::FrameIndex get_id () const
 Return the reference frame id.
 
std::size_t get_nc () const
 Return the dimension of the contact.
 
std::size_t get_nu () const
 Return the dimension of the control vector.
 
const boost::shared_ptr< StateMultibody > & get_state () const
 Return the state.
 
pinocchio::ReferenceFrame get_type () const
 Return the type of contact.
 
void set_id (const pinocchio::FrameIndex id)
 Modify the reference frame id.
 
void set_type (const pinocchio::ReferenceFrame type)
 Modify the type of contact.
 
void setZeroForce (const boost::shared_ptr< ContactDataAbstract > &data) const
 Set the stack of spatial forces to zero. More...
 
void setZeroForceDiff (const boost::shared_ptr< ContactDataAbstract > &data) const
 Set the stack of spatial forces Jacobians to zero. More...
 
void updateForceDiff (const boost::shared_ptr< ContactDataAbstract > &data, const MatrixXs &df_dx, const MatrixXs &df_du) const
 Convert the force into a stack of spatial forces. More...
 

Public Attributes

EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef _Scalar Scalar
 
- Public Attributes inherited from ContactModelAbstractTpl< _Scalar >
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef _Scalar Scalar
 

Protected Attributes

pinocchio::FrameIndex id_
 Reference frame id of the contact.
 
std::size_t nc_
 
std::size_t nu_
 
boost::shared_ptr< StateMultibodystate_
 
- Protected Attributes inherited from ContactModelAbstractTpl< _Scalar >
pinocchio::FrameIndex id_
 Reference frame id of the contact.
 
std::size_t nc_
 
std::size_t nu_
 
boost::shared_ptr< StateMultibodystate_
 
pinocchio::ReferenceFrame type_
 Type of contact.
 

Detailed Description

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

Definition at line 24 of file contact-2d.hpp.

Constructor & Destructor Documentation

◆ ContactModel2DTpl() [1/2]

ContactModel2DTpl ( boost::shared_ptr< StateMultibody state,
const pinocchio::FrameIndex  id,
const Vector2s &  xref,
const std::size_t  nu,
const Vector2s &  gains = Vector2s::Zero() 
)

Initialize the 2d contact model.

Parameters
[in]stateState of the multibody system
[in]idReference frame id of the contact
[in]xrefContact position used for the Baumgarte stabilization
[in]nuDimension of the control vector
[in]gainsBaumgarte stabilization gains

◆ ContactModel2DTpl() [2/2]

ContactModel2DTpl ( boost::shared_ptr< StateMultibody state,
const pinocchio::FrameIndex  id,
const Vector2s &  xref,
const Vector2s &  gains = Vector2s::Zero() 
)

Initialize the 2d contact model.

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

Parameters
[in]stateState of the multibody system
[in]idReference frame id of the contact
[in]xrefContact position used for the Baumgarte stabilization
[in]gainsBaumgarte stabilization gains

Member Function Documentation

◆ calc()

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

Compute the 2d contact Jacobian and drift.

Parameters
[in]data2d contact data
[in]xState point \(\mathbf{x}\in\mathbb{R}^{ndx}\)
[in]uControl input \(\mathbf{u}\in\mathbb{R}^{nu}\)

Implements ContactModelAbstractTpl< _Scalar >.

◆ calcDiff()

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

Compute the derivatives of the 2d contact holonomic constraint.

Parameters
[in]data2d contact data
[in]xState point \(\mathbf{x}\in\mathbb{R}^{ndx}\)
[in]uControl input \(\mathbf{u}\in\mathbb{R}^{nu}\)

Implements ContactModelAbstractTpl< _Scalar >.

◆ updateForce()

virtual void updateForce ( const boost::shared_ptr< ContactDataAbstract > &  data,
const VectorXs &  force 
)
virtual

Convert the force into a stack of spatial forces.

Parameters
[in]data2d contact data
[in]force2d force

Implements ContactModelAbstractTpl< _Scalar >.

◆ print()

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

Print relevant information of the 2d contact model.

Parameters
[out]osOutput stream object

Reimplemented from ContactModelAbstractTpl< _Scalar >.


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