primitives

These modules are transported from kuka_primitives, pr2_primitives and pr2_utils from ss-pybullet.

Grasp

In pybullet_planning, a grasp is modeled as an operator on the object frame, i.e. world_from_object = world_from_gripper * grasp, where grasp = gripper_from_object.

We provide some simple grasp generator based on bounding geometry (box, cylinder). Inside these generators’ implementation, however, the modeling start from the object frame to the gripper’s frame to obtain object_from_gripper and then we return its inverse gripper_from_object. (Yijiang thinks this is more straightforward to think about.)

get_side_cylinder_grasps

generate side grasp using the body’s bounding cylinder.

Convenient classes

EndEffector

a convenient class for creating and manipulating an end effector