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