From dfc4ea23c4a9406c9a61322c54a1faa5f7c34d87 Mon Sep 17 00:00:00 2001 From: "Egli Adrian (IT-SCI-API-PFI)" <adrian.egli@sbb.ch> Date: Tue, 20 Aug 2019 18:05:18 +0200 Subject: [PATCH] bug fix for agent placement (no agents on curves) --- flatland/envs/generators.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/flatland/envs/generators.py b/flatland/envs/generators.py index 8fa40c8e..09661f6f 100644 --- a/flatland/envs/generators.py +++ b/flatland/envs/generators.py @@ -896,16 +896,22 @@ def realistic_rail_generator(nr_start_goal=1, seed=0, add_max_dead_end=4, two_tr agents_target = [] agents_direction = [] + remove_a = [] for a in range(len(agents_positions)): cell_transitions = grid_map.get_transitions(agents_positions[a][0], agents_positions[a][1], agents_directions[a]) if np.sum(cell_transitions) == 0: - agents_directions[a] += 2 - agents_directions[a] = agents_directions[a] % 4 - cell_transitions = grid_map.get_transitions(agents_positions[a][0], agents_positions[a][1], - agents_directions[a]) + for i in range(4): + agents_directions[a] = i + cell_transitions = grid_map.get_transitions(agents_positions[a][0], agents_positions[a][1], + agents_directions[a]) + if np.sum(cell_transitions) != 0: + break if np.sum(cell_transitions): - print(a, "bug") + remove_a.extend([a]) + for i in range(len(remove_a)): + agents_positions.pop(i) + agents_directions.pop(i) for a in range(min(len(agents_targets), num_agents)): t = np.random.choice(range(len(agents_targets))) -- GitLab