Closed diegoferigo closed 4 years ago
Another PR with interesting discussion on the topic is https://github.com/dartsim/dart/pull/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.
Interesting article https://www.allisonthackston.com/articles/ignition_vs_gazebo.html
In the
ground_plane
model we are applying the following friction parameters:https://github.com/robotology/gym-ignition-models/blob/107871dd94214f9ab0046f54470792dfa0f1e060/gym_ignition_models/ground_plane/ground_plane.sdf#L12-L17
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).
https://github.com/dartsim/dart/pull/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.