Gazebo | Ignition | Community
Ask Your Question
1

Questions about gazebo element for links?

asked 2017-10-27 01:22:57 -0600

percyliu_ gravatar image

I'm trying to build a humanoid robot on my own. The URDF file for the robot was automatically generated by SolidWorks. I've read tutorials on the link text. But the elements for links, such as maxVel, minDepth, still confuse me.

<gazebo reference="left_foot_link">
    <kp>10000.0</kp>
    <kd>1000.0</kd>
    <mu1>1.5</mu1>
    <mu2>1.5</mu2>
    <fdir>1 0 0</fdir>
    <maxVel>1.0</maxVel>
    <minDepth>0.0</minDepth>
</gazebo>
  1. What do these elements really mean? I didn't see effects after I changed the values of the elements.
  2. Is there any reliable way of tuning these elements rather than random guess?

Thanks in advance.

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
2

answered 2017-10-27 08:36:43 -0600

updated 2017-10-27 10:19:04 -0600

I've read tutorials on the link text. But the elements for links, such as maxVel, minDepth, still confuse me.

Check out the sdformat reference too - Gazebo parses your URDF file and generates a SDF file when your spawn a model using a URDF: http://www.sdformat.org/spec?ver=1.6&...

What do these elements really mean? I didn't see effects after I changed the values of the elements.

When two object collide, the physics engine - I'm assuming ODE - has to 1) detect the collision and 2) do something about it. If two objects penetrate one another, the physics engine applies a corrective force (roughly similar to how the floor applies an upwards force to the bottom of your feet - in accordance with Newton's 3rd law - that keeps you from suddenly falling through the floor.

maxVel caps the resulting velocity from such a corrective impulse - e.g. if you want your object to bounce, you would set a relatively high maxVel. Alternatively, if you want to reduce "bounciness" in your model, you might set maxVel to a relatively low value, say 0.5 [m/s]

minDepth is how far the link can penetrate into another model/link before that corrective force is applied by the physics engine. This is useful if you want to ensure continuous contact between surfaces. If you set a small minDepth of say 0.002 [m], then small corrective forces will not push your foot link out of contact with the ground, allowing it to stay in contact and friction to work, etc.

Check out this answer by John Hsu:http://answers.gazebosim.org/question...

Is there any reliable way of tuning these elements rather than random guess?

I don't have an easy answer here. I usually start out with a minDepth of 0.002 [m] and a maxVel of 10-100 [m/s]. I'll increase minDepth and maxVel to reduce "bounciness" between foot & ground, I'll decrease minDepth to reduce unwanted "stickiness" between foot & ground, I'll increase maxVel if I want something to bounce.

Basically, I tweak the values based off behavior in Gazebo.

Note 1: Like the OP, I'm very open to recommendations when it comes to intelligently managing/setting these physics parameters

Note 2: For more of the theory behind how the ODE physics engine works, check out the old user manual: http://ode.org/ode-latest-userguide.html

edit flag offensive delete link more

Comments

I realize this is a quite old answer, but I, just as the OP, have also observed that when I change those values nothing changes in the simulation. I set the depth up to 0.01 and maxVel down to 0.1, but the model stays perfectly at the surface and the contacts with the ground are jittery. Do you have any suggestions to why that might be?

kumpakri gravatar imagekumpakri ( 2019-11-01 06:11:31 -0600 )edit
Login/Signup to Answer

Question Tools

2 followers

Stats

Asked: 2017-10-27 01:22:57 -0600

Seen: 1,908 times

Last updated: Oct 27 '17