(WS19-01) Wetterballon

Aus Verteilte Systeme - Wiki
Wechseln zu: Navigation, Suche

Projektbeschreibung

Ziel des Projekts ist es, einen Wetterballon zu starten, der einen mit Sensoren bestückten Payload auf eine Zielhöhe von rund 35 km bringt. Während des Fluges sollen neben Bild- und Videoaufnahmen auch verschiedene Messdaten wie Temperatur, Luftdruck, etc. gesammelt, gespeichert und im Idealfall in Teilen drathlos übermittelt werden können. Um den Rest der aufgezeichneten Daten verwenden zu können, ist es wichtig, den Payload nach der Landung wiederfinden zu können. Hierzu sollen verschiedene Ortungsmöglichkeiten verwendet werden.

Grundsätzlich soll auf bereits existierende Hardwaremodule und nur im Notfall auf eigens entwickelte Hardware zurückgegriffen werden. Das Hauptaugenmerk liegt auf der Softwareentwicklung, also dem umfangreichen Planen und Testen der Software, da es für den Start nur einen Versuch gibt und bei einem Fehlschlag nicht wiederholt werden kann.

2020-03-11-Stratoshot.png

Organisation

Teilnehmer

Name Rolle Email
Beckmann, Kai Dozent, Kunde kai.beckmann[at]hs-rm.de
Feller, Manuel Dokumentationsverantwortlicher manuel.feller[at]student.hs-rm.de
Gaida, Jonas QS-Verantwortlicher, Methodikverantwortlicher, Designverantwortlicher jonas.gaida[at]student.hs-rm.de
Müller, Arne Projektleiter, Werkzeugverantwortlicher arne.mueller[at]student.hs-rm.de
Schwarz, Florian Projektleiter, Analyseverantwortlicher florian.schwarz[at]student.hs-rm.de

Da wir nur ein sehr kleines Team waren, war von Anfang an klar, dass eine konventionelle Organisationsstruktur nicht möglich sein würde. Wir haben uns dennoch dazu entschieden, die uns bekannten Verantwortlichkeiten unter uns aufzuteilen, damit im Zweifelsfall klar ist, wer welche Entscheidungen zu treffen hat und das Projekt nicht durch Unentschlossenheit verlangsamt wird. Dabei haben die meisten von uns mehrere Rollen zugeteilt bekommen, die auf Grundlage von Kenntnissen und persönlichen Präferenzen vergeben wurden.

Im Verlauf des Projekts hat sich dann unsere Erwartung bestätigt, dass nicht alle Verantwortlichkeiten so wie hier dargestellt umgesetzt wurden. Am striktesten wurden dabei die Rollen des Projektleiters und des Dokumentationsverantwortlichen eingehalten, allen anderen Entscheidungen wurden in der Gruppe oder von einzelnen Teammitgliedern getroffen, wenn diese keine signifikanten Auswirkungen auf das Projekt hatten.

Werkzeuge

Aufgabe Werkzeug
Versionierung GitLab
Dokumentation VS-Wiki
Zeiterfassung Redmine
Kommunikation WhatsApp & Discord
Modellierung draw.io
Programmiersprachen C & Java

Da wir über die Hochschule bereits alle einen GitLab-Zugang hatten, war es die naheliegende Entscheidung, die Plattform für die Versionierung des Projektes zu verwenden. GitLab bietet außerdem die Möglichkeit, ein Wiki zur Dokumentation anzulegen, allerdings gab es von Hochschulseiten den Wunsch, das Projekt im VS-Wiki zu dokumentieren. Zu Beginn haben wir die Dokumentation daher auf beiden Plattformen parallel geführt, dies hat sich aber schnell als langwierig und unnötig erwiesen, wesshalb die Dokumentation im GitLab-Wiki eingestellt wurde. Des Weiteren steht auf GitLab ein Ticketsystem inklusive Zeiterfassung zur Verfügung. Dies wurde allerdings nicht benutzt, da es möglich sein sollte, zu sehen, wer wie viel Zeit für das Projekt aufgewendet hat. Dies erwies sich auf GitLab als zu umständlich umzusetzen, weshalb Redmine für Tickets und Zeiterfassung verwendet wurde.

Für die Kommunikation im Team wurde neben einer WhatsApp-Gruppe auch ein Discord-Server aufgesetzt, da das Unterteilen der Nachrichten in verschiedene Kanäle die Übersichtlichkeit verbessert. Für die Modellierung der einzelnen Komponenten sollte ursprünglich Modelio verwendet werden, die Bedienung des Tools ist jedoch nicht sehr intuitiv und für eine ausführliche Einarbeitung fehlte am Ende die Zeit, weshalb wir auf das Zeichenprogramm draw.io zurückgegriffen haben.

Da wir mit den Sensoren sehr hardwarenah arbeiten, haben wir die Steuerungssoftware für den Payload in C geschrieben. Für die automatische Auswertung der Daten wurde eine Java-Anwendung erstellt, da wir durch unser Studium bereits umfangreiche Kenntnisse in dieser Sprache hatten.

Projektphasen

Analyse

-> Hauptartikel: Analysephase

In der Analysephase wurden die Anforderungen an das Endprodukt festgestellt und die aus dem Vorjahr bereits verfügbare Hardware katalogisiert. Anschließend wurde aus den erlangten Erkenntnissen folgende Roadmap erstellt:

Software Development.png

Design

-> Hauptartikel: Designphase

In der Designphase wurden Hardware- und Softwareentwurf erstellt.

Entwicklung

-> Hauptartikel: Entwicklungsphase

In der Entwicklungsphase wurde die Software zur Steuerung des Payloads sowie zur Auswertung der Daten implementiert. Außerdem wurden die rechtlichen Vorraussetzungen für den Start erfüllt.

Test

-> Hauptartikel: Testphase

In der Testphase wurde Hard- und Software ausführlichen Tests unterzogen um einen reibungslosen Ablauf zu gewährleisten.

Start und Bergung

-> Hauptartikel: Start & Bergung

Nachdem Entwicklung und Tests abgeschlossen waren, konnten wir den Ballon starten und anschließend bergen.

Auswertung

-> Hauptartikel: Auswertung

Trotz erschwerten Bedingungen konnte ein Großteil der Daten geborgen und Ausgewertet werden.

Anforderungsabdeckung.pdf

Fazit

-> Hauptartikel: Fazit

Nach erfolgreichem Abschluss des Projekts lassen sich einige Lehren ziehen.

Installationsanleitung

Installation