One of the main applications of robot manipulators is picking an object and placing it. Grasping is the process of picking the object by the robot end-effector. It is actually a complex process because lot of constraints are required in picking an object.
We humans handle our grasping using our intelligence, but in the robot we have to create rules for it. One of the constraints in grasping is force; the gripper/end-effector should adjust the grasping force for picking the object but not make any deformation on the object while grasping.
One of the ROS packages for generating the grasp poses for simple objects such as blocks and cylinders, which can work along with the MoveIt! pick and place pipeline, is moveit_simple_grasps ...