From 0ad69215091a5dfb0da432751f6ec7d76634977c Mon Sep 17 00:00:00 2001 From: Erik Nygren <erik.nygren@sbb.ch> Date: Mon, 29 Apr 2019 13:50:23 +0200 Subject: [PATCH] updated TODO's in rail_env.py and env_observation_builder.py --- examples/training_navigation.py | 5 +++++ flatland/core/env_observation_builder.py | 1 + flatland/envs/rail_env.py | 4 +++- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/examples/training_navigation.py b/examples/training_navigation.py index 3566a3b3..0c35fb14 100644 --- a/examples/training_navigation.py +++ b/examples/training_navigation.py @@ -25,6 +25,11 @@ env = RailEnv(width=10, rail_generator=random_rail_generator(cell_type_relative_proportion=transition_probability), 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, height=20, diff --git a/flatland/core/env_observation_builder.py b/flatland/core/env_observation_builder.py index 8737862b..848b184f 100644 --- a/flatland/core/env_observation_builder.py +++ b/flatland/core/env_observation_builder.py @@ -242,6 +242,7 @@ class TreeObsForRailEnv(ObservationBuilder): # Start from the current orientation, and see which transitions are available; # 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)]: + #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): new_cell = self._new_position(position, branch_direction) diff --git a/flatland/envs/rail_env.py b/flatland/envs/rail_env.py index de952d31..30e474d6 100644 --- a/flatland/envs/rail_env.py +++ b/flatland/envs/rail_env.py @@ -905,6 +905,7 @@ class RailEnv(Environment): def reset(self, regen_rail=True, replace_agents=True): 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.fill_valid_positions() @@ -916,7 +917,7 @@ class RailEnv(Environment): # Use a TreeObsForRailEnv to compute distance maps to each agent's target, to sample initial # agent's orientations that allow a valid solution. - + # TODO: Possibility ot fill valid positions from list of goals and start self.fill_valid_positions() if replace_agents: @@ -1023,6 +1024,7 @@ class RailEnv(Environment): is_deadend = False if action == 2: + # TODO: Check if cell is curve --> Compute correct transition and change in orientation # compute number of possible transitions in the current # cell nbits = 0 -- GitLab