TrafficV2 / models.py
PushkarDesai's picture
Upload folder using huggingface_hub
ad6bc19 verified
Raw
History Blame Contribute Delete
1.21 kB
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.")