Druckansicht der Internetadresse:

Fakultät für Mathematik, Physik und Informatik

Angewandte Informatik III - Robotik und eingebettete Systeme - Prof. Dr. Dominik HENRICH

Seite drucken

Bachelorstudium

Bachelor-Arbeit (INF 101/102)Einklappen

       

Lernziele

Die schriftliche Ausarbeitung dient dazu, die Ergebnisse der Arbeit in wissenschaftlicher Weise angemessen darzustellen (kommunikative Kompetenz).

Dem Studierenden wird hierzu eine fachspezifische Einführung in das Verfassen wissenschaftlicher Arbeiten vermittelt.

Abhängig vom anbietenden Lehrstuhl wird ein Thema der Angewandten Informatik und/oder eines Anwendungsfaches bearbeitet und hinsichtlich einer konkreten Aufgabenstellung untersucht und beschrieben.

Studiengänge

  • Angewandte Informatik (Bachelor)
  • Informatik (Bachelor)

Dozenten

Vorkenntnisse

  • abhängig vom gewählten Thema

Themen

Bitte wissenschaftliche Mitarbeiter ansprechen.

Links

Bachelor-Seminar (INF 104)Einklappen

Inhalt der Lehrveranstaltung

In diesem Seminar werden die in den einführenden Informatikveranstaltungen erworbenen Kenntnisse vertieft. Die Themen können Bereiche wie Sensordatenverarbeitung, Technische Informatik, Eingebettete Systeme, Robotik, Lernende Systeme etc. umfassen.

Der Leistungsnachweis besteht aus der selbständigen Bearbeitung eines Themas, der schriftlichen Ausarbeitung sowie einer abschließenden Präsentation.

Studiengänge

  • Angewandte Informatik (Bachelor)

Dozenten

Vorkenntnisse

  • abhängig vom Thema

Termine

Vorbesprechung siehe eLearning

Links

Bachelor-Praktikum / Software-Praktikum (INF 105)Einklappen

Aufgabenstellungen

Die Aufgabenstellung im Praktikum ändert sich von Semester zu Semester.
Bislang wurden die folgenden Aufgabenstellungen angeboten:

Aufgabenstellung Patchbot

In der Aufgabenstellung Patchbot ist ein Computerspiel zu programmieren, das Spielern die Programmierung eines Roboters nahebringt.

Die Geschichte: Wir schreiben das Jahr 110101. Um den steigenden Rohstoffverbrauch zu befriedigen, greift die Menschheit bereits seit Jahrhunderten nach den Sternen. Da biologische Lebewesen zu zerbrechlich für die weite Reise durchs dunkle Weltall sind, haben Forscher autonome Roboter zur Rohstoffsuche entwickelt. Diese Roboter sind intelligent genug, lohnende Rohstoffe automatisch zu finden, abzubauen, und zur Erde zu schicken.

Jahrzehnte nach dem Programmstart bricht der Kontakt zu den entfernten Roboterkolonien unerwartet ab. Ein Codereview führt Programmspezialisten schnell zu der Ursache für diese Entwicklung: Ein unbeabsichtigter Programmierfehler im Netzwerkcode hat sich über Hyperfunk in Sekundenschnelle von einem Roboter zum nächsten ausgebreitet. Alle betroffenen Roboter spielen verrückt: Sie bewachen unermüdlich ihre metallischen Kolonien, während auf der Erde die Vorräte knapp werden.

Versuche, den Programmfehler aus der Ferne zu beseitigen, schlagen fehl. Es bleibt nur eine Lösung: Ein alter Roboterprototyp, Patchbot, besitzt noch keine Empfangseinheit für Hyperfunk, daher ist er vom Programmierfehler nicht betroffen. Allerdings fehlt Patchbot auch die autonome Intelligenz. Mit einer hastigen, manuellen Programmierung packen die Entwickler Patchbot in die nächste Rakete und schicken ihn los in Richtung Kolonien. Dort angekommen muss Patchbot in den unterirdischen Stollen den Hauptserver jeder Kolonie finden und die Systemsoftware über eine veraltete, physikalische Notfall-Schnittstelle aktualisieren.

Zur Realisierung des Patchbot-Spiels sind die folgenden Teilaufgaben zu bearbeiten:

  • Textdatei mit Umgebungsdefinition laden
  • Bilddateien mit Roboter- und Umgebungsgrafiken einlesen
  • GUI für die Anwendung erstellen
  • Umgebung mit Robotern darstellen
  • Ansteuerung von Patchbot programmieren
  • Pfadfindung durch den Dijkstra-Algorithmus realisieren
  • Gegner-KI mittels Zustandsautomaten implementieren
  • Testplan für die Implementierung aufstellen und abarbeiten

Aufgabenstellung Biosim

In der Aufgabenstellung Biosim ist eine interaktive Biologiesimulation zu programmieren. Spielziel dieser Simulation ist es, im Rahmen einer Sandkastenumgebung ein funktionierendes Ökosystem aus verscheidenen Kreaturentypen (z.B. Gras, Obstbäume, Kühe, Fische oder Tiger) zusammenzustellen.

Dazu bietet die Simulation dem Anwender die Möglichkeit, aus einer vorgegebenen Liste Kreaturen auszuwählen. Anschliessend kann der Nutzer die Kreaturen nach Belieben auf einer virtuellen, zufällig generierten Umgebungskarte plazieren.

Weitere Schaltflächen starten oder pausieren die Simulation. Während dem Simulationsablauf bewegen sich die Kreaturen entsprechend den Regeln einer einfachen KI. Pflanzen verbreiten sich beispielsweise, sofern genügend Raum im Umkreis vorhanden ist. Tiere wandern umher und ruhen sich daraufhin aus, oder suchen Nahrung, um ihren Hunger zu stillen. Eine begrenzte Lebenszeit erfordert schliesslich die Partnersuche zur Fortpflanzung.

Zur Realisierung der Biologiesimulation sind die folgenden Teilaufgaben zu bearbeiten:

Textdatei mit Kreatureigenschaften laden

Bilddateien mit Kreatur- und Umgebungsgrafiken einlesen

  • GUI für die Anwendung erstellen
  • Zufällige Umgebungskarte mit Perlin Noise erzeugen und darstellen
  • Plazierung und Darstellung von Kreaturen umsetzen
  • Pfadfindung durch den A*-Algorithmus realisieren
  • Kreaturen-KI mittels Zustandsautomaten implementieren
  • Testplan für die Implementierung aufstellen und abarbeiten

Ablauf

Alle Teilaufgaben werden zu Beginn des Praktikums zur Verfügung gestellt. Die Abarbeitung erfolgt im Anschluß mit freier Zeiteinteilung. Bis zum Semesterende müssen alle Arbeiten abgeschlossen sein.

Alle Teilaufgaben sind einzeln zu bearbeiten. Gruppenarbeit sowie das Tauschen von Quellcode sind nicht zulässig.

Zum Bestehen muss jede Teilaufgabe in Form eines bewerteten Testats abgeschlossen werden. Die Endnote ergibt sich aus den individuellen Leistungen in allen Testaten. An jedem Termin ist maximal ein Testat möglich, auf eine fristgerechte Abgabe der Testate unter dieser Bedingung ist selbst zu achten.

Alle Teilaufgaben sind in der Programmiersprache C++ umzusetzen. Als IDE ist Visual Studio unter Windows zu verwenden. Die GUI-Bibliothek kann für die Bearbeitung frei gewählt werden. Weitere Bibliotheken (außer der Standardbibliothek) sind nicht zulässig.

Dozenten

Termine

Es findet ein wöchentliches Treffen mit Hilfestellungen zur Aufgabenbearbeitung und zur Klärung offener Fragen statt. Zusätzlich empfiehlt sich die Teilnahme an der separat angebotenen Vorlesung "Fortgeschrittene Programmierkonzepte in C++"".

Ort und Zeit siehe eLearning und Vorlesungsverzeichnis.

Lernziele

Die Studierenden entwickeln unter Anleitung kleinere Softwaresysteme in kleinen Gruppen. Im Vordergrund steht der Erwerb von algorithmischen, Design- und Realisierungskompetenzen. Die Studierenden sollen in die Lage versetzt werden, Software beschränkten Umfangs und beschränkten Schwierigkeitsgrads systematisch zu entwickeln (methodische Kompetenz) sowie die von ihnen erarbeitete Lösung zu präsentieren (kommunikative Kompetenz).

Studiengänge

  • Angewandte Informatik (Bachelor)
  • Computer Science (Bachelor)
  • Lehramtsstudiengang Informatik (Staatsexamen)

Vorkenntnisse

  • Konzepte der Programmierung (INF 107)
  • Algorithmen und Datenstrukturen (INF 109)

Links

Bachelor-Projekt (Robotik) (INF 106)Einklappen

Lernziele

Die Studierenden sollen in der Lage sein, im Team eine umfangreiche Projektaufgabe zu lösen. Diese Projektaufgabe soll interdisziplinären Charakter aufweisen, d.h. sie soll einem der Anwendungsfächer nahe liegen.

Im Einzelnen sind folgende Projektaufgaben von den Teilnehmern zu realisieren: die Strukturierung des Problems (z.B. in Form eines Lastenhefts), die Definition einer Lösung (z.B. in Form eines Pflichtenhefts), die Organisation der Umsetzung in Teilprojekten, den Test der Implementierung und die Präsentation und Abnahme der Lösung.

Fachübergreifende Kompetenzen werden durch interdisziplinäres Arbeiten erworben. Ein weiterer Schwerpunkt liegt auf der Vermittlung von Projektmanagementkompetenzen und kommunikativen Kompetenzen (Kooperation im Projektteam).

Inhalt

SoSe 20: Selfie-Bot: Bildbasierte Steuerung einer Drohne
In diesem Projekt sollen die Studenten praktische Erfahrungen in der Robotik, Computersehen und Projektorganisation sammeln.  Mit der DJI Tello Drohne gibt es eine kostengünstige, programmierbare Kameradrohne. Im Rahmen dieses Projekt werden zunächst Kameradaten aufgenommen, aufbereitet und ausgewertet. Dieses Wissen kann anschließend verwendet werden, um die Drohne in unterschiedlichen Anwendungen zu steuern. Beispiele dafür sind die Gestenerkennung und Tracking von Menschen. 

Studiengänge

  • Angewandte Informatik (Bachelor)
  • Informatik (Bachelor)

Dozenten

Vorkenntnisse

Termine

  • Ort und Zeit: nach Vereinbarung (Festlegung in der Vorbesprechung)
  • Vorbesprechung: siehe Elearning Kurs

Themen der vergangenen Jahre

    • WS 18/19: FrAnkI3: Intuitive Roboterprogrammierung

    • WS 17/18: PACMAM (Portable Adroit Customiseable Match of Autonomous Mindstorms)

    • WS 15/16: Interaktiver Tisch

  • WS 14/15: 3D-Rekonstruktion mit einem Drehteller
  • WS 13/14: Interaktives 3D-Geometrie-Programm

Links

 

Betriebssysteme (INF 110)Einklappen

 Inhalt der Lehrveranstaltung

bs_tuxbs_windows-logobs_mac-logo

Die Vorlesung befasst sich mit dem Aufbau und der Arbeitsweise von Betriebssystemen, der Software zur Organisation von Rechnersystemen. Es werden Kenntnisse vermittelt über die grundlegenden Strukturen zur Verwaltung von Prozessen, Hauptspeicher, Dateien und Peripheriegeräten sowie über die Sicherheit von Rechnersystemen.

Studiengänge

  • Angewandte Informatik (Bachelor)
  • Lehramtsstudiengang Informatik (Staatsexamen)

Dozenten

Vorkenntnisse

  • Kenntnis einer höheren prozeduralen Programmiersprache

Links

 


Verantwortlich für die Redaktion: Simon Heckl

Twitter Youtube-Kanal Blog Kontakt