Exemplo n.º 1
0
def num_reachable_placements(state, goal, oracle):
  reachable_vertices = ReachabilityTree(oracle, oracle.crg[state[ROBOT_VAR]],
      object_poses=state_object_poses(oracle, state), holding=state[HOLDING_VAR]).expand_reachable()
  return -sum(1 for v in reachable_vertices if v in oracle.vertex_operators and len(oracle.vertex_operators[v]) != 0)
Exemplo n.º 2
0
def num_reachable(state, goal, oracle):
  return -len(ReachabilityTree(oracle, oracle.crg[state[ROBOT_VAR]],
      object_poses=state_object_poses(oracle, state), holding=state[HOLDING_VAR]).expand_reachable())
Exemplo n.º 3
0
def num_reachable_goals(state, goal, oracle):
  important_objects = set(oracle.problem.goal_regions.keys() + oracle.problem.goal_poses.keys())
  reachable_vertices = ReachabilityTree(oracle, oracle.crg[state[ROBOT_VAR]],
      object_poses=state_object_poses(oracle, state), holding=state[HOLDING_VAR]).expand_reachable()
  return -sum(1 for v in reachable_vertices if v in oracle.vertex_operators and
             some(lambda o: o.holding.object_name in important_objects, oracle.vertex_operators[v]))