These are the parameters controlling the iteration process of the TamsiSolver solver.
#include <drake/multibody/plant/tamsi_solver.h>
Public Attributes | |
double | stiction_tolerance {1.0e-4} |
The stiction tolerance vₛ for the slip velocity in the regularized friction function, in m/s. More... | |
int | max_iterations {100} |
The maximum number of iterations allowed for the Newton-Raphson iterative solver. More... | |
double | relative_tolerance {1.0e-2} |
The tolerance to monitor the convergence of the tangential velocities. More... | |
double | theta_max {M_PI / 3.0} |
(Advanced) TamsiSolver limits large angular changes between tangential velocities at two successive iterations vₜᵏ⁺¹ and vₜᵏ. More... | |
int max_iterations {100} |
The maximum number of iterations allowed for the Newton-Raphson iterative solver.
double relative_tolerance {1.0e-2} |
The tolerance to monitor the convergence of the tangential velocities.
This number specifies a tolerance relative to the value of the stiction_tolerance and thus it is dimensionless. Using a tolerance relative to the value of the stiction_tolerance is necessary in order to capture transitions to stiction that would require an accuracy in the value of the tangential velocities smaller than that of the "stiction region" (the circle around the origin with radius stiction_tolerance). A value close to one could cause the solver to miss transitions from/to stiction. Small values approaching zero will result in a higher number of iterations needed to attain the desired level of convergence. Typical values lie within the 10⁻³ - 10⁻² range.
double stiction_tolerance {1.0e-4} |
The stiction tolerance vₛ for the slip velocity in the regularized friction function, in m/s.
Roughly, for an externally applied tangential forcing fₜ and normal force fₙ, under "stiction", the slip velocity will be approximately vₜ ≈ vₛ fₜ/(μfₙ). In other words, the maximum slip error of the regularized friction approximation occurs at the edge of the friction cone when fₜ = μfₙ and vₜ = vₛ. The default of 0.1 mm/s is a very tight value that for most problems of interest in robotics will result in simulation results with negligible slip velocities introduced by regularizing friction when in stiction.
double theta_max {M_PI / 3.0} |
(Advanced) TamsiSolver limits large angular changes between tangential velocities at two successive iterations vₜᵏ⁺¹ and vₜᵏ.
This change is measured by the angle θ = acos(vₜᵏ⁺¹⋅vₜᵏ/(‖vₜᵏ⁺¹‖‖vₜᵏ‖)). To aid convergence, TamsiSolver, limits this angular change to theta_max
. Please refer to the documentation for TamsiSolver for further details.
Small values of theta_max
will result in a larger number of iterations of the solver for situations in which large angular changes occur (sudden transients or impacts). Values of theta_max
close to π/2 allow for a faster convergence for problems with sudden transitions to/from stiction. Large values of theta_max
however might lead to non-convergence of the solver. We choose a conservative number by default that we found to work well in most practical problems of interest.