I am working on a simulation, which contains:
- a bolt, welded uprightly to the
world
- a nut, connected to the bolt via
ScrewJoint
. The mass of a nut set to0.02
kg, the inertia is a diagonal1.1e-9 *I
. This is configured via a.sdf
file. - an iiwa manipulator, which is beside a point for now.
The problem is that the nut is very hard to manipulate and I cannot find a parameter to adjust, which could've made it more lifelike. To be more specific:
- I measure the ability of force, applied tangentially in a horizontal plane to the nut, to cause the screwing motion of a joint, that joins the nut with a bolt
- I'd like to have greater amount of motion at lower forces, and so far I am failing to achieve that
- My interest in doing this is not idle; I am interested in more complicated simulations, which are also failing when
iiwa
is coming in a contact with this same joint; I've asked about those here and here. (Both answered partially). To sum up those here: when manipulator grips the nut, the nut fights the screwing in such a manner, that theschunk
gripper is forced to unclasp andiiwa
is thrown off-track, but the nut remains stationary. - I attach below two simpler experiments to better illustrate the issue:
1. Applying tangentially in a horizontal plane 200N
force using ExternallyAppliedSpatialForce
.
Graph notation: (here as well as below)
The left graph contains linear quantities (m
, m/s
, etc) along world's Z axis, the right graph contains angular quantities (in degrees, deg
, deg/s
, etc) around world's Z axis. The legend entries with a trailing apostrophe use the secondary Y-axis scale; other legend entries use the primary Y-axis scale.
Experiment summary:
This works as expected, 200 N
is enough to make the nut spin on a bolt, resulting in the nut traveling vertically along the bolt for just under 1 centimeter, and spinning for over 90 degrees. Note: the externally applied force does not show up on my graph.
2. Applying tangentially in a horizontal plane force using iiwa
and a simple position controller.
Experiment summary:
The force here is approximately the same as before: 70N
along tz
, but higher (170N
) in tx
and ty
, though it is applied now only for a brief moment. The nut travels just a few degrees or hundredth fractions of centimeter.
The video of this unsuccessful interaction is below, the contact forces are visualized using ContactVisualizer
.
Please advise me on how to make this screw_joint
more compliant?
I've tried varying mass
and inertia
of the nut (different up to the orders of magnitude) in these experiments, this
seems to scale the contact forces, but does not affect acceleration or velocity of the nut after contact.