Skip to content
Snippets Groups Projects
Commit 6d7fbf29 authored by Erik Nygren's avatar Erik Nygren
Browse files

Minor updaes in handling the predictor.

parent 91ff7d01
No related branches found
No related tags found
No related merge requests found
...@@ -92,7 +92,7 @@ def coordinate_to_position(width, coords): ...@@ -92,7 +92,7 @@ def coordinate_to_position(width, coords):
position = [] position = []
for t in coords: for t in coords:
position.append((t[1] * width + t[0])) position.append((t[1] * width + t[0]))
return np.array(position) return np.asarray(position).flatten()
class AStarNode(): class AStarNode():
"""A node class for A* Pathfinding""" """A node class for A* Pathfinding"""
......
...@@ -6,6 +6,7 @@ from collections import deque ...@@ -6,6 +6,7 @@ from collections import deque
import numpy as np import numpy as np
from flatland.core.env_observation_builder import ObservationBuilder from flatland.core.env_observation_builder import ObservationBuilder
from flatland.envs.env_utils import coordinate_to_position
class TreeObsForRailEnv(ObservationBuilder): class TreeObsForRailEnv(ObservationBuilder):
...@@ -175,11 +176,17 @@ class TreeObsForRailEnv(ObservationBuilder): ...@@ -175,11 +176,17 @@ class TreeObsForRailEnv(ObservationBuilder):
if self.predictor: if self.predictor:
self.predicted_pos = {}
self.predicted_dir = {}
self.predictions = self.predictor.get() self.predictions = self.predictor.get()
pred_pos = np.concatenate([[x[:, 1:3]] for x in list(self.predictions.values())], axis=0) for t in range(len(self.predictions[0])):
pred_pos = list(map(list, zip(*pred_pos))) pos_list = []
pred_dir = [x[:, 2] for x in list(self.predictions.values())] dir_list = []
for a in handles:
pos_list.append(self.predictions[a][t][1:3])
dir_list.append(self.predictions[a][t][3])
self.predicted_pos.update({t: coordinate_to_position(self.env.width, pos_list)})
self.predicted_dir.update({t: dir_list})
observations = {} observations = {}
for h in handles: for h in handles:
observations[h] = self.get(h) observations[h] = self.get(h)
...@@ -317,6 +324,9 @@ class TreeObsForRailEnv(ObservationBuilder): ...@@ -317,6 +324,9 @@ class TreeObsForRailEnv(ObservationBuilder):
# Cummulate the number of agents on branch with other direction # Cummulate the number of agents on branch with other direction
other_agent_opposite_direction += 1 other_agent_opposite_direction += 1
if self.predictor:
# Register possible conflict
if position in self.location_has_target: if position in self.location_has_target:
if num_steps < other_target_encountered: if num_steps < other_target_encountered:
other_target_encountered = num_steps other_target_encountered = num_steps
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment