USE CASE 0 | Mars Rover steuern |
---|---|
Goal in Context | Befehle an den Mars Rover senden. |
Scope & Level | System: Mars Rover Steuerungssystem Level: Primary Task |
Preconditions | Rover ist eingeschaltet und verbunden. |
Success End Condition | Rover hat Befehle erfolgreich ausgeführt. |
Failed End Condition | Rover hat Befehle nicht ausgeführt oder ist offline. |
Primary, Secondary Actors | Primary Actor: Missionskontrolle Secondary Actors: Kommunikationssysteme |
Trigger | Missionskontrolle startet einen Steuerungsvorgang. |
DESCRIPTION
Step | Action |
---|---|
1 | Verbindung zum Rover aufbauen. |
2 | Steuerbefehl senden. |
3 | Rückmeldung vom Rover analysieren. |
EXTENSIONS
Step | Branching Action |
---|---|
2a | Wenn Verbindung scheitert: Wiederholungsversuch oder Abbruch. |
3a | Wenn Rückmeldung negativ: Fehlerprotokoll erstellen und alternativen Befehl schicken. |
SUB-VARIATIONS
Step | Branching Action |
---|---|
1 | Alternative Kommunikationskanäle testen. |
#####################|
USE CASE 1 | Rover vorwärts bewegen |
---|---|
Goal in Context | Den Rover auf der Marsoberfläche vorwärts bewegen. |
Scope & Level | System: Mars Rover Bewegungssystem Level: Subfunction |
Preconditions | Rover ist eingeschaltet und unter Kontrolle, es befindet sich kein Hindernis direkt vor dem Rover und innerhalb der Plateau-Grenzen. |
Success End Condition | Der Rover hat sich erfolgreich vorwärts bewegt und die neue Position wird angezeigt. |
Failed End Condition | Der Rover konnte sich nicht vorwärts bewegen (z.B. aufgrund eines Hindernisses oder technischer Probleme), eine Fehlermeldung wird angezeigt. |
Primary, Secondary Actors | Primary Actor: Mars Mission Control Secondary Actors: Mars Rover Bewegungssystem, Mars Rover Hinderniserkennungssystem (ODS), Mars Rover Navigationssystem |
Trigger | Die Mars Mission Control sendet den Befehl zur Vorwärtsbewegung ('F'). |
DESCRIPTION
Step | Action |
---|---|
1 | Überprüfe, ob ein Hindernis vor dem Rover liegt (via ODS). |
2 | Überprüfe, ob eine Bewegung die Plateau-Grenzen überschreiten würde (via Navigationssystem). |
3 | Sende den Befehl an das Bewegungssystem, sich vorwärts zu bewegen. |
4 | Empfange eine Rückmeldung über die erfolgte Bewegung und die neue Position. |
EXTENSIONS
Step | Branching Action |
---|---|
1a | Wenn ein Hindernis erkannt wird: Stoppe den Bewegungsvorgang und informiere die Missionskontrolle. |
2a | Wenn die Bewegung die Plateau-Grenzen überschreiten würde: Stoppe den Bewegungsvorgang und informiere die Missionskontrolle. |
3a | Wenn das Bewegungssystem einen Fehler meldet: Zeige eine Fehlermeldung an und stoppe den Vorgang. |
SUB-VARIATIONS
Step | Branching Action |
---|---|
3 | Bewege den Rover um eine kurze Distanz vorwärts. |
3 | Bewege den Rover um eine mittlere Distanz vorwärts. |
3 | Bewege den Rover um eine lange Distanz vorwärts. |
#####################
USE CASE 2 | Rover rückwärts bewegen |
---|---|
Goal in Context | Den Rover auf der Marsoberfläche rückwärts bewegen. |
Scope & Level | System: Mars Rover Bewegungssystem Level: Subfunction |
Preconditions | Rover ist eingeschaltet und unter Kontrolle, es befindet sich kein Hindernis direkt hinter dem Rover und innerhalb der Plateau-Grenzen. |
Success End Condition | Der Rover hat sich erfolgreich rückwärts bewegt und die neue Position wird angezeigt. |
Failed End Condition | Der Rover konnte sich nicht rückwärts bewegen (z.B. aufgrund eines Hindernisses oder technischer Probleme), eine Fehlermeldung wird angezeigt. |
Primary, Secondary Actors | Primary Actor: Mars Mission Control Secondary Actors: Mars Rover Bewegungssystem, Mars Rover Hinderniserkennungssystem (ODS), Mars Rover Navigationssystem |
Trigger | Die Mars Mission Control sendet den Befehl zur Rückwärtsbewegung ('B'). |
DESCRIPTION
Step | Action |
---|---|
1 | Überprüfe, ob ein Hindernis hinter dem Rover liegt (via ODS). |
2 | Überprüfe, ob eine Bewegung die Plateau-Grenzen überschreiten würde (via Navigationssystem). |
3 | Sende den Befehl an das Bewegungssystem, sich rückwärts zu bewegen. |
4 | Empfange eine Rückmeldung über die erfolgte Bewegung und die neue Position. |
EXTENSIONS
Step | Branching Action |
---|---|
1a | Wenn ein Hindernis erkannt wird: Stoppe den Bewegungsvorgang und informiere die Missionskontrolle. |
2a | Wenn die Bewegung die Plateau-Grenzen überschreiten würde: Stoppe den Bewegungsvorgang und informiere die Missionskontrolle. |
3a | Wenn das Bewegungssystem einen Fehler meldet: Zeige eine Fehlermeldung an und stoppe den Vorgang. |
SUB-VARIATIONS
Step | Branching Action |
---|---|
3 | Bewege den Rover um eine kurze Distanz rückwärts. |
3 | Bewege den Rover um eine mittlere Distanz rückwärts. |
3 | Bewege den Rover um eine lange Distanz rückwärts. |
#####################
USE CASE 3 | Rover nach links drehen(45°) |
---|---|
Goal in Context | Die Ausrichtung des Rovers nach links ändern. |
Scope & Level | System: Mars Rover Steuerungssystem Level: Subfunction |
Preconditions | Rover ist eingeschaltet und unter Kontrolle. |
Success End Condition | Der Rover hat sich erfolgreich nach links gedreht und die neue Ausrichtung wird angezeigt. |
Failed End Condition | Der Rover konnte sich nicht nach links drehen (z.B. aufgrund technischer Probleme), eine Fehlermeldung wird angezeigt. |
Primary, Secondary Actors | Primary Actor: Mars Mission Control Secondary Actors: Mars Rover Steuerungssystem |
Trigger | Die Mars Mission Control sendet den Befehl zum Linksdrehen ('L'). |
DESCRIPTION
Step | Action |
---|---|
1 | Sende den Befehl an das Steuerungssystem, sich nach links zu drehen. |
2 | Empfange eine Rückmeldung über die erfolgte Drehung und die neue Ausrichtung. |
EXTENSIONS
Step | Branching Action |
---|---|
1a | Wenn das Steuerungssystem einen Fehler meldet: Zeige eine Fehlermeldung an und stoppe den Vorgang. |
SUB-VARIATIONS
Step | Branching Action |
---|---|
1 | Drehe den Rover um einen kleinen Winkel nach links. |
1 | Drehe den Rover um einen mittleren Winkel nach links. |
1 | Drehe den Rover um einen großen Winkel nach links. |
#####################
USE CASE 4 | Rover nach rechts drehen(45°) |
---|---|
Goal in Context | Die Ausrichtung des Rovers nach rechts ändern. |
Scope & Level | System: Mars Rover Steuerungssystem Level: Subfunction |
Preconditions | Rover ist eingeschaltet und unter Kontrolle. |
Success End Condition | Der Rover hat sich erfolgreich nach rechts gedreht und die neue Ausrichtung wird angezeigt. |
Failed End Condition | Der Rover konnte sich nicht nach rechts drehen (z.B. aufgrund technischer Probleme), eine Fehlermeldung wird angezeigt. |
Primary, Secondary Actors | Primary Actor: Mars Mission Control Secondary Actors: Mars Rover Steuerungssystem |
Trigger | Die Mars Mission Control sendet den Befehl zum Rechtsdrehen ('R'). |
DESCRIPTION
Step | Action |
---|---|
1 | Sende den Befehl an das Steuerungssystem, sich nach rechts zu drehen. |
2 | Empfange eine Rückmeldung über die erfolgte Drehung und die neue Ausrichtung. |
EXTENSIONS
Step | Branching Action |
---|---|
1a | Wenn das Steuerungssystem einen Fehler meldet: Zeige eine Fehlermeldung an und stoppe den Vorgang. |
SUB-VARIATIONS
Step | Branching Action |
---|---|
1 | Drehe den Rover um einen kleinen Winkel nach rechts. |
1 | Drehe den Rover um einen mittleren Winkel nach rechts. |
1 | Drehe den Rover um einen großen Winkel nach rechts. |
#####################
USE CASE 5 | Rover-Befehlskette senden |
---|---|
Goal in Context | Eine Sequenz von Befehlen zur automatisierten Ausführung an den Rover senden. |
Scope & Level | System: Mars Rover Steuerungssystem Level: Subfunction |
Preconditions | Rover ist eingeschaltet und unter Kontrolle. |
Success End Condition | Die gesamte Befehlskette wurde erfolgreich an den Rover gesendet und eine Bestätigung empfangen. |
Failed End Condition | Die Befehlskette konnte nicht gesendet werden (z.B. aufgrund einer fehlerhaften Verbindung oder eines ungültigen Befehls). |
Primary, Secondary Actors | Primary Actor: Mars Mission Control Secondary Actors: Mars Rover Steuerungssystem |
Trigger | Die Mars Mission Control initiiert das Senden einer vordefinierten Befehlskette. |
DESCRIPTION
Step | Action |
---|---|
1 | Stelle die Befehlskette zusammen. |
2 | Überprüfe die Syntax und Validität der Befehle in der Kette. |
3 | Sende die Befehlskette an den Rover. |
4 | Empfange eine Bestätigung, dass die Befehlskette erfolgreich übertragen wurde. |
EXTENSIONS
Step | Branching Action |
---|---|
2a | Wenn ein ungültiger Befehl in der Kette gefunden wird: Zeige eine Fehlermeldung an und erlaube dem Benutzer, die Kette zu korrigieren. |
3a | Wenn die Übertragung der Befehlskette fehlschlägt: Versuche die Übertragung erneut oder brich den Vorgang ab. |
SUB-VARIATIONS
Step | Branching Action |
---|---|
1 | Senden einer einfachen Befehlskette (z.B. Bewegung und Drehung). |
1 | Senden einer komplexen Befehlskette (mit Schleifen, Bedingungen etc. - falls unterstützt). |
#####################
USE CASE 6 | Hindernisprüfung vor Bewegung |
---|---|
Goal in Context | Erkennen potenzieller Hindernisse im geplanten Bewegungspfad des Rovers, bevor die Bewegung ausgeführt wird. |
Scope & Level | System: Mars Rover Hinderniserkennungssystem (ODS) Level: Subfunction |
Preconditions | Rover ist eingeschaltet, ein Bewegungsbefehl ('F' oder 'B') ist aktiv und das ODS ist betriebsbereit. |
Success End Condition | Das ODS hat den Bereich vor oder hinter dem Rover (abhängig vom Bewegungsbefehl) überprüft und kein Hindernis innerhalb des Sicherheitsabstands detektiert. |
Failed End Condition | Das ODS erkennt ein oder mehrere Hindernisse innerhalb des Sicherheitsabstands. |
Primary, Secondary Actors | Primary Actor: Mars Rover Secondary Actors: Mars Rover Hinderniserkennungssystem (ODS) |
Trigger | Der Rover empfängt einen Befehl zur Vorwärts- ('F') oder Rückwärtsbewegung ('B'). |
DESCRIPTION
Step | Action |
---|---|
1 | Aktiviere das Hinderniserkennungssystem (ODS). |
2 | Erfasse Daten aus den Sensoren des ODS im relevanten Bereich vor oder hinter dem Rover. |
3 | Analysiere die erfassten Daten, um festzustellen, ob sich Hindernisse innerhalb des definierten Sicherheitsabstands befinden. |
4 | Melde das Ergebnis der Hindernisprüfung. |
EXTENSIONS
Step | Branching Action |
---|---|
3a | Wenn Mehrdeutigkeiten in den Sensordaten auftreten: Führe zusätzliche Messungen durch oder verwende fortgeschrittenere Algorithmen zur Hinderniserkennung. |
4a | Wenn ein Hindernis erkannt wird: Melde die Art und ungefähre Position des Hindernisses. |
SUB-VARIATIONS
Step | Branching Action |
---|---|
2 | Scanne einen breiten Bereich vor/hinter dem Rover. |
2 | Fokussiere den Scan auf den direkten Bewegungspfad. |
#####################
USE CASE 7 | Bewegungsabbruch bei Hindernis |
---|---|
Goal in Context | Die aktuelle Bewegung des Rovers sofort stoppen, wenn ein Hindernis erkannt wird, um Kollisionen zu vermeiden. |
Scope & Level | System: Mars Rover Bewegungssystem, Mars Rover Hinderniserkennungssystem (ODS) Level: Subfunction |
Preconditions | Der Rover befindet sich in einer Vorwärts- oder Rückwärtsbewegung und das ODS ist aktiv. |
Success End Condition | Die Bewegung des Rovers wurde sicher gestoppt, nachdem ein Hindernis erkannt wurde, und die Mars Mission Control wurde informiert. |
Failed End Condition | Der Rover fährt trotz erkannter Hindernisse weiter. |
Primary, Secondary Actors | Primary Actor: Mars Rover Secondary Actors: Mars Rover Bewegungssystem, Mars Rover Hinderniserkennungssystem (ODS) |
Trigger | Das Hinderniserkennungssystem (ODS) detektiert während einer Bewegung ein Hindernis innerhalb des kritischen Sicherheitsabstands. |
DESCRIPTION
Step | Action |
---|---|
1 | Das ODS erkennt ein Hindernis während der Bewegung. |
2 | Sende ein sofortiges Stoppsignal an das Bewegungssystem. |
3 | Das Bewegungssystem stoppt die aktuelle Bewegung des Rovers. |
4 | Sende eine Benachrichtigung an die Mars Mission Control über den Bewegungsabbruch und die Hinderniserkennung. |
EXTENSIONS
Step | Branching Action |
---|---|
1a | Wenn das ODS ein unerwartetes oder sich schnell bewegendes Hindernis erkennt: Führe eine Notbremsung durch. |
4a | Zusätzlich zur Benachrichtigung: Sende Bilder oder Sensordaten des erkannten Hindernisses an die Missionskontrolle. |
SUB-VARIATIONS
Step | Branching Action |
---|---|
3 | Sanftes Abbremsen der Bewegung. |
3 | Sofortiges, abruptes Stoppen der Bewegung. |
#####################
USE CASE 8 | Plateau-Rand-Prüfung vor Bewegung |
---|---|
Goal in Context | Sicherstellen, dass eine geplante Vorwärts- oder Rückwärtsbewegung den Rover nicht über die definierten Plateau-Grenzen hinausführt. |
Scope & Level | System: Mars Rover Navigationssystem Level: Subfunction |
Preconditions | Rover ist eingeschaltet, ein Bewegungsbefehl ('F' oder 'B') ist aktiv und das Navigationssystem ist betriebsbereit. |
Success End Condition | Das Navigationssystem hat die geplante Bewegung analysiert und festgestellt, dass sie innerhalb der Plateau-Grenzen bleibt. |
Failed End Condition | Das Navigationssystem prognostiziert, dass die geplante Bewegung den Rover über die Plateau-Grenzen hinausführen würde. |
Primary, Secondary Actors | Primary Actor: Mars Rover Secondary Actors: Mars Rover Navigationssystem |
Trigger | Der Rover empfängt einen Befehl zur Vorwärts- ('F') oder Rückwärtsbewegung ('B'). |
DESCRIPTION
Step | Action |
---|---|
1 | Empfange den Bewegungsbefehl und die geplante Distanz. |
2 | Rufe die aktuelle Position und Ausrichtung des Rovers vom Navigationssystem ab. |
3 | Berechne die voraussichtliche Endposition nach der Bewegung. |
4 | Überprüfe, ob die voraussichtliche Endposition innerhalb der definierten Plateau-Grenzen liegt. |
5 | Melde das Ergebnis der Plateau-Rand-Prüfung. |
EXTENSIONS
Step | Branching Action |
---|---|
4a | Wenn die voraussichtliche Endposition nahe am Rand liegt: Gib eine Warnung aus. |
4b | Wenn die genauen Plateau-Grenzen unsicher sind: Verwende konservative Schätzungen. |
SUB-VARIATIONS
Step | Branching Action |
---|---|
4 | Überprüfe nur die Endposition. |
4 | Überprüfe den gesamten Bewegungspfad auf mögliche Grenzüberschreitungen. |
#####################
USE CASE 9 | Bewegungsabbruch am Plateau-Rand |
---|---|
Goal in Context | Die aktuelle Bewegung des Rovers sofort stoppen, wenn er den definierten Plateau-Rand erreicht, um ein Verlassen des sicheren Operationsgebiets zu verhindern. |
Scope & Level | System: Mars Rover Bewegungssystem, Mars Rover Navigationssystem Level: Subfunction |
Preconditions | Der Rover befindet sich in einer Vorwärts- oder Rückwärtsbewegung und das Navigationssystem ist aktiv. |
Success End Condition | Die Bewegung des Rovers wurde sicher gestoppt, nachdem der Plateau-Rand erreicht wurde, und die Mars Mission Control wurde informiert. |
Failed End Condition | Der Rover fährt über den Plateau-Rand hinaus. |
Primary, Secondary Actors | Primary Actor: Mars Rover Secondary Actors: Mars Rover Bewegungssystem, Mars Rover Navigationssystem |
Trigger | Das Navigationssystem erkennt während einer Bewegung, dass der Rover den Plateau-Rand erreicht hat. |
DESCRIPTION
Step | Action |
---|---|
1 | Das Navigationssystem erkennt, dass der Rover den Plateau-Rand erreicht hat. |
2 | Sende ein sofortiges Stoppsignal an das Bewegungssystem. |
3 | Das Bewegungssystem stoppt die aktuelle Bewegung des Rovers. |
4 | Sende eine Benachrichtigung an die Mars Mission Control über den Bewegungsabbruch am Plateau-Rand. |
EXTENSIONS
Step | Branching Action |
---|---|
1a | Wenn der Rand abrupt erreicht wird: Führe eine Notbremsung durch. |
4a | Zusätzlich zur Benachrichtigung: Sende die aktuelle Position und gegebenenfalls Sensordaten an die Missionskontrolle. |
SUB-VARIATIONS
Step | Branching Action |
---|---|
3 | Sanftes Abbremsen der Bewegung kurz vor Erreichen des Rands. |
3 | Sofortiges, abruptes Stoppen der Bewegung beim Erreichen des Rands. |
#####################
USE CASE 10 | Rückmeldung über ausgeführte Befehle |
---|---|
Goal in Context | Die Mars Mission Control über den Erfolg oder Misserfolg der an den Rover gesendeten Befehle informieren. |
Scope & Level | System: Mars Rover Kommunikationssystem Level: Subfunction |
Preconditions | Der Rover hat mit der Ausführung einer einzelnen Anweisung oder einer Befehlskette begonnen oder diese abgeschlossen/abgebrochen. |
Success End Condition | Eine detaillierte Rückmeldung über den Status und das Ergebnis der ausgeführten Befehle wurde erfolgreich an die Mars Mission Control gesendet. |
Failed End Condition | Es konnte keine Rückmeldung gesendet werden oder die gesendete Rückmeldung ist fehlerhaft oder unvollständig. |
Primary, Secondary Actors | Primary Actor: Mars Rover Secondary Actors: Mars Rover Kommunikationssysteme |
Trigger | Der Rover schließt die Ausführung einer einzelnen Anweisung oder einer Befehlskette ab oder bricht diese ab. |
DESCRIPTION
Step | Action |
---|---|
1 | Erfasse den Status und das Ergebnis der Befehlsausführung (z.B. erfolgreich, fehlgeschlagen mit Fehlercode, Teilerfolg). |
2 | Formatiere eine Rückmeldung, die die ausgeführten Befehle und deren Status enthält. |
3 | Sende die formatierte Rückmeldung über das Kommunikationssystem an die Mars Mission Control. |
EXTENSIONS
Step | Branching Action |
---|---|
1a | Bei einem Fehler: Füge detaillierte Fehlerinformationen (z.B. Fehlercode, Beschreibung) zur Rückmeldung hinzu. |
3a | Wenn die Übertragung der Rückmeldung fehlschlägt: Versuche die Übertragung erneut oder speichere die Rückmeldung für einen späteren Versand. |
SUB-VARIATIONS
Step | Branching Action |
---|---|
2 | Sende eine einfache Erfolgsmeldung. |
2 | Sende eine detaillierte Rückmeldung mit allen Schritten und Ergebnissen. |
#####################
USE CASE 11 | Rover-Positionsverfolgung auf Karte |
---|---|
Goal in Context | Die aktuelle Position und Ausrichtung des Rovers auf einer Karte in der Mars Mission Control visualisieren und nachverfolgen. |
Scope & Level | System: Mars Mission Control Kartierungssystem Level: Primary Task |
Preconditions | Eine digitale Karte der Rover-Operationsumgebung ist vorhanden und das Kartierungssystem ist aktiv. Die Mars Mission Control empfängt regelmäßig Positions- und Ausrichtungsdaten vom Rover. |
Success End Condition | Die Karte zeigt die aktuelle Position und Ausrichtung des Rovers korrekt an und wird bei jeder neuen Rückmeldung aktualisiert. |
Failed End Condition | Die Kartenanzeige ist fehlerhaft, zeigt die Position des Rovers nicht an oder die Aktualisierung erfolgt nicht korrekt. |
Primary, Secondary Actors | Primary Actor: Mars Mission Control Secondary Actors: Mars Rover, Mars Rover Kommunikationssysteme |
Trigger | Die Mars Mission Control empfängt eine neue Rückmeldung mit Positions- und/oder Ausrichtungsdaten vom Rover. |
DESCRIPTION
Step | Action |
---|---|
1 | Empfange die aktuellen Positions- und/oder Ausrichtungsdaten vom Rover. |
2 | Verarbeite die empfangenen Daten, um sie im Kartenformat darzustellen. |
3 | Aktualisiere die Anzeige des Rovers auf der digitalen Karte mit den neuen Daten. |
4 | Zeige gegebenenfalls den zurückgelegten Pfad des Rovers an. |
EXTENSIONS
Step | Branching Action |
---|---|
1a | Wenn fehlerhafte oder ungültige Positionsdaten empfangen werden: Zeige eine Warnung an und verwende gegebenenfalls die zuletzt bekannte gültige Position. |
3a | Wenn die Aktualisierung der Karte fehlschlägt: Zeige eine Fehlermeldung an. |
SUB-VARIATIONS
Step | Branching Action |
---|---|
3 | Zeige nur die aktuelle Position. |
3 | Zeige die aktuelle Position und die Ausrichtung (z.B. durch einen Pfeil). |
4 | Zeige den gesamten bisher zurückgelegten Pfad. |
4 | Zeige den Pfad der letzten X Zeiteinheiten oder Y Distanz. |
USE CASE 12 | Karte/Plateau mit Teleskop beobachten |
---|---|
Goal in Context | Identifizieren und Zurückgeben der Koordinaten von Hindernissen (als "besetzte Zellen" interpretiert) auf einer Karte oder einem Plateau mithilfe des Teleskops. |
Scope & Level | System: Mars Mission Control Beobachtungssystem (Teleskop-Modul) Level: Primary Task |
Preconditions | Das Teleskop-Objekt wurde mit einem gültigen Karten- oder Plateau-Objekt initialisiert (map_object ). Das Beobachtungssystem ist aktiv. Das Karten-/Plateau-Objekt kann Informationen über Hindernisse (obstacles ) bereitstellen. |
Success End Condition | Das Teleskop hat die Beobachtung erfolgreich durchgeführt und eine Liste der Koordinaten aller identifizierten Hindernisse (besetzte Zellen) korrekt zurückgegeben. Die Daten stehen der Mars Mission Control oder einem anfordernden System zur Verfügung. |
Failed End Condition | Das Teleskop konnte die Beobachtung nicht durchführen (z.B. aufgrund eines nicht korrekt initialisierten map_object oder fehlender obstacles -Daten im map_object ). Die zurückgegebene Liste ist fehlerhaft, unvollständig oder es wird ein Fehler gemeldet. |
Primary, Secondary Actors | Primary Actor: Mars Mission Control (oder ein anderes System, z.B. Pfadplanung) Secondary Actors: Teleskop-Objekt, Karten-/Plateau-Objekt |
Trigger | Die Mars Mission Control oder ein automatisiertes System fordert eine Beobachtung der Karte/des Plateaus über die observe() -Methode des Teleskops an. |
DESCRIPTION
Step | Action |
---|---|
1 | Die observe() -Methode des Teleskops wird aufgerufen. |
2 | Das Teleskop greift auf das ihm bei der Initialisierung zugewiesene map_object (Karte/Plateau) zu. |
3 | Das Teleskop prüft, ob das map_object direkt ein obstacles -Attribut besitzt oder ob ein darin enthaltenes plateau -Objekt ein obstacles -Attribut besitzt. |
4 | Wenn ein obstacles -Attribut gefunden wird, extrahiert das Teleskop die Liste der Koordinaten der Hindernisse. |
5 | Das Teleskop gibt die gesammelte Liste der Hinderniskoordinaten als "besetzte Zellen" zurück. |
6 | Die Mars Mission Control oder das anfordernde System empfängt die Liste der besetzten Zellen für weitere Verarbeitung oder Anzeige. |
EXTENSIONS
Step | Branching Action |
---|---|
2a |
Wenn das map_object im Teleskop nicht korrekt initialisiert oder nicht zugreifbar ist: Die observe() -Methode gibt eine Fehlermeldung oder eine leere Liste mit einer entsprechenden Protokollierung zurück. |
3a |
Wenn im map_object (oder dessen plateau -Attribut) kein obstacles -Attribut gefunden wird: Das Teleskop gibt eine leere Liste zurück (da keine Hindernisse über dieses Attribut definiert sind). |
4a |
Wenn das obstacles -Attribut vorhanden, aber leer ist oder ein unerwartetes Format hat: Das Teleskop gibt eine leere Liste oder die verarbeitbaren Teile zurück und protokolliert ggf. eine Warnung. |
6a | Wenn die Übermittlung der Daten an das anfordernde System fehlschlägt: Protokolliere den Fehler im System. |
SUB-VARIATIONS
Step | Branching Action |
---|---|
3 | Das Teleskop könnte erweitert werden, um auch auf andere Attribute des map_object (z.B. grid oder map wie im Code angedeutet, aber nicht für occupied_cells genutzt) zuzugreifen, um weitere Arten von besetzten Zellen (z.B. Rover-Positionen, wenn separat geführt) zu identifizieren. |
5 | Die zurückgegebenen Koordinaten werden in einem spezifischen Format für eine direkte Visualisierung aufbereitet (z.B. als Overlay für USE CASE 11). |
5 | Die zurückgegebenen Koordinaten werden für eine automatisierte Kollisionsprüfung oder Pfadplanung verwendet. |
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Vorgehensweise Aufgabe6
Aufsetzen von Aider -konnte nicht meine Python.exe bzw den Path nicht finden. weshalb folgender code genutzt wurde:
& "$HOME.local\bin\aider.exe" --model openrouter/deepseek/deepseek-coder --api-key openrouter-...
- Aider erstellte Korrekt eine Hello world.py
- Aider konnte auch erfolgreich änderungen an der File vornehmen, durch die implementierung eines Calculators.
- Bei dem Wechsel auf mein Roverscript: Pyscript.py begann sich aider seltsam zu verhalten.
- Es fanden keine Änderungen mehr in Pyscript.py mehr statt und die Prozesse welche im Terminal liefen hatten keinen Bezug zu dem Code oder dem gegebenen befehl. Auch nicht mehr bei der Hello World.Py
- FIX: Recherche in der Offizielen Doku ergab das zunächst das Terminal mit /clear gesäubert werden muss und das Model mit /model gewechselt werden muss. Ich wechselte auf das Sonnet model. Das Problem war behoben
Erste implementierung der Telescope klasse
- Zunächst sollte via /ask ein Plan erstellt werden wie eine Mögliche implementierung aussehen soll
- im nächsten Schritt gab ich die Anweisung den vorgeschlagenen Code zu implementieren:
Telescope
to Pyscript.py.
Please add a new class called The class should:
Map
or Plateau
object as input in the constructor.
- Take a
observe(self) -> List[Tuple[int, int]]
that returns the coordinates of all occupied cells (i.e., obstacles or rovers).
- Provide a method
getattr()
to support either .grid
or .map
.
- Access the map/grid data from the given object, using '''Aufgabe wurde falsch angegangen weshlb ich paar dinge überarbeiten musste'''
Erstellung der Plateu Klasse
folgender prompt wurde verwendet:
Create a new file named plateau.py
and define the Plateau
class within it.
Include the following:
- An attribute named
grid
which should be represented as a list of lists or a list of tuples, as noted in the diagram ("grid is a list of list or a list of tuples"). - Define the constructor
__init__(self, size_x: int, size_y: int) -> None
. Add the docstring based on the diagram note: "The init constructor creates a plateau with x times y size." - Define the method
move(self, x: int, y: int) -> None
. Add the docstring based on the diagram note: "notes the obstacles' positions and the true position of the rover on the grid." - Add a class docstring explaining its purpose and the
grid
attribute. - Use
pass
inside the method bodies for now, as we are only creating the structure.Create a new file namedplateau.py
and define thePlateau
class within it.
Include the following:
- An attribute named
grid
which should be represented as a list of lists or a list of tuples, as noted in the diagram ("grid is a list of list or a list of tuples"). - Define the constructor
__init__(self, size_x: int, size_y: int) -> None
. Add the docstring based on the diagram note: "The init constructor creates a plateau with x times y size." - Define the method
move(self, x: int, y: int) -> None
. Add the docstring based on the diagram note: "notes the obstacles' positions and the true position of the rover on the grid." - Add a class docstring explaining its purpose and the
grid
attribute. - Use
pass
inside the method bodies for now, as we are only creating the structure.
Erstellung der Map Klasse
Create a new file named map.py
and define the Map
class within it.
Include the following:
- An attribute named
map
which should be represented as a list of lists or a list of tuples, as noted in the diagram ("map is a list of list or a list of tuples"). - Define the method
move(self, x: int, y: int) -> None
. - Add a class docstring explaining its purpose and the
map
attribute. - Add a method docstring for the
move
method. - Use
pass
inside the method body for now.
Erstellung der Rover Klasse
Prompt:
Create a new file named rover.py
and define the Rover
class within it.
This class should be an abstract base class.
- Import the necessary modules from
abc
(ABC
andabstractmethod
). - The
Rover
class must inherit fromABC
. - Define an abstract method
drive(self, cmd: str) -> str
. - Add a method docstring for
drive
based on the diagram note: "takes the drive commands and returns a sequence of letters, which were successfully executed. If the ODS stops the rover, the method returns a substring containing successfully executed commands." - Add a class docstring indicating it's an abstract base class for a rover.
Erstellung der Mars Klasse
Create a new file named mars.py
and define the Mars
class within it.
Include the following:
- Define the method
drive(self, cmd: str) -> str
. - Add a class docstring explaining its purpose ("Eine Klasse zur Repräsentation des Mars.").
- Add a method docstring for the
drive
method based on the diagram and your previous plan ("Führt Fahrbefehle auf dem Mars aus." etc.). - Use
pass
inside the method body for now.
Erstellung der Telescope Klasse:
Create a new file named telescope.py
and define the Telescope
class within it.
Include the following:
- Define a constructor
__init__(self, plateau)
. Add a docstring: "Initializes the Telescope with a Plateau object." Also store theplateau
object as an instance attribute (e.g.,self.plateau = plateau
). - Define the method
observe(self) -> any
. Add a docstring based on the diagram note: "Observes the Plateau's grid." - Add a class docstring explaining its purpose ("Eine Klasse zur Repräsentation eines Teleskops, das das Plateau beobachtet.").
- Use
pass
inside the method body for now.
Aider hatte hier Probleme, es passierte zunächst nichts, im anschluss wurde die Klasse 3 mal erstellt.
Erstellung der Mission Control Klasse
Create a new file named mission_control.py
and define the MissionControl
class within it.
Include the following:
- Define a basic constructor
__init__(self)
. - Add a class docstring explaining its purpose based on the diagram and the plan: "A class for controlling the mission, coordinating interactions between Map, Telescope, Mars, and Rover."
- Use
pass
inside the__init__
method body for now.
Functional code
Aider nach der erstellung der Struktur bitten, funktionale Codes zu implementieren.
Okay, the basic structure for all classes is now set up in separate files. Please proceed with implementing the actual logic for the methods (__init__
, move
, drive
, observe
, etc.) within these classes, based on the UML diagram and the descriptions we discussed from the assignment. Replace the pass
statements with functional code.
aider hat die Plateu klasse nicht miteinbezogen
Please update the plateau.py
file to implement the methods in the Plateau
class.
- In the
__init__
method, initialize theself.grid
attribute to be a 2D structure (list of lists or similar) of the specifiedsize_x
andsize_y
. - Implement the
move(self, x: int, y: int) -> None
method. This method should update the plateau's grid to note the position of obstacles and the rover's current position. (You might need to decide on a simple representation for the grid content, e.g., '.' for empty, '#' for obstacle, 'R' for rover). - Add and implement the method
is_obstacle(self, x: int, y: int) -> bool
. This method should check the grid at(x, y)
to see if there's an obstacle. - Add and implement the method
is_within_bounds(self, x: int, y: int) -> bool
. This method should check if the coordinates(x, y)
are within thesize_x
andsize_y
dimensions of the plateau. - Ensure existing docstrings are kept and updated if needed.
Aider bekommt die Anweisung die Drive Methode zu implementieren und einen test script um die funktionalitöt zu testen
Aider hatte wieder das selbe Problem wie im 1. statement, das modell musste wieder gewechselt werden.
rest api und die tests
Aider hatte erneut fehler bei der Ausführung wie zuvor
Nach mehreren versuchen Aider auszführen und einigen Anpassungen funktionierte es und der Code wurde erfolgreich angepasst.
Eine Rest schnittstelle wurde implementiert. Meine vorherigen Unittests liefen ohne Probleme allerdings dauerte der durchlauf der tests länger.
Die API tests die von Aider erstellt wurden hatten einen Assertion error da der erwartete Output im Header nicht dem tatsächlichen output entsprochen hat. Ich habe Aider das Problem geschildert und dieser hat die API tests nochmal angepasst. Alle tests laufen ohne fehler.