diff --git a/flatland/envs/generators.py b/flatland/envs/generators.py index 24671d79cfac364e3240bc26c6ce21264109d06b..45d897cc8d594a68bcb31429d7a6948e2fd1113a 100644 --- a/flatland/envs/generators.py +++ b/flatland/envs/generators.py @@ -670,7 +670,7 @@ def realistic_rail_generator(nr_start_goal=1, seed=0, add_max_dead_end=20, two_t np.random.seed(seed + num_resets) - max_n_track_seg = np.random.choice([2, 3, 4]) + int(two_track_back_bone) + max_n_track_seg = np.random.choice([3, 4, 5, 6]) + int(two_track_back_bone) x_offsets = np.arange(0, height, max_n_track_seg).astype(int) agents_positions_forward = [] @@ -863,19 +863,20 @@ def realistic_rail_generator(nr_start_goal=1, seed=0, add_max_dead_end=20, two_t if len(new_path) > 0: c = (pos_x - 1, pos_y - 1) make_switch_e_w(width, height, grid_map, c) - add_pos = ( - int((goal_track[0] + start_track[0]) / 2), - int((goal_track[1] + start_track[1]) / 2), - idx_target) - agents_positions_backward.append(add_pos) - agents_directions_backward.append(3) - idx_backward.append(idx_target) - add_pos = ( - int((goal_track[0] + start_track[0]) / 2), - int((goal_track[1] + start_track[1]) / 2), - idx_target) - agents_targets.append(add_pos) - idx_target += 1 + if np.random.random() < 0.5: + add_pos = ( + int((goal_track[0] + start_track[0]) / 2), + int((goal_track[1] + start_track[1]) / 2), + idx_target) + agents_positions_backward.append(add_pos) + agents_directions_backward.append(3) + idx_backward.append(idx_target) + add_pos = ( + int((goal_track[0] + start_track[0]) / 2), + int((goal_track[1] + start_track[1]) / 2), + idx_target) + agents_targets.append(add_pos) + idx_target += 1 else: start_track = (pos_x, pos_y) goal_track = (pos_x, pos_y - 2) @@ -883,19 +884,20 @@ def realistic_rail_generator(nr_start_goal=1, seed=0, add_max_dead_end=20, two_t if len(new_path) > 0: c = (pos_x - 1, pos_y + 1) make_switch_w_e(width, height, grid_map, c) - add_pos = ( - int((goal_track[0] + start_track[0]) / 2), - int((goal_track[1] + start_track[1]) / 2), - idx_target) - agents_positions_forward.append(add_pos) - agents_directions_forward.append(1) - idx_forward.append(idx_target) - add_pos = ( - int((goal_track[0] + start_track[0]) / 2), - int((goal_track[1] + start_track[1]) / 2), - idx_target) - agents_targets.append(add_pos) - idx_target += 1 + if np.random.random() < 0.5: + add_pos = ( + int((goal_track[0] + start_track[0]) / 2), + int((goal_track[1] + start_track[1]) / 2), + idx_target) + agents_positions_forward.append(add_pos) + agents_directions_forward.append(1) + idx_forward.append(idx_target) + add_pos = ( + int((goal_track[0] + start_track[0]) / 2), + int((goal_track[1] + start_track[1]) / 2), + idx_target) + agents_targets.append(add_pos) + idx_target += 1 agents_position = [] agents_target = [] @@ -905,7 +907,7 @@ def realistic_rail_generator(nr_start_goal=1, seed=0, add_max_dead_end=20, two_t t = np.random.choice(range(len(agents_targets))) d = agents_targets[t] agents_targets.pop(t) - if d[2] < idx_target / 2: + if np.random.random() < 0.5: # d[2] < idx_target: if len(idx_backward) > 0: agents_target.append((d[0], d[1])) sel = np.random.choice(range(len(idx_backward))) diff --git a/tests/test_flatland_env_sparse_rail_generator.py b/tests/test_flatland_env_sparse_rail_generator.py index 3ac0636e3985e4dfa76318bc658c9e71b76257a7..17d2df0e69b0824105a2e425d7b8be939994ff83 100644 --- a/tests/test_flatland_env_sparse_rail_generator.py +++ b/tests/test_flatland_env_sparse_rail_generator.py @@ -51,4 +51,4 @@ def test_sparse_rail_generator(): env_renderer = RenderTool(env, gl="PILSVG", ) env_renderer.render_env(show=True, show_observations=True, show_predictions=False) -test_realistic_rail_generator() +test_realistic_rail_generator("./../rendering/")