Combining high-level task decisions with low-level motion constraints to solve robot manipulation problems.