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

Public Types

typedef ContactModelAbstractTpl< Scalar > Base
 
typedef ContactDataAbstractTpl< Scalar > ContactDataAbstract
 
typedef ContactData1DTpl< 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

 ContactModel1DTpl (boost::shared_ptr< StateMultibody > state, const pinocchio::FrameIndex id, const Scalar xref, const pinocchio::ReferenceFrame type, const Matrix3s &rotation, const std::size_t nu, const Vector2s &gains=Vector2s::Zero())
 Initialize the 1d contact model. More...
 
 ContactModel1DTpl (boost::shared_ptr< StateMultibody > state, const pinocchio::FrameIndex id, const Scalar xref, const pinocchio::ReferenceFrame type, const Vector2s &gains=Vector2s::Zero())
 Initialize the 1d contact model. More...
 
this assumes is ContactModel1DTpl (boost::shared_ptr< StateMultibody > state, const pinocchio::FrameIndex id, const Scalar xref, const Vector2s &gains=Vector2s::Zero())
 
virtual void calc (const boost::shared_ptr< ContactDataAbstract > &data, const Eigen::Ref< const VectorXs > &x)
 Compute the 1d 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 1d contact holonomic constraint. More...
 
virtual boost::shared_ptr< ContactDataAbstractcreateData (pinocchio::DataTpl< Scalar > *const data)
 Create the 1d contact data.
 
 DEPRECATED ("Use constructor that passes the type type of contact, this assumes is " "pinocchio::LOCAL", ContactModel1DTpl(boost::shared_ptr< StateMultibody > state, const pinocchio::FrameIndex id, const Scalar xref, const std::size_t nu, const Vector2s &gains=Vector2s::Zero());) DEPRECATED("Use const ructor that passes the type type of contact
 
const Matrix3s & get_axis_rotation () const
 Return the rotation of the reference frames's z axis.
 
const Vector2s & get_gains () const
 Create the 1d contact data.
 
const Scalar get_reference () const
 Return the reference frame translation.
 
virtual void print (std::ostream &os) const
 Print relevant information of the 1d contact model. More...
 
void set_axis_rotation (const Matrix3s &rotation)
 Modify the rotation of the reference frames's z axis.
 
void set_reference (const Scalar 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_
 
pinocchio::ReferenceFrame type_
 Type of contact.
 
- 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::ContactModel1DTpl< _Scalar >

Definition at line 25 of file contact-1d.hpp.

Constructor & Destructor Documentation

◆ ContactModel1DTpl() [1/2]

ContactModel1DTpl ( boost::shared_ptr< StateMultibody state,
const pinocchio::FrameIndex  id,
const Scalar  xref,
const pinocchio::ReferenceFrame  type,
const Matrix3s &  rotation,
const std::size_t  nu,
const Vector2s &  gains = Vector2s::Zero() 
)

Initialize the 1d contact model.

To learn more about the computation of the contact derivatives in different frames see S. Kleff et. al, On the Derivation of the Contact Dynamics in Arbitrary Frames: Application to Polishing with Talos, ICHR 2022

Parameters
[in]stateState of the multibody system
[in]idReference frame id of the contact
[in]xrefContact position used for the Baumgarte stabilization
[in]typeType of contact
[in]rotationRotation of the reference frame's z-axis
[in]nuDimension of the control vector
[in]gainsBaumgarte stabilization gains

◆ ContactModel1DTpl() [2/2]

ContactModel1DTpl ( boost::shared_ptr< StateMultibody state,
const pinocchio::FrameIndex  id,
const Scalar  xref,
const pinocchio::ReferenceFrame  type,
const Vector2s &  gains = Vector2s::Zero() 
)

Initialize the 1d contact model.

The default nu is obtained from StateAbstractTpl::get_nv(). To learn more about the computation of the contact derivatives in different frames see S. Kleff et. al, On the Derivation of the Contact Dynamics in Arbitrary Frames: Application to Polishing with Talos, ICHR 2022

Parameters
[in]stateState of the multibody system
[in]idReference frame id of the contact
[in]xrefContact position used for the Baumgarte stabilization
[in]typeType of contact
[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 1d contact Jacobian and drift.

Parameters
[in]data1d 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 1d contact holonomic constraint.

Parameters
[in]data1d 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]data1d contact data
[in]force1d force

Implements ContactModelAbstractTpl< _Scalar >.

◆ print()

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

Print relevant information of the 1d contact model.

Parameters
[out]osOutput stream object

Reimplemented from ContactModelAbstractTpl< _Scalar >.


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