kramann.info
© Guido Kramann

Login: Passwort:










kramann.info
© Guido Kramann

Login: Passwort:




Entwicklung autonomer mobiler Systeme / Development of Autonomous Mobile Systems im Sommersemester 2026

(EN google-translate)

(PL google-translate)

EN: Development of Autonomous Mobile Systems in the Summer Semester 2026

  • Nachfolgend wird im Verlauf des Semesters chronologisch vermerkt, welche Inhalte wann im Semester durchgenommen wurden.
  • Sie finden die Lehrinhalte entweder direkt hier, oder es werden hier Links auf die Inhalte angegeben.
  • Obwohl die Inhalte zum Kurs hier stehen, wird darum gebeten sich trotzdem im entsprechenden Moodle-Kurs der THB anzumelden, um besser kommunizieren zu können.
  • Beachten Sie auch die Angaben zur Prüfung hier:

EN:


  • The following section provides a chronological overview of the course content and when it was covered during the semester.
  • You can find the course materials either directly here or via the links provided.
  • Although the course content is available here, you are still asked to register for the corresponding THB Moodle course to facilitate better communication.
  • Please also note the information regarding the exam here:

04_SoSe2026 -- Einstiegsseite zum Sommersemester 2026 mit Angaben zu Räumen, Zeiten und den Prüfungen der einzelnen Fächer. / Homepage for the 2026 summer semester, including information on classrooms, schedules, and exams for each course.

#1 Mo, 23.03.2026


THEMEN HEUTE

  1. Worum geht es?
  2. Motivation -- Warum ist das wichtig?
  3. Welche Themen werden behandelt?
  4. Welche Leistungen sollten Sie erbringen? / Organisatorisches
  5. Einstieg
  6. Hands on -- Die erste Übung

EN:

  1. What is this about?
  2. Motivation -- Why is this important?
  3. What topics will be covered?
  4. What are your responsibilities? / Organizational details
  5. Getting Started
  6. Hands-on -- The first exercise

1. Worum geht es?

Der Stand der Technik im Bereich Autonome Mobile Systeme verändert sich sehr schnell. Darum wird ein Teil der Lehrveranstaltung seminaristisch gestaltet, um diesen Technikstand in den Fokus zu bekommen.

Zuerst wird man bei dem Thema an den Individualverkehr denken und dieser Bereich wird auch inhaltlich einen Hauptteil einnehmen. Seit den 1980er Jahren wird auf diesem Gebiet bereits auch mit Feldversuchen geforscht.

Viel früher, nämlich bereits Mitte der 1950er Jahre kamen Faherlose Transportsysteme FTS auf. Da hier die Umgebung klar definiert gestaltet werden kann, ist diese Technik bereits sehr viel weiter entwickelt und mehr etabliert, vor allem in der industriellen Fertigung, aber auch beispielsweise im Bereich der Krankenhäuser.


EN:


1. What is this course about?

The state of the art in the field of autonomous mobile systems is evolving very rapidly. For this reason, part of the course will be structured as a seminar to focus on these latest technological developments.

At first, this topic may bring to mind private transportation, and this area will indeed constitute a major part of the course content. Research in this field, including field trials, has been ongoing since the 1980s.

Much earlier, in the mid-1950s, driverless transport systems (AGVs) emerged. Since the environment can be clearly defined in this context, this technology is already much more advanced and established, particularly in industrial manufacturing, but also, for example, in the hospital sector.

83_AV/03_Umsetzung/01_FTS
Savant Automation Overview

Ein weiterer wichtiger Bereich stellt die Automatisierung der Landwirtschaft durch Einsatz autonomer Vehikel dar. Auch hier sind die Randbedingungen weniger anspruchsvoll als im Personenstraßenverkehr.

Schließlich gibt es den eher in die Zukunft weisenden Bereich der Schwarmintelligenz und der Schwarmvehikel. Hier ist die Natur Vorbild, beispielsweise in Form von Ameisenkolonien und Vogelschwärmen. Wird ein kleiner Vehikelschwarm aufgebaut, mag das im Vergleich zum Bereich Personenverkehr modellhaft und spielerisch wirken. Jedoch sind ja gerade die kleinen Dimensionen der eine Part des Konzepts und die Kooperation sehr vieler solcher Elemente der andere.

Es sollen Vehikelschwärme praktisch mit Java/Processing simuliert werden und das Verhalten der einzelnen Fahrzeuge über eine Skriptsprache (LUA) definiert werden.


EN:


Another important area is the automation of agriculture through the use of autonomous vehicles. Here, too, the operating conditions are less demanding than in passenger road traffic.

Finally, there is the more forward-looking field of swarm intelligence and swarm vehicles. Here, nature serves as a model, for example in the form of ant colonies and flocks of birds. If a small swarm of vehicles is created, it may seem modular and playful compared to the field of passenger transport. However, the small dimensions are one part of the concept, and the cooperation of a large number of such elements is the other.

Vehicle swarms are to be simulated practically using Java/Processing, and the behavior of the individual vehicles is to be defined via a scripting language (LUA).

2. Motivation -- Warum ist das wichtig?

EN: 2. Motivation -- Why is this important?

Würde der Kurs nur aus dem seminaristischen Teil bestehen, würde die Chance verpasst werden neben Wissen auch Fertigkeiten zu vermitteln. Das Zusatzthema der Schwarmvehikel bietet einerseits einen niederschwelligen Einstieg, ist aber andererseits zukunftsweisend.

3. Welche Themen werden behandelt?

  • Seminaristischer Teil: Präsentation von Zusammenfassungen ausgewählter Artikel zum Stand der Technik (sowohl Personenverkehr, als auch Vehikelschwärme)
  • Grundlagen zu Java/Processing
  • Grundlagen zu LUA
  • Gemeinsame Entwicklung einer Simulationsumgebung für Vehikelschwärme
  • Projekte in Zweiergruppen, in denen bestimmte Themen zu Schwarmvehikeln praktisch in der Simulationsumgebung umgesetzt werden

EN:


If the course consisted solely of the seminar component, we would miss the opportunity to impart not only knowledge but also practical skills. The additional topic of swarm vehicles offers, on the one hand, an accessible entry point, but is also forward-looking.

3. What topics will be covered?

  • Seminar component: Presentation of summaries of selected articles on the state of the art (both passenger transport and vehicle swarms)
  • Basics of Java/Processing
  • Basics of LUA
  • Joint development of a simulation environment for vehicle swarms
  • Projects in pairs, in which specific topics related to swarm vehicles are practically implemented in the simulation environment

4. Welche Leistungen sollten Sie erbringen? / Organisatorisches

  • Jede teilnehmende Person präsentiert einen Artikel in einem 10 minütigen Vortrag mit anschließend 5 Minuten Diskussion
  • Jede Zweiergruppe erarbeitet praktisch ab der zweiten Semesterhälfte ein Schwarmkonzept mit Hilfe des Simulators
  • Bilden Sie günstigerweise frühzeitig Zweiergruppen.
  • Sie können aufeinanderaufbauende Seminarthemen in den Zweiergruppen wählen und am gleichen Tag hintereinander präsentieren.
  • Laden Sie den zugrundeliegenden Artikel bei Moodle im eingerichteten Upload-Bereich hoch mit Kurzbeschreibung Ihres Referatthemas.
  • Tragen Sie sich in der herumgehenden Liste mit Ihrem Thema für den gewünschten Vortragstag ein.
  • Durch die Bearbeitung von Aufgabe 1 der ersten Übung weiter unten, gelangen Sie zu Ihrem Thema.
in English:
  • Each participant will present an article in a 10-minute talk followed by a 5-minute discussion.
  • Starting in the second half of the semester, each pair will develop a swarm concept using the simulator.
  • It is recommended that you form pairs early on.
  • You may choose seminar topics that build on one another within your pairs and present them one after the other on the same day.
  • Upload the relevant article to the designated upload area on Moodle, along with a brief description of your presentation topic.
  • Sign up on the circulating list with your topic for your preferred presentation day.
  • You will arrive at your topic by completing Task 1 of the first exercise below.

5. Einstieg

EN: 5. Introduction

Beim autonomen Individualverkehr sind die Themen vielfältig.

Ein wichtiges technisches Thema sind die verschiedenen Fahrassistenzsysteme. Es wird angestrebt, diese immer weiter zu entwickeln und immer mehr miteiander zu vernetzen, um schließlich voll autonomes Fahren realisieren zu können.

Beispiele für Fahrassistenzsysteme sind:

  • Spurhalteassistent und Tempomat

EN:


There are many topics related to autonomous personal transportation.

One important technical topic is the various driver assistance systems. The goal is to continue developing these systems and to increasingly integrate them with one another, ultimately enabling fully autonomous driving.

Examples of driver assistance systems include:

  • Lane-keeping assist and cruise control
Spurhalteassistent -- https://www.youtube.com/watch?v=-9jJM3ZNKo0
Tempomat -- https://www.youtube.com/watch?v=5RWXsWtX5pk

Auf dem Weg zm vollständig autonomen Fahren hat sich eine Unterteilung in fünf Stufen etabliert:

Autonomes Fahren: Die fünf Level -- https://www.youtube.com/watch?v=-y4PFc90m8Q&t=1s
Warum ist autonomes Fahren noch nicht so weit?
Why self-driving cars have stalled | It's Complicated
Miteinander zu kombinierende Teilsysteme
Volkswagen Spurhalteassistent "Lane Assist"

Ein nicht technisches Thema im Zusammenhang mit dem autonomen Individualverkehr stellen die ethischen Herausforderungen und die daran anknüpfenden juristischen Fragen dar. Hier gibt es ein interessantes Werkzeug um das zu ergründen, die "Moralmachine" des MIT:

https://www.moralmachine.net/hl/de
Übung
  • Gehen Sie in Zweiergruppen die Szenarien durch.
  • Diskutieren Sie anschließend im Plenum Ihre Erfahrungen.

Im Bereich Schwarmintelligenz sein stellvertretend und einführend ein interessantes Experiment erwähnt, um klar zu bekommen, worum es hier geht:

Valentini, Gabriele & Brambilla, Davide & Hamann, Heiko & Dorigo, Marco. (2016). Collective Perception of Environmental Features in a Robot Swarm. 65-76. 10.1007/978-3-319-44427-7_6.

Video zu "Collective Perception of Environmental Features in a Robot Swarm" https://www.youtube.com/watch?v=0KJO4wh-SMc

Doch was geht im Inneren eines Schwarmvehikels vor? Hier hilft die Theorie der Agentensysteme, um eine Vorstellung davon zu gewinnen:

EN: But what goes on inside a swarm vehicle? The theory of agent systems can help us get an idea of this:

83_AV/02_Architekturen

Während wir uns in diesem Kurs auf die Simulation von Schwärmen beschränken, können solche Versuche auch als Hardware aufgebaut werden:

EN: While this course focuses solely on simulating swarms, such experiments can also be set up using hardware:

Schwarmvehikel, die eine Linie verfolgen können und auf das Auftauchen von Hindernissen reagieren.

Bild 0-1: Schwarmvehikel, die eine Linie verfolgen können und auf das Auftauchen von Hindernissen reagieren.

https://youtu.be/YS-1RRLGtgQ -- Schwarmvehikel
Autonomes Fahren an der THB: Personenkutschfahrt

Bei näherem Interesse können sich hier Themen für Projekt- und Abschlussarbeiten ergeben.

EN: If you are interested in learning more, this may provide topics for projects and theses.

6. Hands on -- Die erste Übung
Übung 1
  • Recherchieren Sie auf Research Gate nach einem frei verfügbaren Artikel im Themenbereich Autonomes Fahren im Individualverkehr oder im Bereich Schwarmintelligenz.
Activity 1
  • Search ResearchGate for a freely available article on the topic of autonomous driving in private transportation or on the topic of swarm intelligence.
https://www.researchgate.net/

Nutzen Sie die Möglichkeit die richtige Zitationsweise direkt von researchgate zu kopieren.



Achten Sie auf die Güte der Artikel: Solche, die in Journalen veröffentlicht wurden, sind i.d.R. höherwertiger als solche, die auf Konferenzen präsentiert wurden. Letzteres sollte mindestens nachgewiesen sein.


Grenzen Sie bei der Suche das Themengebiet ein, indem Sie eines der folgenden Stichwörter mit verwenden und entscheiden Sie sich damit für die genaue Richtung Ihres Interesses (bitte Stichwörter mit deepL ins Englische übersetzen, falls deutsch angegeben):


Take advantage of the option to copy the correct citation format directly from ResearchGate.



Pay attention to the quality of the articles: Those published in journals are generally of higher quality than those presented at conferences. The latter should at least be documented.


Narrow down your search by including one of the following keywords and use it to specify the exact focus of your interest (please translate keywords into English using DeepL if they are in German):

https://www.deepl.com/de/translator

Stichwörter im Bereich Autonomes Fahren im Individualverkehr.

  1. Sensorfusion
  2. Verkehrssicherheit
  3. Künstliche Intelligenz
  4. Echtzeit Datenaustausch
  5. Bildverarbeitung
  6. Kolonnenfahrt
  7. Autonome Lastkraftwagen
  8. Telemetrie

Stichwörter im Bereich Vehikelschwärme

  1. Kollektive Wahrnehmung
  2. Kollektives Entscheiden
  3. Aggregation
  4. Ameisenkolonie Simulation
  5. Kolaboration
  6. Dronenschwärme
  7. Anwendungsgebiete
  8. Nanoschwärme
  9. Telemetrie
in English:

Keywords in the field of autonomous driving in private transportation.

  1. Sensor fusion
  2. Traffic safety
  3. Artificial intelligence
  4. Real-time data exchange
  5. Image processing
  6. Convoy driving
  7. Autonomous trucks
  8. Telemetry

Keywords in the field of vehicle swarms

  1. Collective perception
  2. Collective decision-making
  3. Aggregation
  4. Ant colony simulation
  5. Collaboration
  6. Drone swarms
  7. Application areas
  8. Nano-swarms
  9. Telemetry
Aufgabe 2
  • Gemeinsamer Start mit Processing und Beginn mit Versuchen zu Vehikelschwarmsimulation

Eine konkrete Aufgabe wird sich aus den gemeinsamen Programmierversuchen ergeben.

#2 Mo, 30.03.2026

Themen heute:

  1. Einstieg in die Programmierung einer Schwarmsimulationsumgebung
  2. Übung zur Schwarm-Verhaltensprogrammierung
  3. Fortsetzung: Themenfindung für den seminaristischen Teil

Today's topics:

  1. Introduction to programming a swarm simulation environment
  2. Exercise in swarm behavior programming
  3. Continuation: Selecting a topic for the seminar portion

1. Einstieg in die Programmierung einer Schwarmsimulationsumgebung

EN: 1. Introduction to programming a swarm simulation environment

Wie können Sie selber sich in die Programmierung einarbeiten?:

  • Installieren Sie Java/Processing (processing.org)
  • Gehen Sie die mitgelieferten Beispiele durch, um die Grundstruktur der Processing-Sketche zu verstehen
  • Lernen Sie die Syntax von LUA anhand von Referenzseiten.

Links dazu:

Processing Hauptseite: https://processing.org/
LUA Referenz: https://www.lua.org/manual/5.1/de/manual.html

EN:


How can you teach yourself to program?:

  • Install Java/Processing (processing.org)
  • Work through the included examples to understand the basic structure of Processing sketches
  • Learn the Lua syntax using reference pages.

Related links:

Processing main page: https://processing.org/
LUA reference: https://www.lua.org/manual/5.5/manual.html

Vorab: Einstieg in Java/Processing und einige Anmerkungen zur Programmier-Syntax.



First things first: An introduction to Java/Processing and some notes on programming syntax.


Beginn mit der Programmierung einer Simulationsumgebung für Schwarmvehikel

83_AV/08_LUAbot

2. Übung zur Schwarm-Verhaltensprogrammierung

EN: 2. Exercise in swarm behavior programming

Nachfolgend ist das LUA-Skript dargestellt, das das Verhalten aller Schwarmvehikel im Projekt LUAbot005_LUA beschreibt:

EN: The following is the LUA script that describes the behavior of all swarm vehicles in the LUAbot005_LUA project:

function behavior( col, colwall , countdown)
    v=0
    w=0
    if ( (col==1 or colwall==1) and countdown==0) then
        countdown=20        
    end

    if ( countdown>0 ) then
        w=5
        v=0
        countdown = countdown - 1
    else
        w=0
        v=10
    end

    return countdown*10000+v*100+20+w
end

Code 0-1: LUA Verhaltensskript in LUAbot005_LUA.

Aufgabe 0:
  • Ändern Sie das Skript so, dass sich die Fahrzeuge bei Kollision mit der Wand im Uhrzeigersinn drehen, bei Kollision miteinander aber gegen den Uhrzeigersinn.
Aufgabe 1:
  • Analysieren Sie das Skript erneut und bringen es in Zusammenhang mit dem in der Simulation sichtbaren Verhalten.
  • Verändern Sie das Skript so, dass die Vehikel nach einer Kollision sich möglichst genau in die entgegengesetzte Richtung drehen, bevor sie weiterfahren.
  • HINWEIS: Analysieren Sie dazu die besondere Bedeutung der Variable "countdown" und nutzen diese Variable, um die alte Richtung des Fahrzeugs zu speichern.
  • Die Variable "countdown" hat eine Entsprechung im Java-Part als "COUNTDOWN".
  • Hierdurch wird die Variable statisch, behält also ihren Wert nach Verlassen der LUA-Funktion (ein "Trick" sozusagen).
Aufgabe 2:
  • Überlegen Sie, wie Sie die Simulationsumgebung so erweitern können, dass die Vehikel ihre Farbe ändern, je nachdem ob sie blockiert sind oder nicht.
Task 0:
  • Modify the script so that the vehicles rotate clockwise when they collide with the wall, but counterclockwise when they collide with each other.
Task 1:
  • Analyze the script again and relate it to the behavior visible in the simulation.
  • Modify the script so that, after a collision, the vehicles turn as precisely as possible in the opposite direction before continuing on.
  • NOTE: To do this, analyze the special significance of the variable "countdown" and use this variable to store the vehicle's previous direction.
  • The variable "countdown" has a counterpart in the Java section as "COUNTDOWN".
  • This makes the variable static, meaning it retains its value after exiting the LUA function (a "trick" so to speak).
Task 2:
  • Consider how you can extend the simulation environment so that the vehicles change color depending on whether they are blocked or not.

3. Fortsetzung: Themenfindung für den seminaristischen Teil

EN: 3. Continuation: Selecting a topic for the seminar portion

Mo, 06.04.2026 -- FEIERTAG (Ostermontag)

#3 Mo, 13.04.2026

  • Bisher wurden für den seminaristischen Part der Prüfung hauptsächlich Artikel im Bereich des autonomen Individualverkehrs gewählt.
  • Es sollten aber mindestens genau so viele Themen im Bereich Schwarmvehikel gewählt werden.
  • Dies können Grundlagenthemen sein.
  • Ein Fachbuch zu Ameisenkoloniesimulation und -optimierung steht im Internet komplett zur Verfügung, aus dessen Kapiteln sich Grundlagenthemen im Bereich Schwarmvehikel ableiten lassen.
  • Die ersten drei Kapitel können je als ein Thema gewählt werden:

EN:


  • To date, the seminar portion of the exam has primarily focused on articles related to autonomous individual transportation.
  • However, at least as many topics related to swarm vehicles should be selected.
  • These can be fundamental topics.
  • A textbook on ant colony simulation and optimization is available in its entirety online, and basic topics in the field of swarm vehicles can be derived from its chapters.
  • Any of the first three chapters can be chosen as a topic:
Stützle, T., Dorigo, M. (2004): Ant Colony Optimization. -- https://www.researchgate.net/publication/36146886_Ant_Colony_Optimization
  • Darüber hinaus könnten beispielsweise folgende Überblicksartikel gewählt werden:
  • Darin werden theoretische Konzepte wie Entscheidungsfindung, Aggregation und Entsprechungen in der Biologie diskutiert.
  • EN: In addition, the following review articles, for example, could be selected:
  • It discusses theoretical concepts such as decision-making, aggregation, and analogies in biology.

Beni, Gerardo. (2004). From Swarm Intelligence to Swarm Robotics. Lecture Notes in Computer Science. 3342. 1-9. 10.1007/978-3-540-30552-1_1. https://www.researchgate.net/publication/221116455_From_Swarm_Intelligence_to_Swarm_Robotics

Valentini, Gabriele & Birattari, Mauro & Dorigo, Marco. (2013). Majority Rule with Differential Latency: An Absorbing Markov Chain to Model Consensus. Springer Proceedings in Complexity. 10.1007/978-3-319-00395-5_79. https://www.researchgate.net/publication/236214068_Majority_Rule_with_Differential_Latency_An_Absorbing_Markov_Chain_to_Model_Consensus

Ducatelle, Frederick & Pinciroli, Carlo & Gambardella, Luca Maria. (2011). Self-organized cooperation between robotic swarms. Swarm Intelligence. 5. 73-96. 10.1007/s11721-011-0053-0. https://www.researchgate.net/publication/220058897_Self-organized_cooperation_between_robotic_swarms

Sahin, Erol & Girgin, Sertan & Bayindir, Levent & Turgut, Ali. (2008). Swarm Robotics. 10.1007/978-3-540-74089-6_3. https://www.researchgate.net/publication/226173060_Swarm_Robotics

Thaker, Ruchik. (2021). An Overview of Swarm Robotics: Swarm Intelligence and Engineering Approaches for Coordinating Multi-Robot Systems. International Journal For Multidisciplinary Research. 3. 10.36948/ijfmr.2021.v03i04.29703. https://www.researchgate.net/publication/385592557_An_Overview_of_Swarm_Robotics_Swarm_Intelligence_and_Engineering_Approaches_for_Coordinating_Multi-Robot_Systems

Bandala, Argel & Dadios, Elmer & Vicerra, Ryan & Gan Lim, Laurence. (2014). Swarming Algorithm for Unmanned Aerial Vehicle (UAV) Quadrotors - Swarm Behavior for Aggregation, Foraging, Formation, and Tracking -. Journal of Advanced Computational Intelligence and Intelligent Informatics. 18. 745-751. 10.20965/jaciii.2014.p0745. https://www.researchgate.net/publication/266740038_Swarming_Algorithm_for_Unmanned_Aerial_Vehicle_UAV_Quadrotors_-_Swarm_Behavior_for_Aggregation_Foraging_Formation_and_Tracking_-

Swarnajit Chatterjee, Matthieu Mangeat, Chul-Ung Woo, Heiko Rieger and Jae Dong Noh: Flocking of two unfriendly species: The two-species Vicsek model https://www.rieger.uni-saarland.de/Paper/Chatterjee_mangeat_2022.pdf

Themen heute:

  1. Braitenberg-Fahrzeuge
  2. Rückgabe von Integer-Arrays bei in Java eingebetteten LUA-Funktionen
  3. Erweiterung des Schwarmsimulators
  4. Übung mit aktueller Simulatorversion
  5. Festlegung weiterer Präsentationsthemen für den seminaristischen Prüfungsteil

1. Braitenberg-Fahrzeuge


Die Braitenberg-Fahrzeuge


https://de.wikipedia.org/wiki/Braitenberg-Vehikel
Die Braitenberg-Fahrzeuge -- https://www.youtube.com/watch?v=A-fxij3zM7g

zusätzlich Ameisenkolonieoptimierung / in addition ant colony optimization:


https://www.youtube.com/watch?v=u7bQomllcJw

2. Rückgabe von Integer-Arrays bei in Java eingebetteten LUA-Funktionen

EN 2. Returning integer arrays in Lua functions embedded in Java

  • In LUA-Funktionen können die zurückzugebenden Variablen einfach mit Kommata getrennt aufgelistet werden, damit sie ein Array bilden.
  • Von Java aus gelingt der Empfang des zurückgegebenen Array durch Verwendung von "invoke" statt "call" in Kombination mit Varargs als Rückgabetyp.
  • Vergleiche dazu die LUAJ Referenz:

EN:


  • In Lua functions, the variables to be returned can simply be listed, separated by commas, to form an array.
  • From Java, the returned array can be received by using "invoke" instead of "call" in combination with varargs as the return type.
  • See the LUAJ reference for more information:
http://www.luaj.org/luaj/3.0/README.html -- siehe/see "LuaValue and Varargs ... Common Functions"
  • Außerdem kann der Pfad zum aktuellen Sketch mit Hilfe der Funktion sketchPath() ausgelesen werden.
  • EN: In addition, the path to the current sketch can be retrieved using the sketchPath() function.
Testbeispiel / Test Example:
function MyAdd( num1, num2 )
    return num1 + num2,num1,num2
end

Code 0-2: LUA Function in File test.lua

import org.luaj.vm2.*;
import org.luaj.vm2.lib.jse.*;

public void setup()
{
    Globals globals = JsePlatform.standardGlobals();
    //LuaValue chunk = globals.load("print 'hello, world'");
    //chunk.call();
    globals.get("dofile").call( LuaValue.valueOf(sketchPath()+"/test.lua"));
    //call the function MyAdd with two parameters 7, and 5
    LuaValue MyAdd = globals.get("MyAdd");
    LuaValue retvals = MyAdd.call(LuaValue.valueOf(7), LuaValue.valueOf(5));
    Varargs retvals2 = MyAdd.invoke(LuaValue.valueOf(7), LuaValue.valueOf(5));

    println("Number of returned variables: "+retvals2.narg());
    println("num1 + num2: "+retvals2.toint(1));
    println("num1: "+retvals2.toint(2));
    println("num2: "+retvals2.toint(3));
}

Code 0-3: Processing-Sketch using "MyAdd"

3. Erweiterung des Schwarmsimulators


see also: 83_AV/08_LUAbot/05_Swarmbots

Ameisenkoloniesimulation / ant colony simulation:


83_AV/08_LUAbot/06_Ants

EN 3. Expansion of the swarm simulator

  • Ein Fahrzeug bekommt über die der LUA-Funktion (function behavior) übergebenen Variablen Informationen aus seiner Umwelt.
  • Aus diesen Umweltinformationen wird das aktuelle Verhalten berechnet.
  • Das aktuelle Verhalten wird als Array von der LUA-Funktion zurückgegeben.
  • Um Informationen von einem Aufruf zum nächsten behalten zu können, werden eine Reihe Variablen (mem0..mem9) zur Verfügung gestellt, die von der LUA-Funktion zurückgegeben und beim nächsten Aufruf wieder mit ihrem letzten Wert der LUA-Funktion übergeben werden.
  • Es werden in der LUA-Funktion ausschließlich Integer-Variablen verwendet.

EN:


  • A vehicle receives information about its environment via variables passed to the LUA function (function behavior).
  • The current behavior is calculated based on this environmental information.
  • The current behavior is returned by the LUA function as an array.
  • To retain information from one call to the next, a set of variables (mem0..mem9) is provided; these are returned by the LUA function and passed back to the LUA function on the next call with their last value.
  • Only integer variables are used in the LUA function.
Input-Variablen

Folgende Variablen werden der LUA-Funktion als Umwelt-Informationen übergeben:

EN: The following variables are passed to the LUA function as environment information:

name range meaning
col 0..1 1=collision with other vehicle 0=not
colwall 0..1 1=collision with wall 0=not
d 0.. distance to next obstacle in front of vehicle in pixels.
dr 0..255 pixel color of next obstacle in front of vehicle. red part
dg 0..255 pixel color of next obstacle in front of vehicle. green part
db 0..255 pixel color of next obstacle in front of vehicle. blue part
pr 0..255 ground pixel color front edge of vehicle. red part
pg 0..255 ground pixel color front edge of vehicle. green part
pb 0..255 ground pixel color front edge of vehicle. blue part

Tabelle 0-1: Table of all input variables of function behavior

Folgende Variablen werden von der LUA-Funktion zurück gegeben:

EN: The following variables are returned by the LUA function:

name range meaning
v 0..20 translational speed in pixels per second
w -20..20 rotational speed in degree per second
r 0..255 vehicle color. red part.
g 0..255 vehicle color. green part.
b 0..255 vehicle color. blue part.

Tabelle 0-2: Table of all output variables of function behavior


Durch das Erfassen der Pixelfarbe des nächsten Hindernisses ist prinzipiell eine Kommunikation der Fahrzeuge untereinander möglich.


LUAJ reference, especially Varargs: http://luaj.org/luaj/3.0/api/org/luaj/vm2/Varargs.html

EN: By detecting the pixel color of the next obstacle, the vehicles can, in principle, communicate with one another.



Latest swarm simulator version: LUAbot010groundcolor.zip

Corresponding sketch to generate ground picture: LUAbot010b_GROUND_PICTURE.zip


Ameisenkoloniesimulation / ant colony simulation:


83_AV/08_LUAbot/06_Ants

4. Übung mit aktueller Simulatorversion

EN 4. Exercise using the current simulator version

Aufgabe 1 on basis of LUAbot013ecosystem_CORRECTED
83_AV/08_LUAbot/06_Ants
  • After a while the bots go around the border and do not reach anymore the green foot area.

Make them getting more to eat.


Aufgabe 2 on basis of LUAbot013ecosystem_CORRECTED
83_AV/08_LUAbot/06_Ants
  • At the moment the bots pass faster the red danger zone.

Make them avoiding the danger zone.


Aufgabe 3 on basis of LUAbot010groundcolor
83_AV/08_LUAbot/05_Swarmbots

Make them stay together.


  • Hint: If they see another bot fare away they could go faster.
  • Hint: If they see another bot nearby they could go slower or stop.
  • Hint: Find your own method.
  • Die gestellten Aufgaben diesen dazu, dass Sie sich mit der Simulationsumgebung vertraut machen können.
  • Die Aufgaben mit dem Simulator für den Praktischen Prüfungsteil werden anspruchsvoller sein und werden sich an Versuchen zu Schwarmintelligenz orientieren, wie sie in aktuellen Artikeln präsentiert werden.
  • Themenvorschläge wird es in Kürze geben, aber Sie können auch nach geeigneten Themen recherchieren und diese als Projektthema vorschlagen.

EN:


  • The assigned tasks are designed to help you become familiar with the simulation environment.
  • The tasks using the simulator for the practical exam portion will be more challenging and will be based on experiments involving swarm intelligence, as presented in recent articles.
  • Suggested topics will be available shortly, but you may also research suitable topics and propose them as project topics.

5. Festlegung weiterer Präsentationsthemen für den seminaristischen Prüfungsteil

EN 5. Selection of additional presentation topics for the seminar exam portion

Themenkomplex Autonomes Fahren

Examples from 2025:


Nr. Thema Literaturbeispiel
1 Modellierung und Optimierung von Konvoifahrt https://www.researchgate.net/publication/358185747_Autonomous_Convoying_A_Survey_on_Current_Research_and_Development
2 Sensor-Fusion https://www.researchgate.net/publication/349498440_Sensor_and_Sensor_Fusion_Technology_in_Autonomous_Vehicles_A_Review
3 Agenten basierte Simulation von autonomem Fahren https://www.researchgate.net/publication/340905479_Agent-Based_Simulation_of_Autonomous_Vehicles_A_Systematic_Literature_Review
4 Juristische Implikationen bei fahrerlosen mobilen Systemen https://www.researchgate.net/publication/386345054_Self-Driving_Cars_Legal_Challenges_and_Criminal_Law_Implications

Tabelle 0-3: Themenkomplex Autonomes Fahren

Themenkomplex Schwarmverhalten
Nr. Thema Literaturbeispiel
5 Fahrbahnplanung mittels Ameisen-Methode https://www.researchgate.net/publication/224177889_An_Ant_System_algorithm_for_automated_trajectory_planning
6 Kooperative Navigation in Roboterschwärmen https://www.researchgate.net/publication/260247563_Cooperative_navigation_in_robotic_swarms
7 Selbstorganisierte Bildung von Formen bei Schwärmen https://www.researchgate.net/publication/374489701_A_self-organized_shape_formation_in_swarm_robots
8 Grundlagen der Schwarmintelligenz-Forschung https://www.researchgate.net/publication/264457775_Swarm_Intelligence_Concepts_Models_and_Applications
9 Schwarmintelligenz als Optimierungsmethode https://www.researchgate.net/publication/227068137_Swarm_Intelligence_in_Optimization

Tabelle 0-4: Themenkomplex Schwarmverhalten

#4 Mo, 20.04.2026

Themen heute: / Today's topics:

  1. Präsentation der Themen #3 und #4
  2. Fortsetzung der Übung mit dem Simulator
  3. Diskussion zur Weiterentwicklung des Simulators
  1. Presentation of topics #3 and #4
  2. Continuation of the exercise with the simulator
  3. Discussion on further development of the simulator

1. Präsentation der Themen #3 und #4 / Presentation of topics #3 and #4

2. Fortsetzung der Übung mit dem Simulator / Continuation of the exercise with the simulator

  • Es gab noch Fehler im Simulator LUAbot011ecosystem.
  • Deshalb gelang es letzte Woche nicht, eine Lösung für Aufgabe 1 zu finden.
  • Deshalb wird nun eine korrigierte Version bereitgestellt: LUAbot013ecosystem_CORRECTED.zip:
LUAbot013ecosystem_CORRECTED.zip

Neuerungen:

  • Verfügbarkeit einer Zufallszahl rand0to99 im Lua-Skript.
  • Simulation stoppt nach 1000 Schritten.
  • Es wird gezählt, wieviele Anteile von grün während der Simulationszeit "gegessen" werden.

Wegen des Fehlers im Simulator, auch auch weil nicht alle Studierenden am Ende der letzten Übung mit dem Simulator zurecht gekommen sind, wird die Übung erneut in gleicher Form gestellt.

Außerdem wird eine Musterlösung für Aufgabe 1 zu Beginn präsentiert und vorgeführt, wie man diese in das System einpflegt:

function behavior(col,colwall,d,dr,dg,db,pr,pg,pb,ir,ig,ib,rand0to99,mem0,mem1,mem2,mem3,mem4,mem5,mem6,mem7,mem7,mem8,mem9)

    countdown=mem0

    vmax=10

    --slower if others around (least dominant)
    if (pb>0) then 
       vmax=5 
    --slower if food (more dominant!)
    elseif (pg>0) then 
       vmax=1 
    --faster if red (danger, most dominant!)
    elseif (pr>0) then 
       vmax=20 
    end


    v=0
    w=0
    r=pr/2
    g=pg/2
    b=pb/2
    if ( (col==1 or colwall==1) and countdown==0) then
        countdown=20        
    end

    if ( countdown>0 ) then
        w=5
        v=0
        countdown = countdown - 1
        r=dr
        g=dg
        b=db
    else
        w=0
        v=vmax
    end

    -- BEGIN SOLUTION EXERCISE 1
    countdown2=mem1

    if (countdown2<=0) then
        countdown2=1000
    elseif (countdown2<50+rand0to99) then 
        countdown2=countdown2-1
        v=0
        w=19
    else
        countdown2=countdown2-1
    end

    mem1=countdown2
    -- END SOLUTION EXERCISE 1

    mem0=countdown

    -- Pheromone: setting 5 parts of blue to ground:
    ab=50

    -- eat if possible:
    ag=-50

    return v,w,r,g,b,ar,ag,ab,mem0,mem1,mem2,mem3,mem4,mem5,mem6,mem7,mem8,mem9
end

Code 0-4: Musterlösung für Aufgabe 1 / Sample solution for Exercise 1

3. Diskussion zur Weiterentwicklung des Simulators / Discussion on further development of the simulator

  • Wie kann eine Fehlerfunktion implementiert werden?
  • Wie kann ein einfacher Optimierer (modifiziertes Gradientenverfahren) implementiert werden?

Verhaltensoptimierung (Reinforced Learning in Kombination mit Neuronalen Netzen):


EN:


  • How can an error function be implemented?
  • How can a simple optimizer (modified gradient descent) be implemented?

Behavioral optimization (reinforcement learning combined with neural networks):

Motivation -- https://www.youtube.com/watch?v=a8Bo2DHrrow

Unterstützende Theorie dazu:

50_Simulationstechnik/06_Optimierung
50_Simulationstechnik/06_Optimierung/01_Gradientenverfahren
50_Simulationstechnik/06_Optimierung/02_Heuristiken
50_Simulationstechnik/06_Optimierung/03_ModifizierteG
50_Simulationstechnik/07_Genalgorithmus

#5 Mo, 27.04.2026

Themen heute:

  1. Präsentationen
  2. Besprechung der Lösungen zu den Aufgaben zum Entwurf von Verhaltensregeln in LUA
  3. Einführung in die Optimierung
  4. Umsetzung eines modifizierten Gradientenverfahrens für den Schwarmsimulator
  5. Übungen

EN:


Topics for today:

  1. Presentations
  2. Discussion of solutions to the assignments on designing behavioral rules in Lua
  3. Introduction to optimization
  4. Implementation of a modified gradient method for the swarm simulator
  5. Exercises

1. Präsentationen / Presentations

THEMA #2: Robust Adaptive Composite Learning Integrated Guidance and Control for Skid-to-Turn Interceptors Subjected to Multiple Uncertainties and Constraints
THEMA #5: Advancement of Technology in Road Safety
THEMA #6: Swarm Coordination under limited Communication Range

2. Besprechung der Lösungen zu den Aufgaben zum Entwurf von Verhaltensregeln in LUA

  • EN: Discussion of solutions to the assignments on designing behavioral rules in Lua

3. Einführung in die Optimierung / Introduction to optimization

50_Simulationstechnik/06_Optimierung
50_Simulationstechnik/06_Optimierung/01_Gradientenverfahren
50_Simulationstechnik/06_Optimierung/02_Heuristiken
50_Simulationstechnik/06_Optimierung/03_ModifizierteG
50_Simulationstechnik/07_Genalgorithmus

4. Umsetzung eines modifizierten Gradientenverfahrens für den Schwarmsimulator

LUAbot015eco_OPTIMIZED001.zip -- first step: doing simulation independend from vizualization.
LUAbot016eco_OPTIMIZED002.zip -- complete, but still not working correctly.
LUAbot017eco_OPTIMIZED003.zip -- complete and working. Solution: individual random method for optimizer.
  • EN: Implementation of a modified gradient method for the swarm simulator

5. Übungen / Exercises

  • Übertragen des gemeinsam entwickelten Optimierers auf eine anderes Optimierungsproblem.
  • EN: Applying the jointly developed optimizer to a different optimization problem.
EXERCISE #1: (using LUAbot017eco_OPTIMIZED003.zip)
  • Change the optimizer in a way to get even better results.
  • E.g. change range of actual parameters optimized.
  • E.g. change parameter optimized.
EXERCISE #2: (using LUAbot017eco_OPTIMIZED003.zip)
  • Apply optimization to "avoiding red danger zone".

#6 Mo, 04.05.2026

#7 Mo, 11.05.2026

#8 Mo, 18.05.2026

#4 Mo, 20.04.2026

Mo, 25.05.2026 -- FEIERTAG (Pfingstmontag)

#9 Mo, 01.06.2026

#10 Mo, 08.06.2026

#11 Mo, 15.06.2026

#12 Mo, 22.06.2026

#13 Mo, 29.06.2026