flatland.envs.agent_utils module#
- class flatland.envs.agent_utils.Agent(initial_position, initial_direction, direction, targets, moving, earliest_departure, latest_arrival, handle, position, arrival_time, old_direction, old_position, speed_counter, action_saver, state_machine, malfunction_handler, waypoints, waypoints_earliest_departure, waypoints_latest_arrival, target_position, target_direction)[source]#
Bases:
NamedTuple- action_saver: ActionSaver#
Alias for field number 13
- arrival_time: int#
Alias for field number 9
- direction: Grid4TransitionsEnum#
Alias for field number 2
- earliest_departure: int#
Alias for field number 5
- handle: int#
Alias for field number 7
- initial_direction: Grid4TransitionsEnum#
Alias for field number 1
- initial_position: Tuple[int, int]#
Alias for field number 0
- latest_arrival: int#
Alias for field number 6
- malfunction_handler: MalfunctionHandler#
Alias for field number 15
- moving: bool#
Alias for field number 4
- old_direction: Grid4TransitionsEnum#
Alias for field number 10
- old_position: Tuple[int, int]#
Alias for field number 11
- position: Tuple[int, int]#
Alias for field number 8
- speed_counter: SpeedCounter#
Alias for field number 12
- state_machine: TrainStateMachine#
Alias for field number 14
- target_direction: Grid4TransitionsEnum#
Alias for field number 20
- target_position: Tuple[int, int]#
Alias for field number 19
- targets: Set[Tuple[Tuple[int, int], Grid4TransitionsEnum]]#
Alias for field number 3
- waypoints_earliest_departure: List[int]#
Alias for field number 17
- waypoints_latest_arrival: List[int]#
Alias for field number 18
- class flatland.envs.agent_utils.EnvAgent(initial_configuration, current_configuration=NOTHING, targets: Set[ConfigurationType] = NOTHING, target_configuration=NOTHING, moving: bool = False, earliest_departure: int = 0, latest_arrival: int = 9223372036854775807, waypoints: List[List[Waypoint]] = NOTHING, waypoints_earliest_departure: List[int] = NOTHING, waypoints_latest_arrival: List[int] = NOTHING, handle=None, speed_counter: SpeedCounter = NOTHING, action_saver: ActionSaver = NOTHING, state_machine: TrainStateMachine = NOTHING, malfunction_handler: MalfunctionHandler = NOTHING, arrival_time: int | None = None, old_configuration=NOTHING)[source]#
Bases:
Generic[ConfigurationType]- classmethod from_line(line: Line)[source]#
Create a list of EnvAgent from lists of positions, directions and targets
- get_current_delay(elapsed_steps: int, distance_map) int[source]#
+ve if arrival time is projected before latest arrival -ve if arrival time is projected after latest arrival
- classmethod load_legacy_static_agent(static_agents_data: Tuple, rail: TransitionMap | None = None)[source]#
- property malfunction_data#
- reset()[source]#
Resets the agents to their initial values of the episode. Called after ScheduleTime generation.
- property speed_data#
- property state#
- flatland.envs.agent_utils.load_env_agent(agent_tuple: Agent, rail: TransitionMap)[source]#
- flatland.envs.agent_utils.virtual_configuration(agent: EnvAgent) Tuple[Tuple[int, int], int] | None[source]#
Returns the effective grid (position, direction) for agent, regardless of whether it is currently on the map - used by observations/predictions that need a configuration to compute against even for off-map or arrived agents: - off map: initial_configuration. - on map: current_configuration. - done (arrived, possibly already removed from the map): agent.target_configuration - the
specific configuration actually reached, so a real, rail-valid direction is returned instead of the None direction that current_configuration would give once the agent is removed from the map.
any other state (e.g. malfunctioning while still off map): None.
- flatland.envs.agent_utils.with_direction(configuration: Tuple[Tuple[int, int], int] | None, direction: int) Tuple[Tuple[int, int], int][source]#
Returns a grid (position, direction) configuration with direction replaced, preserving configuration’s position - or (None, direction) if configuration is None (e.g. the agent is currently off map).