in experiments/grasp_stability/grasp_data_collection.py [0:0]
def get_forces(bodyA=None, bodyB=None, linkIndexA=None, linkIndexB=None):
"""
get contact forces
:return: normal force, lateral force
"""
kwargs = {
"bodyA": bodyA,
"bodyB": bodyB,
"linkIndexA": linkIndexA,
"linkIndexB": linkIndexB,
}
kwargs = {k: v for k, v in kwargs.items() if v is not None}
pts = pb.getContactPoints(**kwargs)
totalNormalForce = 0
totalLateralFrictionForce = [0, 0, 0]
for pt in pts:
totalNormalForce += pt[9]
totalLateralFrictionForce[0] += pt[11][0] * pt[10] + pt[13][0] * pt[12]
totalLateralFrictionForce[1] += pt[11][1] * pt[10] + pt[13][1] * pt[12]
totalLateralFrictionForce[2] += pt[11][2] * pt[10] + pt[13][2] * pt[12]
return totalNormalForce, totalLateralFrictionForce