Why is inertia influencing collision?
Hi,
I am using Gazebo 1.2.5 with ROS Groovy.
I have a spatula whose head has a 0.002 thickness, the problem is that it goes through objects like a hot knife through butter. The erp, cfm, kp, kd constants don't help me in this case (for other objects they work fine).
I give them the approx values:
HARD bodies: cfm=0; erp=0.02; kp = kd = 100000000;
SOFT bodies: cfm = erp = 100; kp = kd = 1;
Like I said these values don't seem to influence the spatula heads collision;
If I comment out the <inertia>
tag it works perfectly, but then I don't have inertia, which I need.
Any ideas why is this happening, and how could I solve this without commenting out the inertia?
Thanks, Andrei
EDIT:
Here is the sdf file. The model is composed of one link with more collisions/visuals.
The collision I am interested in is called spatula_head_collision
.
Here is the inertia commented (not going through objects):
<inertial>
<pose>0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000</pose>
<!--inertia>
<ixx>0.000019</ixx>
<ixy>0.000000</ixy>
<ixz>0.000000</ixz>
<iyy>0.000041</iyy>
<iyz>0.000000</iyz>
<izz>0.000054</izz>
</inertia-->
<mass>0.105000</mass>
</inertial>
Un-commented (going through objects):
<inertial>
<pose>0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000</pose>
<inertia>
<ixx>0.000019</ixx>
<ixy>0.000000</ixy>
<ixz>0.000000</ixz>
<iyy>0.000041</iyy>
<iyz>0.000000</iyz>
<izz>0.000054</izz>
</inertia>
<mass>0.105000</mass>
</inertial>
I don't think the problem is the <inertia>
tag because changing the values changes the behavior of the model in simulation.
@hsu could you give me an example for erp, cfm, kp, kd constants values, so the body is the hardest / softest. Thanks.
Can you show us the <inertia> tag that's giving you problems? If there is malformed xml in your inertia element, then the parser may stop parsing that link and move on to the next one, so that the collision element doesn't get parsed.
This is not expected simulation behavior, I'd have to guess the way the model is constructed exposes some hidden bug, or the model is constructed incorrectly. To determine the problem it helps to take a look at the model. Btw, erp of 100 should cause unstable physics if it's actually active.