Stable Pushing Implementation

Kevin Lynch and Costa Nikou

We have developed a planner that finds stable pushing plans to move an object from one place to another. A graphical user interface (GUI) makes it easy to specify problems for the push planner and to display the results of the planner. The output of the planner can be dumped to the Adept 550 robot in our lab to execute the plan in the real world.

The code for the planner (in C) and the GUI (in Tcl/Tk) is available online. You can experiment with a WWW implementation of the planner here.


This is a shot of our Adept executing a pushing plan found by the planner.


This is a screen shot of the GUI and a problem specification. The object to be manipulated is the pentagon. The top, red pentagon is the start position, and the bottom, green pentagon is the goal position. In this example, the object can only be pushed on the two horizontal edges. We performed a mechanics analysis to determine sets of pushing directions that are guaranteed to keep the object fixed to the pusher. By using only these pushing directions, the plan can be executed without sensing.

The push planner is a modification of a planner for car-like robots due to Barraquand and Latombe. After 30 seconds running time on a Sparc 20, the planner finds the following path.


The planner is not exact, as it only finds a path to a goal region. In this example, the plan minimizes the number of contact changes necessary.

Go to my home page or the Manipulation Lab home page.


lynch@ri.cmu.edu