Hi,
I am now trying to calculate the direction of the force, following the Problems about contact sensor, F = I / dt. However , I(impluse) is zero but the force is not zero. How to calculate the force in each direction in this situation?
{'time': 906.1000472567976, 'physics_step': 54366.0, 'contacts': [{'body0': '/World/ur5/gripper_center', 'body1': '/World/hole/base_link', 'position': array([0.5025577 , 0.30535716, 0.69600004], dtype=float32), 'normal': array([-0.4254357 , 0.90363675, 0.04944726], dtype=float32), 'impulse': array([-0., 0., 0.], dtype=float32)}, {'body0': '/World/ur5/gripper_center', 'body1': '/World/hole/base_link', 'position': array([0.5025577 , 0.30535716, 0.69600004], dtype=float32), 'normal': array([-0.4254357 , 0.90363675, 0.04944726], dtype=float32), 'impulse': array([-0., 0., 0.], dtype=float32)}, {'body0': '/World/ur5/gripper_center', 'body1': '/World/hole/base_link', 'position': array([0.5025577 , 0.30535716, 0.69600004], dtype=float32), 'normal': array([-0.4254357 , 0.90363675, 0.04944726], dtype=float32), 'impulse': array([-0., 0., 0.], dtype=float32)}, {'body0': '/World/ur5/gripper_center', 'body1': '/World/hole/base_link', 'position': array([0.5025577 , 0.30535716, 0.69600004], dtype=float32), 'normal': array([-0.4254357 , 0.90363675, 0.04944726], dtype=float32), 'impulse': array([-0., 0., 0.], dtype=float32)}, {'body0': '/World/ur5/gripper_center', 'body1': '/World/hole/base_link', 'position': array([0.5025577 , 0.30535716, 0.69600004], dtype=float32), 'normal': array([-0.4254357 , 0.90363675, 0.04944726], dtype=float32), 'impulse': array([-0., 0., 0.], dtype=float32)}, {'body0': '/World/ur5/gripper_center', 'body1': '/World/hole/base_link', 'position': array([0.5025577 , 0.30535716, 0.69600004], dtype=float32), 'normal': array([-0.4254357 , 0.90363675, 0.04944726], dtype=float32), 'impulse': array([-0., 0., 0.], dtype=float32)}, {'body0': '/World/ur5/gripper_center', 'body1': '/World/hole/base_link', 'position': array([0.5025577 , 0.30535716, 0.69600004], dtype=float32), 'normal': array([-0.4254357 , 0.90363675, 0.04944726], dtype=float32), 'impulse': array([-0., 0., 0.], dtype=float32)}, {'body0': '/World/ur5/gripper_center', 'body1': '/World/hole/base_link', 'position': array([0.5025577 , 0.30535716, 0.69600004], dtype=float32), 'normal': array([-0.4254357 , 0.90363675, 0.04944726], dtype=float32), 'impulse': array([-0., 0., 0.], dtype=float32)}, {'body0': '/World/ur5/gripper_center', 'body1': '/World/hole/base_link', 'position': array([0.5025577 , 0.30535716, 0.69600004], dtype=float32), 'normal': array([-0.4254357 , 0.90363675, 0.04944726], dtype=float32), 'impulse': array([-0., 0., 0.], dtype=float32)}, {'body0': '/World/ur5/gripper_center', 'body1': '/World/hole/base_link', 'position': array([0.5025577 , 0.30535716, 0.69600004], dtype=float32), 'normal': array([-0.4254357 , 0.90363675, 0.04944726], dtype=float32), 'impulse': array([-0., 0., 0.], dtype=float32)}, {'body0': '/World/ur5/gripper_center', 'body1': '/World/hole/base_link', 'position': array([0.5025577 , 0.30535716, 0.69600004], dtype=float32), 'normal': array([-0.4254357 , 0.90363675, 0.04944726], dtype=float32), 'impulse': array([-0., 0., 0.], dtype=float32)}, {'body0': '/World/ur5/gripper_center', 'body1': '/World/hole/base_link', 'position': array([0.5025577 , 0.30535716, 0.69600004], dtype=float32), 'normal': array([-0.4254357 , 0.90363675, 0.04944726], dtype=float32), 'impulse': array([-0., 0., 0.], dtype=float32)}, {'body0': '/World/ur5/gripper_center', 'body1': '/World/hole/base_link', 'position': array([0.5025577 , 0.30535716, 0.69600004], dtype=float32), 'normal': array([-0.4254357 , 0.90363675, 0.04944726], dtype=float32), 'impulse': array([-0., 0., 0.], dtype=float32)}, {'body0': '/World/ur5/gripper_center', 'body1': '/World/hole/base_link', 'position': array([0.5025577 , 0.30535716, 0.69600004], dtype=float32), 'normal': array([-0.4254357 , 0.90363675, 0.04944726], dtype=float32), 'impulse': array([-0., 0., 0.], dtype=float32)}, {'body0': '/World/ur5/gripper_center', 'body1': '/World/hole/base_link', 'position': array([0.5025577 , 0.30535716, 0.69600004], dtype=float32), 'normal': array([-0.4254357 , 0.90363675, 0.04944726], dtype=float32), 'impulse': array([-0., 0., 0.], dtype=float32)}, {'body0': '/World/ur5/gripper_center', 'body1': '/World/hole/base_link', 'position': array([0.5025577 , 0.30535716, 0.69600004], dtype=float32), 'normal': array([-0.4254357 , 0.90363675, 0.04944726], dtype=float32), 'impulse': array([-0., 0., 0.], dtype=float32)}, {'body0': '/World/ur5/gripper_center', 'body1': '/World/hole/base_link', 'position': array([0.5025577 , 0.30535716, 0.69600004], dtype=float32), 'normal': array([-0.4254357 , 0.90363675, 0.04944726], dtype=float32), 'impulse': array([-0., 0., 0.], dtype=float32)}, {'body0': '/World/ur5/gripper_center', 'body1': '/World/hole/base_link', 'position': array([0.5025577 , 0.30535716, 0.69600004], dtype=float32), 'normal': array([-0.4254357 , 0.90363675, 0.04944726], dtype=float32), 'impulse': array([-0., 0., 0.], dtype=float32)}, {'body0': '/World/ur5/gripper_center', 'body1': '/World/hole/base_link', 'position': array([0.5025577 , 0.30535716, 0.69600004], dtype=float32), 'normal': array([-0.4254357 , 0.90363675, 0.04944726], dtype=float32), 'impulse': array([-0., 0., 0.], dtype=float32)}, {'body0': '/World/ur5/gripper_center', 'body1': '/World/hole/base_link', 'position': array([0.5025577 , 0.30535716, 0.69600004], dtype=float32), 'normal': array([-0.4254357 , 0.90363675, 0.04944726], dtype=float32), 'impulse': array([-0., 0., 0.], dtype=float32)}, {'body0': '/World/ur5/gripper_center', 'body1': '/World/hole/base_link', 'position': array([0.5025577 , 0.30535716, 0.69600004], dtype=float32), 'normal': array([-0.4254357 , 0.90363675, 0.04944726], dtype=float32), 'impulse': array([-0., 0., 0.], dtype=float32)}, {'body0': '/World/ur5/gripper_center', 'body1': '/World/hole/base_link', 'position': array([0.5025577 , 0.30535716, 0.69600004], dtype=float32), 'normal': array([-0.4254357 , 0.90363675, 0.04944726], dtype=float32), 'impulse': array([-0., 0., 0.], dtype=float32)}, {'body0': '/World/ur5/gripper_center', 'body1': '/World/hole/base_link', 'position': array([0.5025577 , 0.30535716, 0.69600004], dtype=float32), 'normal': array([-0.4254357 , 0.90363675, 0.04944726], dtype=float32), 'impulse': array([-0., 0., 0.], dtype=float32)}, {'body0': '/World/ur5/gripper_center', 'body1': '/World/hole/base_link', 'position': array([0.5025577 , 0.30535716, 0.69600004], dtype=float32), 'normal': array([-0.4254357 , 0.90363675, 0.04944726], dtype=float32), 'impulse': array([-0., 0., 0.], dtype=float32)}, {'body0': '/World/ur5/gripper_center', 'body1': '/World/hole/base_link', 'position': array([0.5025577 , 0.30535716, 0.69600004], dtype=float32), 'normal': array([-0.4254357 , 0.90363675, 0.04944726], dtype=float32), 'impulse': array([-0., 0., 0.], dtype=float32)}, {'body0': '/World/ur5/gripper_center', 'body1': '/World/hole/base_link', 'position': array([0.5025577 , 0.30535716, 0.69600004], dtype=float32), 'normal': array([-0.4254357 , 0.90363675, 0.04944726], dtype=float32), 'impulse': array([-0., 0., 0.], dtype=float32)}, {'body0': '/World/ur5/gripper_center', 'body1': '/World/hole/base_link', 'position': array([0.5025577 , 0.30535716, 0.69600004], dtype=float32), 'normal': array([-0.4254357 , 0.90363675, 0.04944726], dtype=float32), 'impulse': array([-0., 0., 0.], dtype=float32)}, {'body0': '/World/ur5/gripper_center', 'body1': '/World/hole/base_link', 'position': array([0.5025577 , 0.30535716, 0.69600004], dtype=float32), 'normal': array([-0.4254357 , 0.90363675, 0.04944726], dtype=float32), 'impulse': array([-0., 0., 0.], dtype=float32)}, {'body0': '/World/ur5/gripper_center', 'body1': '/World/hole/base_link', 'position': array([0.5025577 , 0.30535716, 0.69600004], dtype=float32), 'normal': array([-0.4254357 , 0.90363675, 0.04944726], dtype=float32), 'impulse': array([-0., 0., 0.], dtype=float32)}, {'body0': '/World/ur5/gripper_center', 'body1': '/World/hole/base_link', 'position': array([0.5025577 , 0.30535716, 0.69600004], dtype=float32), 'normal': array([-0.4254357 , 0.90363675, 0.04944726], dtype=float32), 'impulse': array([-0., 0., 0.], dtype=float32)}], 'in_contact': True, 'force': 1.3637969493865967, 'number_of_contacts': 30}