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< ContactDataAbstract > | createData (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< StateMultibody > | state_ |
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< StateMultibody > | state_ |
pinocchio::ReferenceFrame | type_ |
Type of contact. | |
Definition at line 23 of file contact-6d.hpp.
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
[in] | state | State of the multibody system |
[in] | id | Reference frame id of the contact |
[in] | pref | Contact placement used for the Baumgarte stabilization |
[in] | type | Type of contact |
[in] | nu | Dimension of the control vector |
[in] | gains | Baumgarte stabilization gains |
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
[in] | state | State of the multibody system |
[in] | id | Reference frame id of the contact |
[in] | pref | Contact placement used for the Baumgarte stabilization |
[in] | type | Type of contact |
[in] | gains | Baumgarte stabilization gains |
|
virtual |
Compute the 3d contact Jacobian and drift.
[in] | data | 3d 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 6d contact holonomic constraint.
[in] | data | 6d 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 | 6d contact data |
[in] | force | 6d force |
Implements ContactModelAbstractTpl< _Scalar >.
|
virtual |
Print relevant information of the 6d contact model.
[out] | os | Output stream object |
Reimplemented from ContactModelAbstractTpl< _Scalar >.