I. Introduction
A common task performed by robotic manipulators involves pick-and-place operations, wherein the manipulator grasps an object, lifts it off the environment, and places it in a designated location. However, this scenario becomes ineffective when the manipulator must handle a heavy object. An object is considered heavy if its weight exceeds the joint torque limits of the manipulator (or its gripper) required to lift it off the environment. It is still possible to manipulate heavy objects with a given manipulator if we maintain at least one point of the object in contact with the environment, allowing for full or partial compensation of the object’s weight. The three primitive motions used to manipulate an object while maintaining contact with the environment are: (i) sliding or pushing on a vertex, edge, or face of the object, (ii) pivoting about an axis passing through a vertex, edge, or face of the object, and (iii) rolling on a curved edge or face of the object. By combining these primitive motions, it is possible to achieve all other types of motions.