kramann.info
© Guido Kramann

Login: Passwort:










kramann.info
© Guido Kramann

Login: Passwort:




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

  1. Organisatorisches
  2. Vorstellung möglicher Projektthemen
  3. Projekt Museumsroboter
  4. Vorlesung OOP
  5. Gruppenbildung und Themenwahl
  6. Start der Projektgruppen
  7. 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

  1. Es gibt einige Themen, die in der Vergangenheit eine Rolle gespielt haben, diese könnten in Ein-Personen-Projekten fortgeführt werden.
  2. 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:

  1. Spielen, mit einem Gymnastikball
  2. Historische Darstellung des Museums
  3. 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:

  1. Erleichtert die Arbeitsteilung im Projekt
  2. Teilergebnisse können auch in anderen Zusammenhängen getestet und verwendet werden
  3. Module können leicht durch Nachfolgemodule ersetzt werden
  4. 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":

Ein Test mit gpt4all unter Verwendung des deutschen Sprachmodells

Bild 0-1: Ein Test mit gpt4all unter Verwendung des deutschen Sprachmodells "Mistral".

Folgende Komponenten liegen nahe zu besitzen:

  1. Sprachmodell
  2. TTS (Text to Speech)
  3. STT (Speech to text)
  4. Fahrwerk
  5. Kommunikationseinheit (Tablet?)
  6. Raumüberwachung und Telemetrie
  7. Koordinationseinheit bei der alle Fäden zusammenlaufen
Komponenten und ihre Vernetzung beim THB-Guide.

Bild 0-2: Komponenten und ihre Vernetzung beim THB-Guide.

Fragen
  1. Kann das LLM mittels eines Chats Infos über die THB lernen und kann dieser Chat dann beliebig fortgesetzt werden?
  2. Wie kann mit fehlerhaften Texten aus dem STT Modul umgegangen werden?
  3. Gibt es eine freie lokale Version eines STT?
  4. Findet sich zu jeder Plattform eine Library für WiFi und beispielsweise MTTY?
  5. Welches WiFi Protokoll macht am meisten Sinn (Verfügbarkeit auf verschiedenen Plattformen / Aufwand / Effizienz)?
  6. Schwarm oder Monolith? (vergl. weiter unten)
  7. 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)
  8. 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
THB-Robot.

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

  1. Organisatorisches
  2. Vorlesung OOP von SRT, siehe dort day by day.
  3. Übung zur Vorlesung OOP von SRT
  4. Projektangebot Gruppe "Roboter Guide"
  5. Projektangebot Gruppe "Kart"
  6. 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
  1. gpt4all starten
  2. Modell "Phi-3 Mini Instruct" installieren
  3. Settings ... Enable Local API Server setzen
  4. Processing: Library "HTTP Requests for Processing" installieren
  5. 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

  1. Organisatorisches
  2. Projektbericht als Webseite auf kramann.info

1. Organisatorisches

Bitte laden Sie folgende Inhalte bis zum 12.01. auf Moodle hoch:


Kurs ID: 10943


  1. Ihre Präsentation als pdf (Videos können als Links auf ungelistete youtube-Videos eingefügt werden)
  2. Ihren Projektbericht im passenden Format für kramann.info als .zip-File (vergl. weiter unten)
  3. Die aktuellste Version der von Ihnen entwickelten Software-Komponenten (.zip-File)
  4. Sonstige von Ihnen verwendete und verfügbare Materialien (.zip-File mit Datenblättern, Wissenschaftlichen Artikeln usw.)
  5. 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:

Obigen Angaben im

Bild 0-4: Obigen Angaben im "Kurzschrift-Format".

Ein paar Hinweise:

  • 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

Einführung zu PHP:

67_Echtzeitsysteme/09_Internetprogrammierung/02_PHP_Programmierung
67_Echtzeitsysteme/09_Internetprogrammierung/03_PHP_OOP