-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Tune contact CFM #14
Comments
I found that @scpeters in the past worked on CFM dartsim#1371, maybe he can add interesting details. It's not clear to me what could be the right entry point to tune this parameter. |
While this probably may require to add some code in DART, the clean way to set this parameter seems to add a new attribute to the |
I agree, the best place to add this to the API is in the
In ODE, the slip parameter is implemented as CFM relaxing the friction constraint. Physically, it is like the inverse of a damping coefficient, and in gazebo, we choose to combine these coefficients by adding them, which is comparable to dampers acting in series: |
Is your feature request related to a problem? Please describe.
I'm performing humanoid robot simulations with Ignition Gazebo and the DART ign-physics plugin. I have always struggled with jumpy contacts at the feet, creating many troubles when the contact wrench extracted from the physics engine is used for the state machine used by the controller to select the number of active contacts. Using a low-pass filter does not help since the stiff default contacts simulated with DART affect dramatically the operation of the whole-body controller.
Gazebo Classic with ODE has a lot of exposed parameters that can be configured from SDF with
//collision/surface/contact/ode
. However, DART does not have anything similar. Tuning those parameters are paramount for stabilizing contacts as I described in gazebosim/gz-physics#82.Describe the solution you'd like
I tried to fiddle with DART internals, and I managed to stabilize the contacts without losing simulation accuracy adding here the following:
The resulting behaviour is much much better.
Additional context
What I did is hardcoding a softening of the constraint for all simulated contacts. This is just a temporary workaround. I didn't find any way to set this parameter in a cleaner way. Though, this is the only way I found to stabilize contacts, and being able to tune this parameter could save countless hours of headache to all those people trying to simulate something more complex than wheeled robots.
The text was updated successfully, but these errors were encountered: