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