File size: 1,210 Bytes
86d5d3a
 
ad6bc19
86d5d3a
 
 
ad6bc19
86d5d3a
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
from openenv.core.env_server.types import Action, Observation
from pydantic import Field
from typing import Dict, Literal

class TrafficAction(Action):
    """Action for the Traffic Signal RL environment."""
    action_type: Literal["KEEP_PHASE", "SWITCH_PHASE"] = Field(..., description="Action to take.")

class TrafficObservation(Observation):
    """Observation from the Traffic Signal RL environment."""
    queue_lengths: Dict[str, int] = Field(default_factory=dict, description="Queue lengths for N, S, E, W lanes.")
    waiting_times: Dict[str, float] = Field(default_factory=dict, description="Total waiting times for N, S, E, W lanes.")
    signal_phase: str = Field(default="NS_GREEN", description="Current green phase ('NS_GREEN' or 'EW_GREEN').")
    time_since_last_change: int = Field(default=0, description="Time steps since the last phase change.")
    emergency_presence: Dict[str, bool] = Field(default_factory=dict, description="Emergency vehicle presence per lane.")
    pedestrian_requests: Dict[str, bool] = Field(default_factory=dict, description="Pedestrian crossing requests.")
    task_difficulty: str = Field(default="easy", description="Current task difficulty.")