I am modelling elastic links via revolute joints that act as torsion springs.
It works well for few joints (< 4 spring-joints in series) and small loads, but once I add more joints or apply larger forces, my robot sort of "explodes". Most commonly, all the links will snap to the world origin as soon as I start the physics simulation. Sometimes the simulation crashed while attempting to set [Inf Inf Inf . . .] as a pose. I suspect some numerical instability going on.
For that reason I began looking into ODE's ERP feature, as well as `` within SDF, since [this tutorial](http://gazebosim.org/tutorials/?tut=ros_urdf) mentions it as a more numerically stable method of modelling springs and dampers. Looking into ODE, I found [this entry](http://ode.org/wiki/index.php?title=Manual#Joint_error_and_the_Error_Reduction_Parameter_.28ERP.29) on how to go about that.
Setting the aforementioned tag, as well as specifying `` and `` in the joints does indeed produce more stable results. The joints however behave very differently now, seemingly having 6 DoF, allowing rotations about axes that should be constrained.
This opens up quite a few questions:
- What exactly does `` achieve?
- What significance do the values inside my `` tag have when using `` (including` ` and ``, which are also being implicitly specified va `` and ``) ?
- How can I model a 1 DOF revolute joint with spring and damper via this method?
- What do `` and `` within a joint do without ``?
- What is the purpose of the global ERP and CFM values (set in Gazebo's GUI)?
↧