My thesis work is on planning with multiple types of manipulation. With current planning algorithms, robots can work in domains where only pick and place are required. Given a flat table with reasonably spaced objects, a mobile manipulator can be trusted to pick an object up and put it down in another location. However, this situation is very rare; if we want robots that can function in the real world they must be able to deal with clutter and with objects that cannot be grasped. For example, to clear a table, a robot might need to push or tilt a plate that its gripper cannot slide underneath. To clean a room, a robot might need to use a tool to move an object out from under a couch. For tidying a desk, a robot has to deal with flat books and small pieces of paper that cannot be grasped. A possible solution to one such scenario is shown in the video below.
The general manipulation problem I consider in my thesis is: Given a robot, a set of movable objects, and a set of actions for manipulating the objects, find a sequence of manipulation actions that move the robot and objects from an initial configuration to a final configuration. The manipulation actions may be non-prehensile, meaning that the object is not rigidly attached to the robot, such as push, tilt, or pull. The search space is high-dimensional, as the search is over the joint space of the robot and objects, and it is also non-holonomic as objects can only move when the robot is manipulating them. Moreover, configurations in which the robot can manipulate the object are a low-dimensional subspace of the full space so traditional motion planning algorithms fail on these problems.
Currently, I have developed versions of the rapidly exploring random tree (DARRT) and the RRTConnect algorithm (DARRTConnect) that work for manipulation and shown that, as we would expect, DARRTConnect is much more efficient than DARRT. I have shown that the random search version of DARRT is probabilistically complete and am in the process of showing that DARRT itself is.
The problem has natural sub-goals corresponding to the manipulation actions available to the robot in different parts of the domain, which can be formalized by viewing the problem as a multi-modal problem. I have developed a hierarchical algorithm that automatically finds these subgoals and then solves each separately. An example hierarchical plan executed on the PR2 robot is shown below.
I have implemented all of these algorithms on the PR2 robot and showed that they can solve interesting problems in a difficult manipulation domain. More videos and links to relevant papers are here.
In future work, I plan to consider the hierarchical structure more carefully to further improve the efficiency of the algorithm and possibly also consider methods for taking uncertainty in the domain into account.