Gazebo Worlds
<physics type="ode">
<ode>
<solver>
<type>world</type>
</solver>
<constraints>
<contact_max_correcting_vel>0.1</contact_max_correcting_vel>
<contact_surface_layer>0.0001</contact_surface_layer>
</constraints>
</ode>
<max_step_size>0.001</max_step_size>
</physics>
Two solvers: world step gives an accurate solution if it is able to solve the problem, while quick step depends on the number of iterations to reach an accurate enough solution.
contact/collision parameters
- dampingFactor double Exponential velocity decay of the link velocity - takes the value and multiplies the - previous link velocity by (1-dampingFactor).
- maxVel double maximum contact correction velocity truncation term.
- minDepth double minimum allowable depth before contact correction impulse is applied
- maxContacts int Maximum number of contacts allowed between two entities. This value overrides the max_contacts element defined in physics.
- contact_max_correcting_vel : contact_max_correcting_vel This is the same parameter as the max_vel under collision->surface->contact. contact_max_correcting_vel sets max_vel globally. contact_surface_layer : contact_surface_layer This is the same parameter as the min_depth under collision->surface->contact.
Note: We had issue getting global settings (contact_max_correcting_vel and contact_surface_layer) working. We therefore define object level minDepth and maxVel for each object
"quick" solver parameters min_step_size The minimum time duration which advances with each time step of a variable time step solver. iters The number of iterations for the solver to run for each time step.
objects:
As of now there are many objects in the world file nad if you want to move them all it's quite cumbersome. Therefore the move_objects.py was added to be able to increment the poses by x amount if needed. See move_objects.py