Lehrveranstaltung Labor Robotik

Die Inhalte und Lernziele der Lehrveranstaltung Labor Robotik finden Sie im Modulhandbuch.
Als Roboter kommen AMRs vom Typ Pioneer der Firma Adept Mobile Robots zum Einsatz.

Voraussetzungen

Dies ist eine Liste von Kenntnissen und Fertigkeiten die Sie für den Besuch der LV Labor Robotik mitbringen sollten. Falls Sie einige dieser Punkte nicht beherrschen, sollten Sie sich diese im Selbststudium erarbeiten. Sollten Sie dabei Unterstützung benötigen kommen Sie gerne auf uns zu.


Objektorientierte Programmierung in C++
In der LV werden sie eigene Roboter Verhalten mittels ARIA umsetzen. ARIA ist eine objektorientierte Programmierschnittstelle(API) zur Roboterprogrammierung und ist in C++ geschrieben. Wenn Sie Ihre C++ Kenntnisse verbessern wollen empfehlen wir Ihnen das Buch Moderne C++ Programmierung.


Linux
Als Betriebssystem kommt im Labor Linux zum Einsatz. Grundkenntnisse in der Verwendung von Linux sollten Sie sich daher aneignen. Dafür empfehlen wir das Buch Keine Angst vor Linux.


Durchführung eines Softwareprojektes
Da die Prüfung der LV in Form von einer praktischen Hausarbeit durchgeführt wird. Sollten Sie in der Lage sein ein Softwareprojekt selbstständig in einer Gruppe durchzuführen. Einen hilfreichen Artikel zur Durchführung eines Softwareprojekts können Sie ebenfalls hier im Wiki finden. Dabei sollen Sie ihre Software während der Entwicklung mit Git verwalten. Einen Einstieg in Git bietet  dieses (github.io) oder dieses (Atlassian) Tutorial. Für weitere Informationen empfehlen wir das offizielle Git-Buch. Um den Einstieg weiter zu erleichtern kann man Git auch über einen GUI-Client bedienen. Unter Linux hat sich insbesondere SmartGit bewehrt.

Um Konzepte zu entwickeln und zu vermitteln, bietet es sich an, diese in Form von Grafiken und Diagrammen zu veranschaulichen. Dafür sollten Sie u.a. UML 2.0 einsetzen. Ein Tool dafür ist beispielsweise LucidChart. Anschauliche Informationen zu UML können Sie direkt aus der Spezifikation entnehmen. Klassendiagramme sollten Sie dabei auf die wesentlichen Kernelemente reduzieren. Auch bei der Erstellung von Zustandsautomaten sollten Sie sich an die Spezifikation von UML halten. Das Entwurfsmuster zur Implementierung von Zustandsautomaten können Sie im Kapitel 3.2.2 von Moderne C++ Programmierung nachlesen.

Zu jedem Softwareprojekt gehört natürlich auch eine Dokumentation. Diese sollen Sie mit dem Textsatzsystem Latex anfertigen. Verwenden Sie dafür diese Vorlage. Ein gutes Buch(Latex - Einführung in das Textsatzsystem) können Sie im IT-ServicePoint des Rechenzentrums der Hochschule käuflich als PDF erwerben.

Leistungsnachweis

Der Leistungsnachweis der LV besteht aus der Erstellung eines Projektplans für die Hausarbeit, sowie die Präsentation der im Projektplan spezifizierten Meilensteine. Hilfe bei der Erstellung des Projektplans bietet der oben bereits erwähnte Artikel Durchführung eines Softwareprojekts.

Im Projektplan definieren Sie die für Ihr Projekt benötigten Arbeitspakete und schätzen die dafür benötigten Arbeitsstunden ab. Sie Definieren Projektphasen, die durch Meilensteine zeitlich Terminiert sind. Alle Arbeitspakete werden einer Projektphase und min. einem Bearbeiter zugewiesen. Alle Bearbeiter müssen in ähnlichem Umfang an Dokumentation sowie Quellcode mitwirken.

Die Meilensteine werden bei den Übungsterminen durch den Dozenten abgenommen. Sollten sie einen Meilenstein zeitlich nicht einhalten können präsentieren Sie ihren aktuellen Stand, legen die Ursachen für die Verzögerung dar und passen bei bedarf die Planung für die zukünftigen Meilensteine an.

Prüfung

Die Prüfung wird in der LV in Form einer Hausarbeit durchgeführt. Das bedeutet Sie entwickeln in Gruppen zu je zwei Personen ein Programm, dass den Roboter autonom eine Aufgabe lösen lässt. Die Aufgabe für den Roboter können Sie in Absprache mit den Dozenten selbst definieren, oder Sie wählen eine vorgegebene Aufgabenstellung.

Die Prüfung umfasst die Entwicklung der Software, das Schreiben einer Dokumentation, sowie ein Kolloquium incl. Verteidigungsgespräch. Quellcode sowie Dokumentation sind spätestens eine Woche vor dem Termin des Kolloquiums abzugeben.

Geben Sie in Ihrem Quellcode auf Klassen, bzw. Funktions-ebene und in der Dokumentation je Kapitel, bzw. Abschnitt an wer der Author ist.

Sollten Sie Funktionen oder Algorithmen dritter verwenden ist Quelle und Author anzugeben. Fremder Programmcode muss dem Dozenten auf nachfrage erklärt werden können.

Literatur
  • Ralf Schneeweiß: Moderne C++ Programmierung - Klassen, Templates, Design Patterns Springer Verlag, 2012, ISBN: 978-3-642-21428-8 (Print) 978-3-642-21429-5 (Online)
  • Christine Wolfinger: Keine Angst vor Linux/Unix - Ein Lehrbuch für Linux- und Unix-Anwender Springer Verlag, 2013, ISBN: 978-3-642-32078-1 (Print) 978-3-642-32079-8 (Online)
  • Scott Chacon und Ben Straub: Pro Git Apress, 2014, ISBN-13: 978-1484200773

Kontakt

Christoph Zinnen
Christoph Zinnen, B. Sc.
Assistent FB Informatik

Kontakt

+49 651 8103-579
+49 651 8103-454

Standort

Schneidershof | Gebäude O | Raum 1