# Finger contact: ERP, CFM, Kp and Kd

Hi everyone,

I have a world where a 2-fingers-arm tries to pick up a box. I'm wondering how I can simulate the best the fact that the skin of our fingers is deformable and make it way easier to grab things. The deformation of the skin actually make the contact surface bigger and stabilize the objects we hold.

Until now, the fingers of the simulated arm have the following surface parameters (I set a high damping and a small spring parameters and get an interpenetration between the fingers and the objects they grab).


<surface>
<friction>
<ode>
<mu>0.5</mu>
<mu2>0.5</mu2>
</ode>
</friction>
<bounce>
<restitution_coefficient>0.01</restitution_coefficient>
<threshold>0.01</threshold>
</bounce>
<contact>
<ode>
<max_vel>0.1</max_vel>
<soft_cfm>0.8</soft_cfm>
<soft_erp>0.8</soft_erp>
<kd>2500</kd>
<kp>10</kp>
<min_depth>0.001</min_depth>
</ode>
</contact>
</surface>


But it doesn't change the fact that the joint contact is operating in one point. As a result, the grabbed object is held between two contact points (one for each finger) and has one degree of freedom (the rotation in the axis of the two points). I would like to get multiple contacts for each finger in order to prevent any rotation of the object the arm grab. Does anyone have an idea how to simulate that ?

I hope I was clear.

Cheers

edit retag close merge delete

Sort by ยป oldest newest most voted

After some more researches I would answer my own question like this. There could be two possibilities:

• First one, if you don't expect a high quality of smooth contacts simulation you can just use the parameters of my previous post, and model the finger's skin with something like 2, 3 or 4 spheres on its surface. This way, when the fingers grap something, the damping of the surfaces Kd makes sure that every sphere get in contact with the object. You then get a poor simulation of the surface of the finger adapting to the geometry of the object.

• Second one, if you need a good simulation of smooth contacts, you can use Dart as physic engine instead of ODE. Then you have access to the SDF "smooth_contact->dart" properties. These properties are based on the soft contacts modelisation of this paper. Basically it's a more or less efficient way of simulating a smooth tissue. When such a deformable body touches another object, it adapt its shape and create several contact points with it, taking in consideration the velocity of the body and the shape.

If anyone already had to face this kind of matter, I would enjoy to hear what your approach was.

more

Hey, thanks for your post. I'm trying to simulate a soft contact like you did. Can you give me a guide on how to simulate the soft contact using dart engine? I have the gazebo with dart engine but no matter what parameter I set in "soft_contact" property, it doesn't change anything in gazebo. There's no deformation happens.

( 2017-04-17 16:30:13 -0500 )edit

@MaoZW did you manage to do what you wanted?

( 2018-02-19 09:44:11 -0500 )edit