Skip to content

Feature Request: Entwicklung einer ASCII-basierten Terminal-UI für die Rover-Steuerung

Zusammenfassung

Es soll eine einfache, ASCII-basierte Benutzeroberfläche im Terminal entwickelt werden, mit der ein Rover gesteuert und sein Zustand visuell dargestellt werden kann.

Motivation

Ziel ist es, MissionControl eine grafische Steuerkomponente für den Rover bereitzustellen, die über das Terminal bedienbar ist. Die UI soll es ermöglichen, den Rover per Tasteneingabe zu steuern, wichtige Statusdaten abzulesen und die Umgebung des Rovers in Textform zu visualisieren. Dies bietet eine leichtgewichtige Lösung für Tests und Überprüfung der korrekten Position des Rovers auf dem Mars Plateau.

Vorgeschlagene Lösung

Die Benutzeroberfläche wird vollständig im Terminal realisiert und besteht aus folgenden Komponenten:

  • Steuerung des Rovers über Tasteneingaben (z.B. FBLR für Bewegung)
  • Anzeige der Bewegungsrichtung, ggf. andere Daten, z.B. Geschwindigkeit
  • Darstellung von Statusinformationen wie z.B. Stopps wegen Hindernissen
  • ASCII-basierte Visualisierung der Rover-Position auf einer bildschirmfüllenden Karte
  • Darstellung bekannter Hindernisse und freier Flächen im Gelände

Technische Details

  • Betroffene Komponenten: MissionControl, Map
  • Abhängigkeiten: Möglicherweise ncurses oder ähnliche Bibliothek für Terminal-Visualisierung
  • Besonderheiten:
    • Responsives Verhalten im Terminal (angepasst an Bildschirmgröße)
    • Echtzeit-Interaktion durch Eingabe-Handling
    • Modularität für spätere Erweiterung auf grafische UI möglich

Akzeptanzkriterien

  • Rover kann per Tasteneingabe im Terminal bewegt werden
  • Bewegungsrichtung und ggf. weitere Daten werden angezeigt
  • Rover-Statusinformationen wie „Stopp wegen Hindernis“ werden dargestellt
  • ASCII-Karte mit Rover-Position und Hindernissen wird bildschirmfüllend angezeigt
  • Code ist modular aufgebaut für spätere Erweiterungen
  • Tests für Eingabelogik und Anzeigeverhalten vorhanden

Zusätzlicher Kontext

Zukünftige Erweiterungen sollen die Möglichkeiten zur technischen Weiterentwicklung und Implementierung einer grafischen Oberfläche bieten.