Crocoddyl
Loading...
Searching...
No Matches
ContactModel2DTpl< _Scalar > Class Template Reference
Inheritance diagram for ContactModel2DTpl< _Scalar >:
ContactModelAbstractTpl< _Scalar >ContactModelBase

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 (std::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.
 ContactModel2DTpl (std::shared_ptr< StateMultibody > state, const pinocchio::FrameIndex id, const Vector2s &xref, const Vector2s &gains=Vector2s::Zero())
 Initialize the 2d contact model.
virtual void calc (const std::shared_ptr< ContactDataAbstract > &data, const Eigen::Ref< const VectorXs > &x) override
 Compute the 2d contact Jacobian and drift.
virtual void calcDiff (const std::shared_ptr< ContactDataAbstract > &data, const Eigen::Ref< const VectorXs > &x) override
 Compute the derivatives of the 2d contact holonomic constraint.
template<typename NewScalar>
ContactModel2DTpl< NewScalar > cast () const
 Cast the contact-2d model to a different scalar type.
virtual std::shared_ptr< ContactDataAbstractcreateData (pinocchio::DataTpl< Scalar > *const data) override
 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 override
 Print relevant information of the 2d contact model.
void set_reference (const Vector2s &reference)
 Modify the reference frame translation.
virtual void updateForce (const std::shared_ptr< ContactDataAbstract > &data, const VectorXs &force) override
 Convert the force into a stack of spatial forces.
Public Member Functions inherited from ContactModelAbstractTpl< _Scalar >
 ContactModelAbstractTpl (std::shared_ptr< StateMultibody > state, const pinocchio::ReferenceFrame type, const std::size_t nc)
 ContactModelAbstractTpl (std::shared_ptr< StateMultibody > state, const pinocchio::ReferenceFrame type, const std::size_t nc, const std::size_t nu)
 Initialize the contact abstraction.
this assumes is ContactModelAbstractTpl (std::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(std::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 std::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 std::shared_ptr< ContactDataAbstract > &data) const
 Set the stack of spatial forces to zero.
void setZeroForceDiff (const std::shared_ptr< ContactDataAbstract > &data) const
 Set the stack of spatial forces Jacobians to zero.
void updateForceDiff (const std::shared_ptr< ContactDataAbstract > &data, const MatrixXs &df_dx, const MatrixXs &df_du) const
 Convert the force into a stack of spatial forces.

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_
std::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_
std::shared_ptr< StateMultibodystate_
pinocchio::ReferenceFrame type_
 Type of contact.

Detailed Description

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

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

Member Typedef Documentation

◆ MathBase

template<typename _Scalar>
typedef MathBaseTpl<Scalar> MathBase

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

◆ Base

template<typename _Scalar>
typedef ContactModelAbstractTpl<Scalar> Base

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

◆ Data

template<typename _Scalar>
typedef ContactData2DTpl<Scalar> Data

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

◆ StateMultibody

template<typename _Scalar>
typedef StateMultibodyTpl<Scalar> StateMultibody

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

◆ ContactDataAbstract

template<typename _Scalar>
typedef ContactDataAbstractTpl<Scalar> ContactDataAbstract

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

◆ Vector2s

template<typename _Scalar>
typedef MathBase::Vector2s Vector2s

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

◆ Vector3s

template<typename _Scalar>
typedef MathBase::Vector3s Vector3s

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

◆ VectorXs

template<typename _Scalar>
typedef MathBase::VectorXs VectorXs

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

◆ Matrix3s

template<typename _Scalar>
typedef MathBase::Matrix3s Matrix3s

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

Constructor & Destructor Documentation

◆ ContactModel2DTpl() [1/2]

template<typename _Scalar>
ContactModel2DTpl(std::shared_ptr< StateMultibody >state,
const pinocchio::FrameIndexid,
const Vector2s &xref,
const std::size_tnu,
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]

template<typename _Scalar>
ContactModel2DTpl(std::shared_ptr< StateMultibody >state,
const pinocchio::FrameIndexid,
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()

template<typename _Scalar>
virtual void calc(const std::shared_ptr< ContactDataAbstract > &data,
const Eigen::Ref< const VectorXs > &x )
overridevirtual

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()

template<typename _Scalar>
virtual void calcDiff(const std::shared_ptr< ContactDataAbstract > &data,
const Eigen::Ref< const VectorXs > &x )
overridevirtual

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()

template<typename _Scalar>
virtual void updateForce(const std::shared_ptr< ContactDataAbstract > &data,
const VectorXs &force )
overridevirtual

Convert the force into a stack of spatial forces.

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

Implements ContactModelAbstractTpl< _Scalar >.

◆ createData()

template<typename _Scalar>
virtual std::shared_ptr< ContactDataAbstract > createData(pinocchio::DataTpl< Scalar > *constdata)
overridevirtual

Create the 2d contact data.

Reimplemented from ContactModelAbstractTpl< _Scalar >.

◆ cast()

template<typename _Scalar>
template<typename NewScalar>
ContactModel2DTpl< NewScalar > cast()const

Cast the contact-2d model to a different scalar type.

It is useful for operations requiring different precision or scalar types.

Template Parameters
NewScalarThe new scalar type to cast to.
Returns
ContactModel2DTpl<NewScalar> A contact model with the new scalar type.

◆ print()

template<typename _Scalar>
virtual void print(std::ostream &os)const
overridevirtual

Print relevant information of the 2d contact model.

Parameters
[out]osOutput stream object

Reimplemented from ContactModelAbstractTpl< _Scalar >.

Member Data Documentation

◆ Scalar

template<typename _Scalar>
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef _Scalar Scalar

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

◆ id_

template<typename _Scalar>
pinocchio::FrameIndex id_
protected

Reference frame id of the contact.

Definition at line 177 of file contact-base.hpp.

◆ nc_

template<typename _Scalar>
std::size_t nc_
protected

Definition at line 175 of file contact-base.hpp.

◆ nu_

template<typename _Scalar>
std::size_t nu_
protected

Definition at line 176 of file contact-base.hpp.

◆ state_

template<typename _Scalar>
std::shared_ptr<StateMultibody> state_
protected

Definition at line 174 of file contact-base.hpp.


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