Isometric friction for planar pushing
Posted: Sat Jan 18, 2020 6:18 pm
Update: see next post for minimum reproducable for a simplified experiment!
I'm trying to do quasi-static planar pushing by position controlling the pusher (brown) with p.createConstraint.
The issue I'm having is that the dynamics seem to be different with different yaw of the pusher-block system (keeping their relative positions the same). I'm investigating this by telling the pusher to push perpendicular to the adjacent face for a fixed position for different yaws of the whole system.
Control of the pusher is done by then waiting for velocities to die down for quasi-staticness. I've also tried manually interpolating to the goal position by controlling to intermediate waypoints in case the previous method causes the block to leave contact (it doesn't).
The configuration of the system:
The test I'm doing is to push 0.02 into the block, for 11 different system yaws from 0 to 3.1 (radians). I then look at the change in body frame (block x, block y, block yaw, pusher position along block). I summarize the trials with the standard deviation along each dimension relative to the absolute value of that dimension's mean. For example I get
For trials that result in block frame differences of:
These should be the same if friction is isometric right? I've tried making the block bigger, but it doesn't really help.
I'm trying to do quasi-static planar pushing by position controlling the pusher (brown) with p.createConstraint.
The issue I'm having is that the dynamics seem to be different with different yaw of the pusher-block system (keeping their relative positions the same). I'm investigating this by telling the pusher to push perpendicular to the adjacent face for a fixed position for different yaws of the whole system.
Control of the pusher is done by
Code: Select all
p.changeConstraint(self.pusherConstraint, newPos, maxForce=200)The configuration of the system:
Code: Select all
block
dimensions: 0.15 x 0.15 x 0.05
mass: 6
lateral_friction 1.0
spinning_friction: 0.1
pusher
dimensions: 0.15 x 0.02
mass: 10
lateral_friction: 1.0
spinning_friction: 0.1
Code: Select all
tensor([0.0285, 0.2691, 0.2714, 0.2669])
Code: Select all
tensor([[ 0.0184, -0.0022, -0.0309, -0.0007],
[ 0.0181, -0.0028, -0.0378, -0.0008],
[ 0.0172, -0.0039, -0.0531, -0.0011],
[ 0.0183, -0.0023, -0.0307, -0.0006],
[ 0.0187, -0.0019, -0.0260, -0.0005],
[ 0.0184, -0.0023, -0.0304, -0.0006],
[ 0.0176, -0.0033, -0.0455, -0.0010],
[ 0.0176, -0.0034, -0.0462, -0.0010],
[ 0.0187, -0.0018, -0.0247, -0.0005],
[ 0.0184, -0.0022, -0.0301, -0.0006]])