def _gen_world(self): room = self.add_rect_room(min_x=0, max_x=self.size, min_z=0, max_z=self.size) self.boxes = [] for _ in range(self.distractors): color = np.random.choice(COLOR_NAMES) self.boxes.append(self.place_entity(Box(color=color))) self.target_box = self.place_entity(Box(color=self.target_color)) self.place_agent()
def _construct(self): room = self.add_rect_room(min_x=0, max_x=self.size, min_z=0, max_z=self.size) if self.have_goal: self.box = self.place_entity(Box(color='red'))
def _gen_world(self): print('bar !') room = self.add_rect_room(min_x=0, max_x=self.size, min_z=0, max_z=self.size) self.boxes = [] self.n = np.random.randint(self.min_obj, self.max_obj + 1) for _ in range(self.n): color = np.random.choice(COLOR_NAMES) self.boxes.append(self.place_entity(Box(color=color))) self.place_agent()
def setUp(self): name = self.shortDescription() reward = 0 if name == "Empty": # wird die setUp Methode mit "Empty" aufgerufen, self.env = gym.make( 'MiniWorld-HAWKMaze-v0' ) # zuerst wird das HawkMaze Environment erstellt self.env.room_size = 100 # der Raum wird auf eine Größe von 100x100 gesetzt self.env.anzahl_objs = 0 # wird die Anzahl der Boxen auf 0 gesetzt self.env.reset( ) # anschließend wird das Environment neugestartet (zur Initialisierung) if name == "Boxes": # wird die setUp Methode mit "Empty" aufgerufen, self.env = gym.make( 'MiniWorld-HAWKMaze-v0' ) # zuerst wird das HawkMaze Environment erstellt self.env.anzahl_objs = 10 # wird die Anzahl der Boxen auf 10 gesetzt self.env.reset( ) # anschließend wird das Environment neugestartet (zur Initialisierung) if name == "Parameter_Test": # wird die setUp Methode mit "Place_Agent_on_defined_Position" aufgerufen, self.env = gym.make( 'MiniWorld-HAWKMaze-v0' ) # Anfangs wird das hawkmaze Environment erstellt self.env.num_rows = 10 # Die Anzahl der Zeilen beträgt 50 self.env.num_cols = 10 # Die Anzahl der Spalten beträgt 100 self.env.anzahl_objs = 10 # Es werden 10 Objekte platziert if name == "Place_Agent_on_defined_Position": # wird die setUp Methode mit "Place_Agent_on_defined_Position" aufgerufen, self.env = gym.make( 'MiniWorld-HAWKMaze-v0' ) # zuerst wird das HawkMaze Environment erstellt self.env.room_size = 5 # Der Raum wird auf eine Größe von 100x100 gesetzt, damit es nicht zu Kollisionen kommt self.env.num_rows = 2 self.env.num_cols = 2 self.env.anzahl_objs = 0 self.env.reset() # das Environment wird neu gestartet self.env.place_entity( # Platzieren einer Box an der Stelle x=15, z=10 Box(color='red', size=0.9), pos=np.array([2, 0, 1]), dir=0) self.env.place_agent( # Platzieren des Agents an einer definierten Stelle dir=math.pi / 2, min_x=1.5, max_x=2, min_z=3, max_z=4)
def _gen_world(self): color_names = list(COLOR_NAMES) color_names.pop(2) # remove grey # we can change the textures in the kwargs here room = self.add_rect_room(min_x=0, max_x=self.size, min_z=0, max_z=self.size, wall_height=4.) # place agent self.place_entity(ent=self.agent, pos=np.array([0.1, 0., 0.1]), dir=-math.pi / 4) self.boxes = [] for i in range(self.n_boxes): self.boxes.append(self.place_entity(Box(color=color_names[i])))
def _gen_world(self): rows = [] # For each row for j in range(self.num_rows): row = [] # For each column for i in range(self.num_cols): min_x = i * (self.room_size + self.gap_size) max_x = min_x + self.room_size min_z = j * (self.room_size + self.gap_size) max_z = min_z + self.room_size room = self.add_rect_room( min_x=min_x, max_x=max_x, min_z=min_z, max_z=max_z, wall_tex='brick_wall', #floor_tex='asphalt' ) row.append(room) rows.append(row) visited = set() def visit(i, j): """ Recursive backtracking maze construction algorithm https://stackoverflow.com/questions/38502 """ room = rows[j][i] visited.add(room) # Reorder the neighbors to visit in a random order neighbors = self.rand.subset([(0, 1), (0, -1), (-1, 0), (1, 0)], 4) # For each possible neighbor for dj, di in neighbors: ni = i + di nj = j + dj if nj < 0 or nj >= self.num_rows: continue if ni < 0 or ni >= self.num_cols: continue neighbor = rows[nj][ni] if neighbor in visited: continue if di == 0: self.connect_rooms(room, neighbor, min_x=room.min_x, max_x=room.max_x) elif dj == 0: self.connect_rooms(room, neighbor, min_z=room.min_z, max_z=room.max_z) visit(ni, nj) # Generate the maze starting from the top-left corner visit(0, 0) X = (self.num_cols - 0.5) * self.room_size + (self.num_cols - 1) * self.gap_size Z = (self.num_rows - 0.5) * self.room_size + (self.num_rows - 1) * self.gap_size self.box = self.place_entity(Box(color='red'), pos=np.array([X, 0, Z])) X = 0.5 * self.room_size Z = 0.5 * self.room_size self.place_entity(self.agent, pos=np.array([X, 0, Z]), dir=0)
def _construct(self): self.create_room_matrix() self.create_doors() self.decorate() self.create_buildings() self.box = self.place_entity(Box(color='red'), room=self.M[5][1])