One object goes into the other object at the beginning of contact.

Discussion in 'Simulation' started by yongxf, Aug 30, 2016.

  1. Hi,

    I try to lift the object using a 4 finger hand. I found an interesting phenomenon: the finger-tips will sink into the object at the beginning of the simulation. Later it will go normal.

    In my mind, it’s related with solver parameters, so I set the solimp = “0.99, 0.999, 0.0001” to make it has less impedance (but I leave solref as default here). The phenomenon still the same.

    The video is here:


    Also, when I try to decrease the mass of the finger link using “mass” in the xml file, the whole process tend to crush when the simulation starts.
    I uploaded the xml file that I used.
    May I ask the reasons and how to reduce the phenomenon and the instability? Thanks!
     

    Attached Files:

    Last edited: Aug 30, 2016
  2. Also, unexpected slide happens during the simulation, even the contact forces lies in friction cone.
    More specifically, I set friction coefficient as default (equals to 1) and set condim = 3. The actual contact forces (output through mj_contactForce) have friction angle [ 19.7936 21.0462 35.0621 10.1835] deg. However, after several seconds, the fingers begin to slide along the object.

    Friction is quite important for dexterous manipulation, and I am quite curious about what happens here.
     
  3. Emo Todorov

    Emo Todorov Administrator Staff Member

    Re slip, this is due to the soft contact model. See this new section in the documentation:

    http://www.mujoco.org/book/index.html#Soft

    Initial penetration is also due to soft contacts, but in a different way. The solref parameter specifies a virtual spring-dampler which stabilizes constraints and cancels penetration. Make solref[0] smaller. The default is 0.02, which is the sping-damper time constant. The smaller this is the stiffer the system becomes. This will also make it harder to integrate, so you may need a smaller time step. Note that internally solref[0] is clamped from below to 2*timestep, to avoid instabilities. So you can actually set it to 0, and get the stiffest system MuJoCo will allow for a given timestep. You can also experiment with the Runge-Kutta integrator for such systems.
     
    OkayHuman likes this.