How to implement joint friction

Discussion in 'Priority support' started by Fumiya Shimada, Aug 23, 2019.

  1. Is there any recommended way to realize static joint friction these kind of friction?
    In my interpretation of document. Static friction are realized as constraint and frictionloss parameter limits the constraint force. And MuJoCo's soft contact feature always weight average the acceleration when the constraints exist and the one without constraints. Therefore regardless of how weak applied forces are and how large the frictionloss parameter is, if forces are non-zero, the object slightly accelerates unlike real friction with which object don't move if forces are sufficiently weak. Is my understanding correct?

    And possible solutions I found to realize static friction are following two ways.
    1. Use Noslip solver via setting noslip_iterations>0.
    However, I don't know what Noslip solver really do.
    2. Use higher solreffriction.
    It seems working but I don't know it's a realistic Coulomb friction model and how to optimize the parameter. So I also wanted to know the way to adjust these parameters.

    So my questions are following four,
    1) Recommended way to implement joint friction
    2) My understanding of frictionloss parameter is correct
    3) How the Noslip option works
    4) How to adjust solreffriction parameters to realize Coulomb friction

  2. Emo Todorov

    Emo Todorov Administrator Staff Member

    Sorry about the long delay. As you said, the soft constraint model in MuJoCo allows some slip even though the boundary of the friction cone or static friction limit has not been reached. This is due to internal regularization. The no-slip solver avoids this as follows. First it runs one of the regular solvers to compute the solution with slip. Then it fixes the contact normal forces found by the regular solver, and solves for the friction forces again, but this time without regularization. So now the friction force can go all the way to the dry friction limit specified in the model. You can also increase solreffriction of course. You can monitor the friction forces computed during the simulation and decide if these values are realistic for your model.

    You also mentioned Coulomb friction. Coulomb friction is for contacts, not dry joint friction. To adjust the friction cone for contacts, you can set the friction parameter in the geoms or geoms pairs, as described here: