robotology/gym-ignition-models

Understand the role of mu and mu2 parameters

diegoferigo opened this issue · 3 comments

In the ground_plane model we are applying the following friction parameters:

<friction>
<ode>
<mu>100</mu>
<mu2>50</mu2>
</ode>
</friction>

We took them from the upstream models, but we never asked ourselves if those parameters make sense. While those parameters look ODE-specific, they are also applied to the DART physics engine (see dartsim/src/SDFFeatures.cc).

dartsim/dart#1424 added the support of the second friction pyramid direction. As far as I understand, the main use-case is for wheeled robots.

Having an anisotropic friction maybe is not what we want to provide as default. Moreover, it seems that if /collision/surface/friction/ode/fdir1 is not defined for any of the colliding bodies, the world frame is used. Therefore the entire world has this anisotropy, regardless of the direction of the contact force. It seems that this direction is set into DART, but I'm not sure if the documentation (that is for ODE) also applies to DART. Documentation is quite lacking in this case.

Long story short, we should probably consider to use only the mu parameter so that the entire world has isotropic friction.

Another PR with interesting discussion on the topic is dartsim/dart#1427.

Interesting tutorial for Gazebo Classic.

Since the smallest parameters are selected when both bodies define them, probably a good pattern is to have a ground plane with a very high friction (e.g. 100), and rely to the other models to define a small enough value that is used when they are simulated.