Quantcast
Viewing all articles
Browse latest Browse all 7017

How do I use ODE's ERP feature correctly to model an elastic joint?

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)?

Viewing all articles
Browse latest Browse all 7017