RobWorkProject
Classes | Public Member Functions | List of all members
RWPEFrictionModel Class Referenceabstract

A friction model calculates friction coefficients based on the relative velocities. More...

#include <RWPEFrictionModel.hpp>

Inherited by RWPEFrictionModelCoulomb, RWPEFrictionModelMicroSlip, RWPEFrictionModelNone, and RWPEFrictionModelStribeck.

Classes

struct  DryFriction
 Specification of the dry friction. More...
 
class  Factory
 A factory for a RWPEFrictionModel. This factory also defines an ExtensionPoint. More...
 

Public Member Functions

 RWPEFrictionModel ()
 Constructor.
 
virtual ~RWPEFrictionModel ()
 Destructor.
 
virtual const RWPEFrictionModelwithProperties (const rw::common::PropertyMap &map) const =0
 Get a model with the given properties. More...
 
virtual RWPEFrictionModelDatamakeDataStructure () const
 Create a new data structure (for use in stateful friction models). More...
 
virtual void updateData (const RWPEContact &contact, const RWPEIslandState &islandState, const rw::kinematics::State &rwstate, double h, RWPEFrictionModelData *data) const
 Update the internal data. More...
 
virtual DryFriction getDryFriction (const RWPEContact &contact, const RWPEIslandState &islandState, const rw::kinematics::State &rwstate, const RWPEFrictionModelData *data) const =0
 Get the friction coefficients. More...
 
virtual rw::math::Wrench6D getViscuousFriction (const RWPEContact &contact, const RWPEIslandState &islandState, const rw::kinematics::State &rwstate, const RWPEFrictionModelData *data) const =0
 Get the viscuous friction. More...
 

Detailed Description

A friction model calculates friction coefficients based on the relative velocities.

Member Function Documentation

◆ getDryFriction()

virtual DryFriction getDryFriction ( const RWPEContact contact,
const RWPEIslandState islandState,
const rw::kinematics::State rwstate,
const RWPEFrictionModelData data 
) const
pure virtual

Get the friction coefficients.

Parameters
contact[in] the contact to find coefficient for.
islandState[in] the current state of the system.
rwstate[in] the current state of the system.
data[in] pointer to internal data.
Returns
the Values.

Implemented in RWPEFrictionModelMicroSlip, RWPEFrictionModelStribeck, RWPEFrictionModelCoulomb, and RWPEFrictionModelNone.

◆ getViscuousFriction()

virtual rw::math::Wrench6D getViscuousFriction ( const RWPEContact contact,
const RWPEIslandState islandState,
const rw::kinematics::State rwstate,
const RWPEFrictionModelData data 
) const
pure virtual

Get the viscuous friction.

Parameters
contact[in] the contact to find friction for.
islandState[in] the current state of the system.
rwstate[in] the current state of the system.
data[in] pointer to internal data.
Returns
the wrench to apply.

Implemented in RWPEFrictionModelMicroSlip, RWPEFrictionModelStribeck, RWPEFrictionModelCoulomb, and RWPEFrictionModelNone.

◆ makeDataStructure()

virtual RWPEFrictionModelData* makeDataStructure ( ) const
virtual

Create a new data structure (for use in stateful friction models).

If model is not stateful, a NULL pointer can be returned.

Returns
a pointer to internal data - owned by the caller.

Reimplemented in RWPEFrictionModelMicroSlip.

◆ updateData()

virtual void updateData ( const RWPEContact contact,
const RWPEIslandState islandState,
const rw::kinematics::State rwstate,
double  h,
RWPEFrictionModelData data 
) const
virtual

Update the internal data.

Parameters
contact[in] the contact to update data for.
islandState[in] the current state of the system.
rwstate[in] the current state of the system.
h[in] the step size.
data[in/out] internal data to update.

Reimplemented in RWPEFrictionModelMicroSlip.

◆ withProperties()

virtual const RWPEFrictionModel* withProperties ( const rw::common::PropertyMap map) const
pure virtual

Get a model with the given properties.

Parameters
map[in] a map of properties with the required parameters for the model.
Returns
a friction model with the given properties (can return NULL if properties are not as expected).

Implemented in RWPEFrictionModelMicroSlip, RWPEFrictionModelStribeck, RWPEFrictionModelCoulomb, and RWPEFrictionModelNone.


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