Template Class FrictionConeTpl
Defined in File friction-cone.hpp
Class Documentation
-
template<typename _Scalar>
class FrictionConeTpl This class encapsulates a friction cone.
A friction cone is a 3D cone that characterizes feasible contact wrench. The friction cone defines a linearized version (pyramid) with a predefined number of facets.
/sa
WrenchConeTplPublic Types
-
typedef MathBaseTpl<Scalar> MathBase
Public Functions
-
FrictionConeTpl(const Matrix3s &R, const Scalar mu, std::size_t nf = 4, const bool inner_appr = true, const Scalar min_nforce = Scalar(0.), const Scalar max_nforce = std::numeric_limits<Scalar>::infinity())
Initialize the wrench cone.
- Parameters:
R – [in] Rotation matrix that defines the cone orientation w.r.t. the inertial frame
mu – [in] Friction coefficient
nf – [in] Number of facets (default 4)
inner_appr – [in] Label that describes the type of friction cone approximation (inner/outer)
min_nforce – [in] Minimum normal force (default 0.)
max_nforce – [in] Maximum normal force (default inf number))
-
FrictionConeTpl(const FrictionConeTpl<Scalar> &cone)
Initialize the wrench cone.
- Parameters:
cone – [in] Friction cone
-
explicit FrictionConeTpl()
Initialize the friction cone.
-
~FrictionConeTpl()
-
void update()
Update the matrix and bound of friction cone inequalities in the world frame.
This matrix-vector pair describes the linearized Coulomb friction model as follow: \( -ub \leq A \times w \leq -lb \), where wrench, \( w \), is expressed in the inertial frame located with axes parallel to those of the world frame.
- DEPRECATED ("Use update()", void update(const Vector3s &normal, const Scalar mu, const bool inner_appr=true, const Scalar min_nforce=Scalar(0.), const Scalar max_nforce=std::numeric_limits< Scalar >::infinity()))
-
template<typename NewScalar>
FrictionConeTpl<NewScalar> cast() const Cast the friction cone to a different scalar type.
It is useful for operations requiring different precision or scalar types.
- Template Parameters:
NewScalar – The new scalar type to cast to.
- Returns:
FrictionConeTpl<NewScalar> An friction conel with the new scalar type.
-
std::size_t get_nf() const
Return the number of facets.
-
const Scalar get_mu() const
Return the friction coefficient.
-
bool get_inner_appr() const
Return the label that describes the type of friction cone approximation (inner/outer)
-
const Scalar get_min_nforce() const
Return the minimum normal force.
-
const Scalar get_max_nforce() const
Return the maximum normal force.
-
void set_R(const Matrix3s &R)
Modify the rotation matrix that defines the cone orientation w.r.t. the inertial frame.
Note that you need to run
updatefor updating the inequality matrix and bounds.
-
void set_mu(const Scalar mu)
Modify friction coefficient.
Note that you need to run
updatefor updating the inequality matrix and bounds.
-
void set_inner_appr(const bool inner_appr)
Modify the label that describes the type of friction cone approximation (inner/outer)
Note that you need to run
updatefor updating the inequality matrix and bounds.
-
void set_min_nforce(const Scalar min_nforce)
Modify the maximum normal force.
Note that you need to run
updatefor updating the inequality matrix and bounds.
-
void set_max_nforce(const Scalar max_nforce)
Modify the maximum normal force.
Note that you need to run
updatefor updating the inequality matrix and bounds.
-
FrictionConeTpl<Scalar> &operator=(const FrictionConeTpl<Scalar> &other)
Public Members
- EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef _Scalar Scalar
Friends
-
template<class Scalar>
friend std::ostream &operator<<(std::ostream &os, const FrictionConeTpl<Scalar> &X)
-
typedef MathBaseTpl<Scalar> MathBase