Architektur¶
Dieses Dokument beschreibt die interne Architektur der CustomGrid-Umgebung und den vollständigen Workflow zur Aufgabenerfüllung.
Systemübersicht¶
Die Umgebung ist modular aufgebaut, um eine einfache Erweiterung von Sensoren und Agenten zu ermöglichen.
graph TD
subgraph "CustomGrid System"
Interface[AgentInterface]
Env[CustomGridEnv]
PF[ParticleFilter]
Vision[VisionSensor]
Renderer[PygameRenderer]
end
UserAgent[User Agent] --> Interface
Interface --> Env
Interface --> PF
Interface --> Vision
Env --> Renderer
Vision -.-> PF
PF -.-> Interface
Vollständiger Workflow zur Aufgabenerfüllung¶
Das folgende Diagramm zeigt den kompletten Workflow, wie verschiedene Module zusammenarbeiten, um eine Benutzeraufgabe (z. B. per Sprache) in Aktionen des Agenten umzusetzen. Dies beinhaltet auch geplante zukünftige Module wie Speech2Text und den Task Planner.
graph TD
%% Input Module
User([Benutzer]) -- "Sprachbefehl / Text" --> Input{Eingabe-Schnittstelle}
subgraph "Aufgabenverständnis & Planung"
S2T[Speech2Text Modul *] -- "Transkript" --> NLP[NLP / LLM Parser *]
NLP -- "Gelistete Ziele" --> Planner[Task Planner / TSP Solver *]
end
Input -- "Audio" --> S2T
Input -- "Text" --> NLP
subgraph "Agentensteuerung (AgentInterface)"
AI[AgentInterface]
PF[Partikelfilter]
Vision[Vision Sensor]
Audio[Audio Sensor *]
end
Planner -- "Nächstes Teilziel" --> Agent[KI Agent / Controller]
Agent -- "Aktion" --> AI
AI -- "Rohdaten" --> Vision
AI -- "Rohdaten" --> Audio
AI -- "Farbmessung" --> PF
Vision -- "Klassifizierung" --> PF
Audio -- "Audio-ID" --> PF
PF -- "Geschätzte Position" --> Agent
Agent -- "Zustands-Feedback" --> Planner
subgraph "Simulations-Kern"
Env[CustomGridEnv]
Renderer[Renderer]
end
AI -- "Aktion ausführen" --> Env
Env -- "Update" --> Renderer
Renderer -- "Visualisierung" --> User
classDef future fill:#f9f,stroke:#333,stroke-dasharray: 5 5;
class S2T,NLP,Planner,Audio future;
linkStyle default stroke:#333,stroke-width:2px;
* Diese Module sind Teil des erweiterten Architektur-Konzepts für Studierende.
Datenfluss (Schritt-Ebene)¶
Der Datenfluss während eines einzelnen Simulationsschrittes (step):
sequenceDiagram
participant A as Agent
participant I as AgentInterface
participant E as CustomGridEnv
participant PF as Particle Filter
participant V as Vision Sensor
A->>I: step(action)
I->>PF: predict(action)
I->>E: step(action)
E-->>I: obs, reward, info
I->>V: predict(cell)
V-->>I: cnn_probs
I->>PF: update(measurements)
PF->>PF: resample()
I->>A: return obs, reward, info + estimated_pos
Klassen-Hierarchie¶
Die Agenten folgen einem Protokoll-basierten Design.
classDiagram
class Agent {
<>
+get_action(observation)
}
class BaseAgent {
+action_space
+env
}
class MinimaxAgent
class ExpectimaxAgent
class ChaseGhostAgent
class RandomGhostAgent
BaseAgent ..|> Agent : implements
MinimaxAgent --|> BaseAgent : inherits
ExpectimaxAgent --|> BaseAgent : inherits
ChaseGhostAgent --|> BaseAgent : inherits
RandomGhostAgent --|> BaseAgent : inherits