Home | Tutorials | Wiki | Issues
Ask Your Question
2

Finger contact: ERP, CFM, Kp and Kd

asked 2015-09-09 13:07:40 -0500

debz gravatar image

updated 2015-09-09 16:13:17 -0500

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 flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
2

answered 2015-09-12 17:46:05 -0500

debz gravatar image

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.

edit flag offensive delete link more

Comments

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.

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

@MaoZW did you manage to do what you wanted?

JuanTelo gravatar imageJuanTelo ( 2018-02-19 09:44:11 -0500 )edit
Login/Signup to Answer

Question Tools

1 follower

Stats

Asked: 2015-09-09 13:07:40 -0500

Seen: 2,373 times

Last updated: Sep 12 '15