コード例 #1
0
ファイル: planners.py プロジェクト: beomjoonkim/openrave_repo
def get_generator(initial, goal, oracle, planner):
  if planner == MANIPULATION_PLANNERS.FFROB:
    return ffrob_generator(initial, goal, oracle)
  if planner == MANIPULATION_PLANNERS.TRAJECTORY_HBF:
    return default_scheduler_generator(goal, lambda rg: TrajectoryScheduler(rg, oracle))
  if planner == MANIPULATION_PLANNERS.ROADMAP_HBF:
    return default_scheduler_generator(goal, lambda rg: RoadmapScheduler(rg, oracle))
  if planner == MANIPULATION_PLANNERS.HBF:
    return default_scheduler_generator(goal, lambda rg: GeneratingScheduler(rg, [SP(oracle) for SP in USE_SUBPLANNERS]))
  if planner == MANIPULATION_PLANNERS.RMMP:
    return pick_and_place_generator(initial, goal, oracle)
  raise RuntimeError(planner + ' is not a valid manipulation planner')
コード例 #2
0
def run_experiment(oracle, configuration):
  if hasattr(oracle, 'crg'): delattr(oracle, 'crg') # TODO - reuse the crg for some experiments

  # search is set by configuration? NOt sure what a configuration is
  search, successor = configuration
  initial, goal = get_representation(oracle, MANIPULATION_PLANNERS.FFROB)

  # This one gets the plan from the initial state to the goal
  plan, state_space = search(initial, goal, ffrob_generator(initial, goal, oracle, successor()))
	

  if plan is not None:
    plan = Plan(plan.cost, plan.length, sum(get_sample_time(operator) for operator in plan.operators))
  return Outcome(plan, state_space.time_elapsed(), state_space.iterations, len(state_space),
      state_space.num_expanded(), state_space.num_generations(), oracle.ffrob_sample_time, oracle.ffrob_sample_attempts)