pyrobosim.manipulation.grasping.GraspGenerator.should_try_grasp

GraspGenerator.should_try_grasp(faces_enabled, face_normals, face_vec)

Helper function to validate whether to compute grasps on a specific face.

Given the set of enabled grasp types, and the normal vectors of the cuboid faces, this function determines whether grasping along a specific normal vector is permitted. For example, if

  • Only top and front grasps are enabled

  • The top face normal vector is [0, 0, 1]

  • The front face normal vector is [-1, 0, 0]

Then this function will

  • Allow grasps along the vectors [0, 0, 1] and [-1, 0, 0] because these are the top and front faces

  • Disallow a grasp along the vectors [0, 1, 0] and [0, -1, 0] because side grasps are disabled

  • Disallow a grasp along the vector [1, 0, 0] because this would be a back grasp which is not supported

Parameters:
  • faces_enabled (list[bool]) – Faces for which grasp generation is enabled, in the form (front, top, side)

  • face_normals (list[numpy.ndarray]) – Face normals in the canonical directions, in the form (front, top, left, right)

  • face_vec ((bool, pyrobosim.manipulation.grasping.GraspFace)) – Normal vector of the cuboid face to check.

Returns:

A tuple determining whether the grasp should be attempted, and what face that corresponds to