SuperDex Physics C++ API
Loading...
Searching...
No Matches
superdex::ArticulatedJointFrictionParams Struct Reference

Per-joint friction parameters for articulated bodies. More...

#include <articulated_body_params.h>

Public Member Functions

bool operator== (ArticulatedJointFrictionParams const &) const =default

Public Attributes

real coulomb = 0_r
 Coulomb friction coefficient [N or N·m].
real falloffVel = 1e-3_r
 Velocity threshold for dry friction smoothing [m/s or rad/s].
real stictionExtra = 0_r
 [Experimental] Extra stiction force/torque [N or N·m] representing the difference between static and dynamic friction.
real stribeckVel = 0_r
 [Experimental] Stribeck velocity [m/s or rad/s] governing how sharply friction transitions from static to dynamic coefficients as velocity increases.
real viscous = 0_r
 Viscous friction coefficient [N·s/m or N·m·s/rad].

Detailed Description

Per-joint friction parameters for articulated bodies.

Viscous and dry friction force/torque contributions are added together.

  • Viscous friction force/torque is proportional to velocity with coefficient viscous.
  • The static-friction peak/breakaway force/torque is given by coulomb + stictionExtra. Static friction is regularized to allow slight slippage at speeds of up to falloffVel.
  • Above the smoothing threshold |v| > falloffVel, dynamic dry friction force/torque (excluding additional viscous friction) has magnitude coulomb + stictionExtra * exp(-pow((|v| - falloffVel) / stribeckVel, 2)) when stribeckVel > 0. If stribeckVel = 0, the Stribeck term is omitted and the magnitude is coulomb. Here |v| is the magnitude of the relative (linear or angular) velocity. This causes friction to decrease smoothly from the peak static value to coulomb at high velocities.

Definition at line 139 of file articulated_body_params.h.

Member Function Documentation

◆ operator==()

bool superdex::ArticulatedJointFrictionParams::operator== ( ArticulatedJointFrictionParams const & ) const
default

Member Data Documentation

◆ coulomb

real superdex::ArticulatedJointFrictionParams::coulomb = 0_r

Coulomb friction coefficient [N or N·m].

Note
Default is zero (no Coulomb friction).

Definition at line 152 of file articulated_body_params.h.

◆ falloffVel

real superdex::ArticulatedJointFrictionParams::falloffVel = 1e-3_r

Velocity threshold for dry friction smoothing [m/s or rad/s].

The dry friction force/torque smoothly transitions from 0 to the peak value as (linear or angular) velocity increases from 0 to falloffVel.

Note
Smaller velocity thresholds improve physical accuracy but may degrade stability.

Definition at line 162 of file articulated_body_params.h.

◆ stictionExtra

real superdex::ArticulatedJointFrictionParams::stictionExtra = 0_r

[Experimental] Extra stiction force/torque [N or N·m] representing the difference between static and dynamic friction.

Warning
This is an experimental feature. It may be changed or removed in the future. Use at your own risk.
Nonzero values may harm convergence.
Nonzero extra stiction with zero Stribeck velocity results in a nonsmooth force.
Note
Must not be negative. The coulomb represents dynamic friction in the high-velocity limit, and peak static friction is coulomb + stictionExtra.
Defaults to zero (no difference between static and dynamic friction).

Definition at line 177 of file articulated_body_params.h.

◆ stribeckVel

real superdex::ArticulatedJointFrictionParams::stribeckVel = 0_r

[Experimental] Stribeck velocity [m/s or rad/s] governing how sharply friction transitions from static to dynamic coefficients as velocity increases.

Warning
This is an experimental feature. It may be changed or removed in the future. Use at your own risk.
Nonzero values may harm convergence.
Nonzero extra stiction with zero Stribeck velocity results in a nonsmooth force.
Note
Must not be negative. A smaller value means a sharper transition.
Defaults to zero.
This has no effect if stictionExtra is zero.

Definition at line 192 of file articulated_body_params.h.

◆ viscous

real superdex::ArticulatedJointFrictionParams::viscous = 0_r

Viscous friction coefficient [N·s/m or N·m·s/rad].

Note
Default is zero (no viscous friction).

Definition at line 145 of file articulated_body_params.h.


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