An efficient robot planner which generates its own procedures