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

Public Types

typedef ContactModelAbstractTpl< Scalar > Base
 
typedef ContactDataAbstractTpl< Scalar > ContactDataAbstract
 
typedef ContactData6DTpl< Scalar > Data
 
typedef MathBaseTpl< Scalar > MathBase
 
typedef MathBase::Matrix3s Matrix3s
 
typedef pinocchio::SE3Tpl< Scalar > SE3
 
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

 ContactModel6DTpl (boost::shared_ptr< StateMultibody > state, const pinocchio::FrameIndex id, const SE3 &pref, const pinocchio::ReferenceFrame type, const std::size_t nu, const Vector2s &gains=Vector2s::Zero())
 Initialize the 6d contact model. More...
 
 ContactModel6DTpl (boost::shared_ptr< StateMultibody > state, const pinocchio::FrameIndex id, const SE3 &pref, const pinocchio::ReferenceFrame type, const Vector2s &gains=Vector2s::Zero())
 Initialize the 6d contact model. More...
 
this assumes is ContactModel6DTpl (boost::shared_ptr< StateMultibody > state, const pinocchio::FrameIndex id, const SE3 &pref, const Vector2s &gains=Vector2s::Zero())
 
virtual void calc (const boost::shared_ptr< ContactDataAbstract > &data, const Eigen::Ref< const VectorXs > &x)
 Compute the 3d 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 6d contact holonomic constraint. More...
 
virtual boost::shared_ptr< ContactDataAbstractcreateData (pinocchio::DataTpl< Scalar > *const data)
 Create the 6d contact data.
 
 DEPRECATED ("Use constructor that passes the type type of contact, this assumes is " "pinocchio::LOCAL", ContactModel6DTpl(boost::shared_ptr< StateMultibody > state, const pinocchio::FrameIndex id, const SE3 &pref, const std::size_t nu, const Vector2s &gains=Vector2s::Zero());) DEPRECATED("Use const ructor that passes the type type of contact
 
const Vector2s & get_gains () const
 Return the Baumgarte stabilization gains.
 
const SE3 & get_reference () const
 Return the reference frame placement.
 
virtual void print (std::ostream &os) const
 Print relevant information of the 6d contact model. More...
 
void set_reference (const SE3 &reference)
 Modify the reference frame placement.
 
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::ContactModel6DTpl< _Scalar >

Definition at line 23 of file contact-6d.hpp.

Constructor & Destructor Documentation

◆ ContactModel6DTpl() [1/2]

ContactModel6DTpl ( boost::shared_ptr< StateMultibody state,
const pinocchio::FrameIndex  id,
const SE3 &  pref,
const pinocchio::ReferenceFrame  type,
const std::size_t  nu,
const Vector2s &  gains = Vector2s::Zero() 
)

Initialize the 6d 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]prefContact placement used for the Baumgarte stabilization
[in]typeType of contact
[in]nuDimension of the control vector
[in]gainsBaumgarte stabilization gains

◆ ContactModel6DTpl() [2/2]

ContactModel6DTpl ( boost::shared_ptr< StateMultibody state,
const pinocchio::FrameIndex  id,
const SE3 &  pref,
const pinocchio::ReferenceFrame  type,
const Vector2s &  gains = Vector2s::Zero() 
)

Initialize the 6d 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]prefContact placement 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 3d contact Jacobian and drift.

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

Parameters
[in]data6d 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]data6d contact data
[in]force6d force

Implements ContactModelAbstractTpl< _Scalar >.

◆ print()

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

Print relevant information of the 6d contact model.

Parameters
[out]osOutput stream object

Reimplemented from ContactModelAbstractTpl< _Scalar >.


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