gazebosim / gazebo-classic

Gazebo classic. For the latest version, see https://github.com/gazebosim/gz-sim
http://classic.gazebosim.org/
Other
1.19k stars 480 forks source link

Rolling friction constraint for ODE #3084

Open scpeters opened 3 years ago

scpeters commented 3 years ago

Upstream ODE supports the friction pyramid model with friction force constraints in two tangential directions, as described in gazebo's physics parameters tutorial. In bitbucket pull request 1831, our fork of ODE was modified to support a torsional friction constraint, which constrains the rotational velocity component parallel to the contact normal (see [tutorial]() for more details). After reading a paper entitled "A complementarity-based rolling friction model for rigid contacts" (doi:10.1007/s11012-013-9694-y), I now realize that we can apply the same approach used for torsional friction to implement rolling friction, but applied to rotations about the fdir1 and fdir2 axes instead of the normal axis.

This will be most useful in modeling rolling resistance of deformable objects on a rigid surface, such as a pneumatic tire on a road.

scpeters commented 3 years ago

Here is an illustration of normal contact forces for rigid and deformable wheels on a rigid surface

wheel_rolling_resistance

At rest, a deformable wheel may have a symmetric distribution of normal contact pressure, such that the equivalent normal force points directly at the wheel center. While rolling, the wheel deformation may "bunch up" in the direction of travel and bias the pressure distribution, such that the equivalent normal forces is in front of the wheel center. This generates the rolling resistance moment that can be modeled as a friction constraint.

scpeters commented 2 years ago

I believe rolling and torsional/spinning friction have been implemented in upstream ODE since 2013:

One of the drawbacks of forking...