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 |
![]() | |
typedef ContactDataAbstractTpl< Scalar > | ContactDataAbstract |
typedef MathBaseTpl< Scalar > | MathBase |
typedef MathBase::MatrixXs | MatrixXs |
typedef StateMultibodyTpl< Scalar > | StateMultibody |
typedef MathBase::VectorXs | VectorXs |
Public Member Functions | |
ContactModel1DTpl (std::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. | |
ContactModel1DTpl (std::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. | |
this assumes is | ContactModel1DTpl (std::shared_ptr< StateMultibody > state, const pinocchio::FrameIndex id, const Scalar xref, const Vector2s &gains=Vector2s::Zero()) |
virtual void | calc (const std::shared_ptr< ContactDataAbstract > &data, const Eigen::Ref< const VectorXs > &x) |
Compute the 1d contact Jacobian and drift. | |
virtual void | calcDiff (const std::shared_ptr< ContactDataAbstract > &data, const Eigen::Ref< const VectorXs > &x) |
Compute the derivatives of the 1d contact holonomic constraint. | |
virtual std::shared_ptr< ContactDataAbstract > | createData (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(std::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. | |
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 std::shared_ptr< ContactDataAbstract > &data, const VectorXs &force) |
Convert the force into a stack of spatial forces. | |
![]() | |
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 |
![]() | |
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< StateMultibody > | state_ |
pinocchio::ReferenceFrame | type_ |
Type of contact. | |
![]() | |
pinocchio::FrameIndex | id_ |
Reference frame id of the contact. | |
std::size_t | nc_ |
std::size_t | nu_ |
std::shared_ptr< StateMultibody > | state_ |
pinocchio::ReferenceFrame | type_ |
Type of contact. | |
Definition at line 25 of file contact-1d.hpp.
typedef MathBaseTpl<Scalar> MathBase |
Definition at line 30 of file contact-1d.hpp.
typedef ContactModelAbstractTpl<Scalar> Base |
Definition at line 31 of file contact-1d.hpp.
typedef ContactData1DTpl<Scalar> Data |
Definition at line 32 of file contact-1d.hpp.
typedef StateMultibodyTpl<Scalar> StateMultibody |
Definition at line 33 of file contact-1d.hpp.
typedef ContactDataAbstractTpl<Scalar> ContactDataAbstract |
Definition at line 34 of file contact-1d.hpp.
typedef MathBase::Vector2s Vector2s |
Definition at line 35 of file contact-1d.hpp.
typedef MathBase::Vector3s Vector3s |
Definition at line 36 of file contact-1d.hpp.
typedef MathBase::VectorXs VectorXs |
Definition at line 37 of file contact-1d.hpp.
typedef MathBase::Matrix3s Matrix3s |
Definition at line 38 of file contact-1d.hpp.
ContactModel1DTpl | ( | std::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
[in] | state | State of the multibody system |
[in] | id | Reference frame id of the contact |
[in] | xref | Contact position used for the Baumgarte stabilization |
[in] | type | Type of contact |
[in] | rotation | Rotation of the reference frame's z-axis |
[in] | nu | Dimension of the control vector |
[in] | gains | Baumgarte stabilization gains |
ContactModel1DTpl | ( | std::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
[in] | state | State of the multibody system |
[in] | id | Reference frame id of the contact |
[in] | xref | Contact position used for the Baumgarte stabilization |
[in] | type | Type of contact |
[in] | gains | Baumgarte stabilization gains |
|
virtual |
Compute the 1d contact Jacobian and drift.
[in] | data | 1d contact data |
[in] | x | State point \(\mathbf{x}\in\mathbb{R}^{ndx}\) |
[in] | u | Control input \(\mathbf{u}\in\mathbb{R}^{nu}\) |
Implements ContactModelAbstractTpl< _Scalar >.
|
virtual |
Compute the derivatives of the 1d contact holonomic constraint.
[in] | data | 1d contact data |
[in] | x | State point \(\mathbf{x}\in\mathbb{R}^{ndx}\) |
[in] | u | Control input \(\mathbf{u}\in\mathbb{R}^{nu}\) |
Implements ContactModelAbstractTpl< _Scalar >.
|
virtual |
Convert the force into a stack of spatial forces.
[in] | data | 1d contact data |
[in] | force | 1d force |
Implements ContactModelAbstractTpl< _Scalar >.
|
virtual |
Create the 1d contact data.
Reimplemented from ContactModelAbstractTpl< _Scalar >.
|
virtual |
Print relevant information of the 1d contact model.
[out] | os | Output stream object |
Reimplemented from ContactModelAbstractTpl< _Scalar >.
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef _Scalar Scalar |
Definition at line 29 of file contact-1d.hpp.
|
protected |
Reference frame id of the contact.
Definition at line 173 of file contact-base.hpp.
|
protected |
Definition at line 171 of file contact-base.hpp.
|
protected |
Definition at line 172 of file contact-base.hpp.
|
protected |
Definition at line 170 of file contact-base.hpp.
|
protected |
Type of contact.
Definition at line 174 of file contact-base.hpp.