People and animals can effectively manipulate objects of many shapes, sizes, weights, and materials using a variety of primitives such as grasping, pushing, sliding, tipping, rolling, and throwing. In contrast, most robots manipulate objects by pick-and-place. There is good reason for this: once a firm grasp is established, the robot can reliably control the motion of the part without needing to continuously sense the state of the part or correct for modeling uncertainties. Most manipulation primitives mentioned above are more sensitive to uncertainties in part state, geometry, mass, friction, and restitution, and to the robot's own control errors. Nonetheless, restricting robots to only grasp objects artificially limits the set of tasks that they can accomplish. Dynamic nonprehensile manipulation raises challenges in high-speed sensing and control, but the dynamics can be exploited to help the robot control object motions that would otherwise be impossible. Leveraging a larger set of manipulation primitives is crucial for robots to reach their full potential in industrial automation, exploration, home care, military, and space applications.
Click on a project to learn more.
This work focuses on planning manipulation tasks that involve an object sliding in a manipulator’s grasp. There are many situations where relative motion between the part and manipulator are useful for a grasp. Sliding can allow for error-corrective motions when performing robot assembly tasks which can decrease the chance of jamming and improve the robustness of planned motions. Sliding can also be used to quickly regrasp objects, and this can be accomplished using external contacts with the environment (e.g. pushing the object against a fixed surface), or with dynamic loads generated by quickly accelerating the manipulator.
This work focuses on motion planning and control for robotic manipulation tasks in which the manipulator, object, and the environment transition between different contact modes. The dynamic equations that govern how the system evolves over time depend on manipulator controls, contact locations, and whether contacts are fixed/rolling or sliding. This is because the coupling of the manipulator controls to the object through the contacts, and the possible contact forces applied by the environment, are different. We define manipulation primitives according to the number and types of contacts the object makes with a robot and its (rigid) environment. We are currently working on methods to identify different contact primitives, plan between them, and stabilize motion plans using feedback control.
This project examines a very simple and versatile robotic manipulator with surprising capabilities: a six-degree-of-freedom (6-dof) rigid vibrating plate whose motion can be programmed. Even though this manipulator has no grasping ability, it can be used to create programmable vector fields describing how parts will slide on the surface under the influence of friction. These vector fields can be used to manipulate a single part (e.g., to orient or position it), or to manipulate multiple parts along independent trajectories (e.g., to assemble or sort them).
Our long-term goal is to develop a unified framework for planning and control of dynamic robotic manipulation. A typical manipulation plan consists of a sequence of manipulation primitives chosen from a library of primitives, with each primitive equipped with its own feedback controller. Problems of interest include planning the motion of the manipulator to achieve the desired motion of the object and feedback control to stabilize the desired trajectory. As a first step to understand the nature of dynamic nonprehensile manipulation, we study feedback stabilization of a canonical rolling problem: balancing a disk-shaped object on top of a disk-shaped manipulator (referred to as the hand) in a vertical plane.