From 49310d4b7dd21978fa328ae9076f88ce83858c10 Mon Sep 17 00:00:00 2001
From: "Egli Adrian (IT-SCI-API-PFI)" <adrian.egli@sbb.ch>
Date: Thu, 22 Aug 2019 23:46:20 +0200
Subject: [PATCH] inital postion / target not equal

---
 flatland/envs/generators.py | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/flatland/envs/generators.py b/flatland/envs/generators.py
index 712debda..127e8790 100644
--- a/flatland/envs/generators.py
+++ b/flatland/envs/generators.py
@@ -543,7 +543,8 @@ def random_rail_generator(cell_type_relative_proportion=[1.0] * 11):
     return generator
 
 
-def realistic_rail_generator(nr_start_goal=1, seed=0, add_max_dead_end=4, two_track_back_bone=True):
+def realistic_rail_generator(nr_start_goal=1, seed=0, add_max_dead_end=4, goals_only_in_dead_end=False,
+                             two_track_back_bone=True):
     """
     Parameters
     -------
@@ -728,7 +729,8 @@ def realistic_rail_generator(nr_start_goal=1, seed=0, add_max_dead_end=4, two_tr
                                 int((start_track[0] + goal_track[0]) / 2), int((start_track[1] + goal_track[1]) / 2))
                             agents_positions.append(add_pos)
                             agents_directions.append(([1, 3][off_set_loop % 2]))
-                            agents_targets.append(add_pos)
+                            if not goals_only_in_dead_end:
+                                agents_targets.append(add_pos)
 
                         add_rail(width, height, grid_map,
                                  (x_offsets[off_set_loop - 1] + int(two_track_back_bone_loop),
@@ -779,7 +781,8 @@ def realistic_rail_generator(nr_start_goal=1, seed=0, add_max_dead_end=4, two_tr
                                 int((start_track[0] + goal_track[0]) / 2), int((start_track[1] + goal_track[1]) / 2))
                             agents_positions.append(add_pos)
                             agents_directions.append(([1, 3][off_set_loop % 2]))
-                            agents_targets.append(add_pos)
+                            if not goals_only_in_dead_end:
+                                agents_targets.append(add_pos)
 
                         add_rail(width, height, grid_map,
                                  (x_offsets[off_set_loop - 1] + int(two_track_back_bone_loop),
@@ -843,7 +846,8 @@ def realistic_rail_generator(nr_start_goal=1, seed=0, add_max_dead_end=4, two_tr
                     agents_positions.append(add_pos)
                     agents_directions.append(([1, 3][off_set_loop % 2]))
                     add_pos = (int((start[0] + goal[0]) / 2), int((2 * start[1] + goal[1]) / 3))
-                    agents_targets.append(add_pos)
+                    if not goals_only_in_dead_end:
+                        agents_targets.append(add_pos)
 
         for off_set_loop in range(len(x_offsets)):
             off_set = x_offsets[off_set_loop]
-- 
GitLab