Commit 0ad69215 authored by Erik Nygren's avatar Erik Nygren
Browse files

updated TODO's in rail_env.py and env_observation_builder.py

parent 640276c7
Pipeline #427 failed with stage
in 1 minute and 45 seconds
...@@ -25,6 +25,11 @@ env = RailEnv(width=10, ...@@ -25,6 +25,11 @@ env = RailEnv(width=10,
rail_generator=random_rail_generator(cell_type_relative_proportion=transition_probability), rail_generator=random_rail_generator(cell_type_relative_proportion=transition_probability),
number_of_agents=1) number_of_agents=1)
env = RailEnv(width=20,
height=20,
rail_generator=complex_rail_generator(nr_start_goal=20, min_dist=10, max_dist=99999, seed=0),
number_of_agents=5)
""" """
env = RailEnv(width=20, env = RailEnv(width=20,
height=20, height=20,
......
...@@ -242,6 +242,7 @@ class TreeObsForRailEnv(ObservationBuilder): ...@@ -242,6 +242,7 @@ class TreeObsForRailEnv(ObservationBuilder):
# Start from the current orientation, and see which transitions are available; # Start from the current orientation, and see which transitions are available;
# organize them as [left, forward, right, back], relative to the current orientation # organize them as [left, forward, right, back], relative to the current orientation
for branch_direction in [(orientation + 4 + i) % 4 for i in range(-1, 3)]: for branch_direction in [(orientation + 4 + i) % 4 for i in range(-1, 3)]:
#TODO: check if cell is a curve, then keep branch direction forward instead of left or right
if self.env.rail.get_transition((position[0], position[1], orientation), branch_direction): if self.env.rail.get_transition((position[0], position[1], orientation), branch_direction):
new_cell = self._new_position(position, branch_direction) new_cell = self._new_position(position, branch_direction)
......
...@@ -905,6 +905,7 @@ class RailEnv(Environment): ...@@ -905,6 +905,7 @@ class RailEnv(Environment):
def reset(self, regen_rail=True, replace_agents=True): def reset(self, regen_rail=True, replace_agents=True):
if regen_rail or self.rail is None: if regen_rail or self.rail is None:
#TODO: Import not only rail information but also start and goal positions
self.rail = self.rail_generator(self.width, self.height, self.num_resets) self.rail = self.rail_generator(self.width, self.height, self.num_resets)
self.fill_valid_positions() self.fill_valid_positions()
...@@ -916,7 +917,7 @@ class RailEnv(Environment): ...@@ -916,7 +917,7 @@ class RailEnv(Environment):
# Use a TreeObsForRailEnv to compute distance maps to each agent's target, to sample initial # Use a TreeObsForRailEnv to compute distance maps to each agent's target, to sample initial
# agent's orientations that allow a valid solution. # agent's orientations that allow a valid solution.
# TODO: Possibility ot fill valid positions from list of goals and start
self.fill_valid_positions() self.fill_valid_positions()
if replace_agents: if replace_agents:
...@@ -1023,6 +1024,7 @@ class RailEnv(Environment): ...@@ -1023,6 +1024,7 @@ class RailEnv(Environment):
is_deadend = False is_deadend = False
if action == 2: if action == 2:
# TODO: Check if cell is curve --> Compute correct transition and change in orientation
# compute number of possible transitions in the current # compute number of possible transitions in the current
# cell # cell
nbits = 0 nbits = 0
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment