Projektstudium im Wintersemester 2025/26
(EN google-translate)
(PL google-translate)
- Studierendengruppen: 5-3-MT
|
- Hier bei "day by day" werden chronologisch im Verlauf des Semesters die behandelten Inhalte vermerkt.
- Meistens werden Links innerhalb von kramann.info angegeben, wo der jeweils behandelte Stoff dargestellt wird.
- Zur Orientierung finden Sie auf kramann.info auch noch das "day by day" der gleichen Lehrveranstaltung vom vorangehenden Jahr.
- Die Prüfung in diesem Fach ist Semester begleitend und besteht in der Präsentation einer Projektarbeit am Ende der Vorlesungszeit.
|
Projektstudium Montag, 17.11.2025
Themen
- Organisatorisches
- Vorstellung möglicher Projektthemen
- Projekt Museumsroboter
- Vorlesung OOP
- Gruppenbildung und Themenwahl
- Start der Projektgruppen
- GETROFFENE VEREINBARUNGEN
|
1. Organisatorisches -- Idee zur zeitlichen Organisation der Fächer "Projektstudium" und "Simulations- und Regelungstechnik"
MONTAG
10:15-11:45 Vorlesung, Thema OOP (gehört zu Simulations- und Regelungstechnik, Grundlagen sowohl für das Projektstudium als auch für Simulations- und Regelungstechnik)
12:15-15:15 Projektstudium und Konsultationen
DIENSTAG
8:30-10 Kernvorlesung Simulations- und Regelungstechnik
10-11:30 erster Übungsblock
12:15-13:45 zweiter Übungsblock
MITTWOCH
10:30-13:30 Projektstudium und Konsultationen (erste zwei Stunden überlappen sich mit der Projektarbeit eines Masterkurses)
Code 0-1: Idee zur zeitlichen Organisation der Fächer "Projektstudium" und "Simulations- und Regelungstechnik"
2. Vorstellung möglicher Projektthemen
- Es gibt einige Themen, die in der Vergangenheit eine Rolle gespielt haben, diese könnten in Ein-Personen-Projekten fortgeführt werden.
- Es soll ein Angebot zu einem Mehr-Personen-Projekt geben, bei dem alle gemeinsam an einer Sache arbeiten, sich aber im Verlauf der Arbeit jeweils auf ein besonderes Thema spezialisieren, Arbeitstitel ist "Museumsroboter"
|
3. Projekt Museumsroboter
Ein historisches Beispiel
- Im Museum für Kommunikation in Berlin gab es im Atrium dort vor vielen Jahren (2000er) eine Gruppe an drei Robotern, die die Aufgabe hatten, sich um die Besucher*Innen zu kümmern.
- Mit der damaligen Technik war die Aufgabenteilung der drei Roboter sehr klar festgelegt und der tatsächliche Nutzen recht begrenzt.
- Siehe beispielsweise:
|
http://www.seins-form.de/work/projekte/roboter/
https://www.youtube.com/watch?v=RR1yTaHp2g4
Die drei Roboter hatten klare Aufgaben:
- Spielen, mit einem Gymnastikball
- Historische Darstellung des Museums
- Leute geleiten / herumführen
|
Das Design orientierte sich an der jeweiligen Aufgabe.
"Spielen" -- der "Mach was"-Roboter
Aktuelles überarbeitetes Konzept: https://www.mfk-berlin.de/
Aufbau eines Roboter-THB-Guides unter Verwendung eines lokalen großen Sprachmodells als verteiltes System
- Bei Projekten tritt häufig das Problem der überbordenden Komplexität auf:
- Dinge werden mit der Zeit so komplex, dass sie von den Projektverantwortlichen nicht mehr bewältigt werden können.
- Oder es gibt einen Generationenwechsel bei den Projektverantwortlichen und die nachfolgende Generation kommt mit der zuvor geleisteten Arbeit nicht zurecht.
|
- Grundsätzlich lässt sich Komplexität durch Modularisierung und Hierarchisierung verringern.
- Jedoch erfordert dies eine klare Definition, wie die Module miteinander interagieren sollen.
- Es müssen deshalb klare Kommunikationsschnittstellen definiert werden.
|
Idee für ein Grundkonzept: Die Module kommunizieren über WiFi unter Ausnutzung von Websockets, oder UDP oder des MQTT Protokolls
https://de.wikipedia.org/wiki/User_Datagram_Protocol
https://de.wikipedia.org/wiki/MQTT
https://blog.doubleslash.de/software-technologien/mqtt-fuer-dummies/
Hinweise zu Internetprogrammierung
Vorteil von Modulen, die über WiFi miteinander kommunizieren:
- Erleichtert die Arbeitsteilung im Projekt
- Teilergebnisse können auch in anderen Zusammenhängen getestet und verwendet werden
- Module können leicht durch Nachfolgemodule ersetzt werden
- Das Gesamtkonzept lässt sich leichter verändern und weiterentwickeln
|
Lokales Large Language Model (LLM)
Auf der Grundlage des nachfolgenden kostenfreien und quelloffenen Projektes ist es sehr leicht geworden,
ein LLM lokal zu installieren:
WIE ES GEHT: https://www.linux-community.de/ausgaben/linuxuser/2024/09/ki-chatbots-lokal-ohne-cloudanbindung-nutzen/
INSTALLER: https://www.nomic.ai/gpt4all
https://de.wikipedia.org/wiki/Large_Language_Model
Roboter-THB-Guide rund um ein LLM
Ein Test mit gpt4all unter Verwendung des deutschen Sprachmodells "Mistral":
Bild 0-1: Ein Test mit gpt4all unter Verwendung des deutschen Sprachmodells "Mistral".
Folgende Komponenten liegen nahe zu besitzen:
- Sprachmodell
- TTS (Text to Speech)
- STT (Speech to text)
- Fahrwerk
- Kommunikationseinheit (Tablet?)
- Raumüberwachung und Telemetrie
- Koordinationseinheit bei der alle Fäden zusammenlaufen
|
Bild 0-2: Komponenten und ihre Vernetzung beim THB-Guide.
Fragen
- Kann das LLM mittels eines Chats Infos über die THB lernen und kann dieser Chat dann beliebig fortgesetzt werden?
- Wie kann mit fehlerhaften Texten aus dem STT Modul umgegangen werden?
- Gibt es eine freie lokale Version eines STT?
- Findet sich zu jeder Plattform eine Library für WiFi und beispielsweise MTTY?
- Welches WiFi Protokoll macht am meisten Sinn (Verfügbarkeit auf verschiedenen Plattformen / Aufwand / Effizienz)?
- Schwarm oder Monolith? (vergl. weiter unten)
- Was läuft auf dem Roboter, was auf externen Systemen? (Frage der Informationsmenge, die über die Schnittstellen läuft, je nach Wahl, wo man schneidet)
- Was könnte leicht umgesetzt werden, was wäre zu aufwändig, was wäre lohnenswert im Hinblick auf spätere Entwicklungen?
|
Frühere Konzeptstudie im Vergleich:
THB-Robot: https://youtu.be/0B8kjcCu4zk
Bild 0-3: THB-Robot.
Warum einen einzelnen Roboter verwenden, wenn man flexibler mit einem Schwarm ist?
Schwarm statt einzelner Roboter: https://youtu.be/YS-1RRLGtgQ
siehe auch: 05_esp32AV/30_esp32swarm
Variante mit induktiver Ladevorrichtung: https://youtu.be/60fEn0f_MnM
siehe auch: 83_AV/03_Umsetzung/05_TURTLE
Thunfischschwarm aus "Findet Nemo": https://www.youtube.com/watch?v=gArrbrjUlnA
Warum einen Roboter bauen, wenn Besucher*Innen ebensogut die Funktionalität als Smartwatch mit sich tragen können?
Steuerung einer Smarthome-Lampe per Smartwatch über UDP https://youtu.be/KKv1UixNgjY
siehe auch: 06_TWATCH
ähnliche Ansteuerung, aber Verwendung eines Arduino nano 33 IoT: https://youtu.be/22C3ua4X7wA
Erstsemesterprojekt Staubsaugroboter: https://youtu.be/wX4kJfI7e8A
siehe auch: 83_AV/07_Saugroboter
Linienverfolgung mit esp32 mit Videostream per WiFi: https://youtu.be/N0bxvH8GV-A
Verwendung einer GPU: 84_Jetson
4. Vorlesung OOP
- Es handelt sich um eine ergänzende Veranstaltung, um notwendige Grundlagen zu vermitteln.
- Unterthemen sind: Internetprogrammierung, Programmierung von Android Devices, aber vor allem auch Objekt Orientierte Programmierung.
- Bei Simulations- und Regelungstechnik werden Fertigkeiten in der Programmierung gebraucht, um Simulationen zu visualisieren, optimieren, oder besondere Systeme, wie Fuzzy-Regler, zu implementieren.
|
Präsentation zu TTS auf der Basis Android-Processing
siehe auch: 94_VSI/03_TTS
https://android.processing.org/
36_Java
78_Processing
79_Deep_Learning
5. Gruppenbildung und Themenwahl
6. Start der Projektgruppen
7. GETROFFENE VEREINBARUNGEN
- Es gibt eine "Kart-Gruppe" und eine "Roboter Guide-Gruppe"
|
BEIDE GRUPPEN...
- ...bereiten für Montag den 24.11. ein Projektangebot vor,
- ...sehen eine WiFi-Schnittstelle, voraussichtlich mit UDP Protokoll für ihre Systeme vor,
- ...setzen ihre Software, sofern neu, objektorientiert um,
- ...präsentieren am letzten Unterrichtstag ihr System und geben dazu einen Bericht ab,
- ...nehmen eine Differenzierung der Aufgaben vor, für die die Mitglieder verantwortlich sind, was sich dann in der Präsentation und den Berichtsteilen abbildet,
|
AUFGABENTEILE der Kart-Gruppe, KLEINES FAHRZEUG (vorläufig / unvollständig)
- Programmeirung eines elektrischen Differentials
- WiFi basierte Fernsteuerung samt Übertragung aller Sensordaten
- Aufzeichnung der Sensordaten und exemplarische Analyse mittels Laptop
- Rudimentäre Programmierung eines Fahrmanövers (Einparken?), geregelt von der WiFi Gegenstelle (Mobile Device oder Laptop)
|
AUFGABENTEILE der Kart-Gruppe, GROSSES FAHRZEUG (vorläufig / unvollständig)
- Entwurf und 3D-Druck fehlender Komponenten
- Konsolidierung des CAN-Bus-Systems
- Fertigstellung der Verbindung zwischen Gaspedal und Antrieb (Fehlende Sensoren ergänzen)
|
AUFGABENTEILE der Roboter Guide-Gruppe (vorläufig / unvollständig)
- Recherche zu möglichen Fahrplattformen und Bau / Anpassung / Kauf
- Implementierung des LLM und Bereitstellung einer Web-Schnittstelle
- Implementierung eines TTS Moduls (beispielsweise Android-Processing)
- Implementierung eines STT Moduls und Bereitstellung einer Web-Schnittstelle
- Entwurf einer generellen Kontrolleinheit / Gesamtkonzept (Was kann das System am Ende?)
- Bereitstellung einer Web-Schnittstelle im Hauptsystem
- Entwicklung der Kommunikationseinheit
- Konzept und Entwicklung der Navigation
|
Projektstudium Montag, 24.11.2025
Themen
- Organisatorisches
- Vorlesung OOP von SRT, siehe dort day by day.
- Übung zur Vorlesung OOP von SRT
- Projektangebot Gruppe "Roboter Guide"
- Projektangebot Gruppe "Kart"
- Start der Projektarbeit in beiden Gruppen
|
1. Organisatorisches
- Klärung zur Handhabung der Karts: Fahrverbot!
- Besonderheiten bei der zeitlichen Planung in der aktuellen Woche
|
2. Vorlesung OOP von SRT, siehe dort day by day.
siehe: kramann.info/03_WS2025_26/04_SRT_day_by_day
3. Übung zur Vorlesung OOP von SRT
siehe: kramann.info/03_WS2025_26/04_SRT_day_by_day
4. Projektangebot Gruppe "Roboter Guide"
5. Projektangebot Gruppe "Kart"
6. Start der Projektarbeit in beiden Gruppen
Projektstudium Montag, 08.12.2025
Verwendung von gpt4all mit Processing
- gpt4all starten
- Modell "Phi-3 Mini Instruct" installieren
- Settings ... Enable Local API Server setzen
- Processing: Library "HTTP Requests for Processing" installieren
- Nachfolgendes Beispiel in Processing starten:
|
GPT4ALL_001.zip -- Testweise einfache Anfrage über HTTP bei gpt4all als Processing-Sketch.
'{
"model": "Phi-3 Mini Instruct",
"messages": [{"role":"user","content":"hi, who are you?"}],
"max_tokens": 2048,
"temperature": 0.7
}'
Code 0-2: Anfrage im JSON Format.
Reponse Content:{"choices":[{"finish_reason":"stop","index":0,"logprobs":null,"message":{"content": ////
" Hello! I'm an AI digital assistant designed to provide information, answer questions, ////
and assist with various tasks. How can I help you today?","role":"assistant"},"references":null}], ////
"created":1765194858,"id":"placeholder","model":"Phi-3 Mini Instruct","object":"chat.completion", ////
"usage":{"completion_tokens":31,"prompt_tokens":11,"total_tokens":42}}
Reponse Content-Length Header: 436
Code 0-3: Antwort von gpt4all
Quelle für ein JSON-Beispiel mit Processing: https://stackoverflow.com/questions/32382005/how-could-i-do-the-same-with-processing-that-this-curl-command-does
GPT4ALL_002.zip -- wie oben, aber Verwendung des deutschen LLM "EM German Mistral".
TTS001_2025.zip -- TTS mit Processing (tts library muss installiert sein)
Vergleiche: https://stackoverflow.com/questions/53008424/how-to-fix-error-cannot-be-cast-to-com-sun-speech-freetts-voicedirectory
Projektstudium Montag, 15.12.2025 -- Praktische Einführung zur Verwendung von WiFi mit UDP
Themen
- Hinweise zu Internetprogrammierung
- Einrichtung eines Hotspots bei einem Android Device
- Einrichtung eines Hotspots bei einem einfachen Router
- Einrichten eines Hotspots bei einem Laptop unter Linux Xubuntu
- Datenübertragung mittels UDP zwischen zwei Processing-Programmen
- Datenübertragung mittels UDP bei einem Arduino-Mirkocontroller am Beispiel des Arduino NANO 33 IoT
- Datenübertragung mittels UDP bei einem Android-Device
- Datenübertragung mittels UDP bei einem ESP32 Mikrocontroller
|
1. Hinweise zu Internetprogrammierung
67_Echtzeitsysteme/09_Internetprogrammierung
67_Echtzeitsysteme/09_Internetprogrammierung/04_Java
2. Einrichtung eines Hotspots bei einem Android Device
05_esp32AV/01_Bauanleitung/01_Elektronik_und_Software/03_Videostream -- siehe Hotspot einrichten und starten und Bild 0-1
3. Einrichtung eines Hotspots bei einem einfachen Router
05_esp32AV/01_Bauanleitung/03_FAQs -- siehe unten bei "#9 Wie sollte ein W-LAN-Router für das esp32AV eingerichtet werden?"
4. Einrichten eines Hotspots bei einem Laptop unter Linux Xubuntu
08_Archiv/06_Ing/01_Bauplan/04_Hotspot
5. Datenübertragung mittels UDP zwischen zwei Processing-Programmen
- Nach Installieren der UDP-Library für Processing (Sketch...Library importieren) und Neustart von Processing, siehe in Processing:
- Datei...Beispiele...Contributed Libraries...UDP...udp
|
- Kopieren des Beispiels ins Sketchbook unter anderem Namen
- Testen und Analysieren
- Aufteilen in zwei getrennte Programme
- weiter unten: eines kommt auf einen Arduino.
|
6. Datenübertragung mittels UDP bei einem Arduino-Mirkocontroller am Beispiel des Arduino NANO 33 IoT
96_Arduino/30_Arduino_33_nano_IoT --- ganz ganz unten: "UPDATE 1 IMU Datenaustausch"
- Laden Sie Arduino Part: WiFi_IMU_Ardu001b.zip und Processing Part: WiFi_IMU_Proc001b.zip herunter.
- Gemeinsam: Testen, Analysieren und Variieren der beiden Programme.
|
7. Datenübertragung mittels UDP bei einem Android-Device
- Verwendung der KETAI Library um Beschleunigungswerte auszulesen.
- Kombination mit dem UDP-Beispiel für Processing weiter oben.
- WICHTIG: Sketchpermission INTERNET setzen!
|
8. Datenübertragung mittels UDP bei einem ESP32 Mikrocontroller
06_TWATCH/04_Simplified_Commands -- siehe WiFi.
Im Unterricht entstandene Processing-Projekte
UDP001_lokal.zip
UDP002empfangen.zip
UDP002senden.zip
UDP002sendenANDROID.zip -- Processing-Projekt für ein Android Device
Zahlen als Zeichenkette senden und beim Empfänger zurück wandeln:
UDP003senden.zip
UDP003empfangen.zip
Projektstudium Montag, 05.01.2026
Themen
- Organisatorisches
- Projektbericht als Webseite auf kramann.info
|
1. Organisatorisches
Bitte laden Sie folgende Inhalte bis zum 12.01. auf Moodle hoch:
Kurs ID: 10943
- Ihre Präsentation als pdf (Videos können als Links auf ungelistete youtube-Videos eingefügt werden)
- Ihren Projektbericht im passenden Format für kramann.info als .zip-File (vergl. weiter unten)
- Die aktuellste Version der von Ihnen entwickelten Software-Komponenten (.zip-File)
- Sonstige von Ihnen verwendete und verfügbare Materialien (.zip-File mit Datenblättern, Wissenschaftlichen Artikeln usw.)
- Ggf. Ihre Videos
|
2. Projektbericht als Webseite auf kramann.info
Sie finden eine Beschreibung dazu, wie Webseiten für kramann.info erstellt werden sollten
unter nachfolgendem Link:
89_Beispielseiten
Sie finden lokal auf den Linux-PCs ein älteres Abbild von kramann.info, an dem Sie sich orientieren können:
- Start mit "start XAMPP" auf Desktop
- Files zu finden unterhalb von: /mnt-system/htdocs
- Statt eines pdfs können Sie zur Präsentation auch die erstellten Webseiten verwenden:
|
Durch Drücken des Knopfes "slide" oben rechts werden Fließtexte (#p) temporär verborgen.
So sehen die obigen Angaben im "Kurzschrift-Format" folgendermaßen aus:
Bild 0-4: Obigen Angaben im "Kurzschrift-Format".
- kramann.info arbeitet mit Serverseitigen Skripten in der Sprache php
- Die HTML-Seite wird aus der index.php Seite generiert.
- Die index.php Seite liest den Inhalt der inhalt.inc Seite ein und generiert daraus HTML
- inhalt.inc Dateien sind im proprietären "Kurzschrift-Format" zu schreiben.
- Kurzschrift ist zeilenorientiert und die verfügbaren Elemente entsprechen weitestgehend denen, die in HTML verfügbaren Tags.
- Die Navigation wird automatisch aus der Ordnerstruktur und den Prefixen mit den Kapitelnummern 01_ 02_ 03_ usw. generiert:
|
77_Mein_Bericht
01_Zusammenfassung
02_Einleitung
02_Hauptteil
03_Fazit
Code 0-4: Ordnerstruktur
Wählen Sie spezifische Namen, keine allgemeinen! Beispielsweise 02_Technikstand_LLMs statt 02_Einleitung
Ergänzend sei hier die Struktur für die day_by_day-Seiten ergänzt:
03_WS2025_26.zip
67_Echtzeitsysteme/09_Internetprogrammierung/02_PHP_Programmierung
67_Echtzeitsysteme/09_Internetprogrammierung/03_PHP_OOP