January 22, 2026

Head up display with grounded language

In science fiction movies of the 1980s, a head up display (HUD) is shown. This allows the audience to see what the robot might see. It was assumed, that such a head up display doesn't has a purpose but its only a special effect. An example for such a head up display is shown on top of this blog post. There are multiple food items on a table and some text boxes with a description.

The surprising situation is, that a head up display and especially the textual labels have a use case from a scientific perspective. They are demonstrating the symbol grounding problem. The robot is able to think and fulfill tasks by using the information from the HUD. A command like "grasp the banana" is converted into an action like "grasp the object on top left which is a fruit and has a weight of 120g". These detail information are extracted from the hud display, because the banana item was recognized in the picture.

A head up display is a photo from the ego perspective of a robot with annotated objects. There is sometimes a status box available which shows additional information. These text boxes ensures, that the robot understands a situation. It makes the teleoperation of the robot smoother. 

January 19, 2026

Sprachspiele vs. Mathematische puzzle

 Über Jahrzehnte hinweg galten Mathematische Rätsel und Denkspiele wie SChach als Testumgebung für Künstliche Intelligenz. Anhand des SChachspiels kann man grundlegende Algorithmen wie Minmax erläutern und geometrische Routenfindungsprobleme sind ideal um darüber Path planning algorithmen zu verstehen.

Allerdings haben diese klassischen KI Probleme einen großen Nachteil: sie blende das Thema natürliche Sprache aus. In einem Spiel wie das 15 puzzle Problem oder im berühmten Tictactoe Spiel gibt es keine Worte sondern es nur ein grid-Raster auf dem die Spieler Steine platzieren. Als interne Datenstruktur für eine Computerumsetzung wird folgerichtig ein Array verwendet womit das Spiel simuliert wird. Damit reduzieren sich mögliche Ansätze zur Entwicklung von künstlicher Intelligenz auf eine mathematisch-logische Sichtweise.

Neben den erwähnten Logikpuzzles gibt es eine zweite Kategorie von Gesellschaftsspielen die in der Informatik erst seit 2010 näher untersucht werden: Sprachspiele. Diese haben ihre Wurzeln weniger in der Mathematik sondern werden traditionell zum Erlenen einer Fremdsprache verwendet. Sprachspiele stellen ein Rätsel da was man nur lösen kann wenn man die Vokabeln der Fremdsprache beherscht. Eine mögliche Aufgabe besteht darin für das englische Wort "apple" die deutsche Übersetzung "Apfel" zu finden oder ein gezeigte Bilderkarte mit dem korrekten Wort zu annotieren.

Obwohl diese Spiele in einem Computer simuliert werden können werden sie bisher nur selten in der KI Forschung eingesetzt. Dies hat etwas mit der traditionellen Ausrichtung auf mathematische Probleme zu tun, weil die Informatik sich historisch bedingt von der Mathematik abstammt also sich primär um Zahlen und Formeln kümmert und weniger um natürliche Sprache, welche innerhalb der Geisteswissenschaft erforscht wird.

Es gibt Indizieren dafür dass ausgrechnet natürliche Sprache der fehlende Baustein ist um Künstliche Intelligenz zu erzeugen. Sprache ist kulturell bedingt ein Zeichen und Sinnsystem was auf die realität referenziert. Frühe Hieroglyphenschriften verwenden bilder und symbole anstatt Substantive, während moderne Sprache auf das lateinische Alphabet zurückgreifen. Der Vorteil von natürlicher Sprache und speziell deren schriftlicher Ausprägung ist, dass es sich um ein etabliertes Zeichensystem handelt was in Wörterbüchern kodifiziert ist. Man muss also nicht eine neue Sprache erfinden die zur Steuerung von robotern verwendet wird sondern kann das bekannte Englische Vokabular für diesen Zweck verwenden. Die einzige Modifikation besteht darin, dass in der Robotik häufig auf einen Subset, eine mini language zurückgegriffen wird, der Roboter also effektiv nur 100 Worte versteht, ähnlich wie ein Textparser in einem Adenturegame.

Das besondere bei einem Sprachinterface ist, dass sich damit eine Fernsteuerung programmieren lässt die anders als eine joystick-Fernsteuerung über einen replay modus verfügt. Man speichert die kommandos die ein Mensch an einen Roboter erteilt in einem logfile und kann das logfile dann später erneut an den roboter senden und dieser wird auf dieselbe Weise reagieren.

Obwohl derartige Roboter bisher nur selten in der Forschungsliteratur erwähnt werden und das Themengebiet des Symbolgrounding hochkomplex ist, lassen sich praktische Roboter mit erstaunlich wenig Aufwand realisieren. Im Grunde reicht es einen einfachen Parser zu programmieren, der 10 worte versteht wie "left, right, up, down, stop, status" und schon kann man an diesen Roboter längere Befehlssequenzen senden. Zugegeben, das Prinzip ist nicht wirklich innovativ, es ist identisch mit der Entwicklung einer domain specific language und wurde in der Robotik unter der Bezeichnung "Karel the robot" seit den 1980er verwendet. Das neue liegt eher darin, dass man auf dieses Hilfsmittel der natürlichen Sprache stärker fokussiert um damit eine vielzahl von Künstliche Intelligenz Aufgaben zu formalisieren.

Ein derartiger Roboter wird nicht über Algorithmen gesteuert sondern die Basis ist ein Englisch-Wörterbuch mit Verben, adjektiven und Substantiven. DIe kenntnis dieser Worte erlaubt es dem roboter statusmeldungen an den BEnutzer zu senden und von diesem Befehle zu empfangen. SYmbol grounding ist folgerichtig die autoamtsierung der Mensch-Maschine-Schnittstelle. ES geht weniger darum, den roboter als Maschine zu programmieren sondern der fokus liegt auf der Schnittstelle zur Außenwelt, also welche Daten an den roboter gesendet werden und welche der Roboter an die Umwelt zurückschickt.

Künstliche Intelligenz früher

 Vor dem Jahr 2010 war die KI Forschung durch Sackgassen, ungelöste Probleme und Pessimismus geprägt. Man könnte sagen, dass die Zeit von 1950 bis 2010 ein einziger langer KI Winter war, bei dem es nicht gelang wichtige Probleme wie Robotik zu lösen. Diese distanzierte Bewertung erhält man wenn man sich die gängige Literatur anschaut, also die Bücher und Konferenz-Proceedings die über Jahrzehnte von Wissenschaftlern publiziert wurden. Während klassische Informatik also software engineering, Datenbanken, Computer netze und Algorithmen einen kontiniurlichen Aufschwung erlebte und praktische Probleme lösen konnte, war die Künstliche Intelligenz niemals erfolgreich.

Am einfachsten lässt sich das Scheitern aufzeigen wenn man versucht konkrete Probleme zu lösen, z.B. eine Software zu programmieren die schach spielt, eine KI entwickelt die einen Roboter steuert oder einen Algorithmus entwirft der ein Selbstfahrendes Auto steuert. Zwar gab es viele Versuche sowas zu implementieren, aber im Regelfall war der ergebnis ernüchternd. Bevor eine Schachsoftware in der Lage ist gegen einen Menschen zu spielen wurde diese Software über Jahre hinweg verbessert, unzählige Manstunden sind in solche Projekte geflossen. Und bei Algorithmen zur Robotiksteuerung sieht es noch schlechter aus. Dort sind selbst sehr umfangreiche Programmbibliotheken wie das ROS System nicht im Stande einfachste roboter durch ein Labyrinth zu steuern.

Es gab bis 2010 durchaus Erfolge, z.B. hat der Deep blue Computer im Schach gegen einen Menschen gewonnen und das selbstfahrende Auto Stanley konnte im Jahr 2005 die Ziellinie der Darpa Grand challenge durchqueren. Allerdings war der Programmieraufwand für diese Prototypen extrem hoch und die Resultate sind nicht verallgemeinerbar.

Die gute Nachricht lautet dass sich das Unvermögen eine intelligente Software zu programmieren sich gut eingrenzen lässt. Es reicht aus die folgende Aufgabe näher zu untersuchen: "Programmieren sie eine Software die einen Roboter steuert. Der Roboter soll in einem Labyrinth vom Startpunkt zum Zielpunkt fahren und dabei Hindernissen ausweichen. Erlaubt ist als Programmiersprache jede vorhandene sprache, ebenfalls erlaubt ist jeder bekannte Algorithmus und jedes bekannte Informatik-Buch zu verwenden. Viel erfolg."

Die traurige Nachricht lautet, dass so eine Programmieraufgabe viel zu umfangreich ist. Informatiker vor dem Jahr 2010 sind damit immer gescheitert. Das Problem hat damit zu tun, dass vorhandene Programmiersprachen wie C/C++, vorhandene Algorithmen wie RRT und vorhandene Literatur wie "Russel/Norvig:AIMA" nicht ausreichend sind um das obige Problem mit dem Maze roboter zu lösen. Selbst wenn es gelänge in C/C++ einen Roboter zu programmieren der Hindernisse umfährt, wird der fertige Roboter nicht wirklich überzeugen können. Es wird ein Projekt mit einer hohen Zahl von Codezeilen werden während die praktische Einsatzfähigkeit nahe null ist.

Leider sind die erwähnten Tools, also Programmiersprachen, Algorithmen und Informatik-Bücher bereits das beste vom besten. C/C++ ist die effizienteste Programmiersprache die in Kombination mit dem ebenfalls sehr mächtige RRT Algorithmus eigentlich in der Lage sein sollte, einen Roboter zu steuern. Tut es aber nicht.

Der Grund warum es bis 2010 Künstliche Intelligenz ein unüberwindliches Hinderniss darstellte hat mit der Fokussierung auf Computer zu tun. Die unausgesprochene Vorstellung in der Informatik ist, eine Software zu erstellen die auf einer CPU ausgeführt wird, und diese Software soll dann ein Problem lösen. Informatiker haben Zugriff auf einen Computer auf dem ein Program mausgeführt werden kann und sie benötigen dann eine Software die das Problem löst. Diese Software wird in aller Regel neu geschrieben und hier liegt das Problem. Niemand weiß wie eine KI Software aussehen soll. Das STandardparadigma der Informatik funktioniert nicht.

Lediglich bei Nicht-KI Themen wie Datenbanken, Textverarbeitung oder mathematischen Problemen ist es sinnvoll computerzentriert vorzugehen. Wenn z.B. in einer Datenbank die Inhalte einer Tabelle aufaddiert werden sollen, reicht es dafür in C/C++ eine Software zu schreiben oder noch besser, man sucht nach einer bereits existierenden Bibliothek und verwendet diese lediglich für das konkrete Beispiel. Klassische Informatik funktioniert immer computer zentriert, d.h. es gibt eine vorhandene Hardware + Software die dann auf ein konkretes Problem angewendet wird. Lediglich bei KI Themen funktioniert dieses eingeübte Vorgehen nicht. Es gibt keine KI Standardbibliotheken und selbst das Neuschreiben von Software führt nicht zum erfolg.

Man kann die Zeit bis 2010 so umschreiben, dass damals die KI Community versucht hat Software zu entwickeln mit denen Computer intelligent werden, aber das alle Versuche dieser Art gescheitert sind. Selbst unkonventionelle Ansätze welche durch eine neue Generation von Informatikern verfolgt wurde war nicht erfolgreich. z.B. könnte ein alternatives Vorgehen darin bestehen auf die altmodische C/C++ Sprache zu verzichten zugunsten der neueren Python Sprache und den RRT Pfadplanungsalgorithmus zu ersetzen durch ein neuronales Netz. Man hätte damit zwar ein innovatives Robotik-Projekt allerdings würde auch dieses leider scheitern.

Damit dieser Blogpost nicht ausschließlich pessimistisch endet, zum Schluss noch ein kleiner Ausblick wie seit dem Jahr 2010 Robotikprojekte durchgeführt werden. Neuartige Robotik basiert darauf Sprachspiele zu maschinisieren die erforderlich sind um Probleme zu lösen. Ein Speaker übermittelt natürlichsprachige Anweisungen an einen Hearer, der ein Labyrinth durchquert. Die dabei ausgetauschte Kommunikation wird dann in ein Computermodel formalisiert. Damit kann der computer sowohl als Speaker als auch als Hearer agieren und so das Problem lösen.

Der Fokus verschiebt sich dabei von der früheren Programmierung eines Computers hin zum Entwurf eines Sprachspiels. Erst wenn das Sprachstil existiert wird dafür ein Computerprogram erstellt. Damit ist klar definiert was Künstliche Intelligenz ist, hähmlich die maschinelle Ausführung von Sprachspielen.

In der klassischen Informatik wird dies als verteilte KI bzw. agentenbasierte KI beschrieben. Allerdings gehen Sprachspiele weit darüber hinaus weil Sprachspiele auch zwischen Menschen stattfinden können. Im kern wird Sprache als Werkzeug eingesetzt um von der Realität zu abstrahieren.

Ein Sprachspiel ist ein vergleichbar mit klassischen Gesellschaftsspielen wie Mühle, TicTacToe oder Schach, allerdings mit dem Unterschied dass es nicht um logisches Denken geht sondern um das Beherschen einer Sprache. Meist werden Sprachspiele eingesetzt zum Fremdsprachen lernen, Beispiele sind das "Simon Says" spiel, das "Ich sehe was was du nicht siehst" und Übersetzungsspiele bei dem ein Bild in das korrekte Wort übersetzt werden muss.

Derartige Sprachspiele wurden von der Informatik über Jahrzehnte ignoriert. Man kann sie zwar ähnlich wie Schach oder wie ein Kartenspiel in einer Software simulieren und dafür sogar eine KI entwickeln, die das Sprachspiel automatisch löst, nur wurde dies von der Informatik meist nicht als lohnenswerte Aufgabe angesehen. zu unrecht, denn Sprachspiele sind die Schlüsseltechnologie bei der Entwicklungt künstlicher Intelligenz.

Moderne KI seit dem Jahr 2010 lässt sich erstaunlich simpel zusammenfassen. Es geht darum sich neuartige Sprachspiele zu überlegen, diese auf einem Computer zu simulieren und in Datasets und Neuronalen Netzen hochzuskalieren. Wenn man das realisiert, erhält man dabei automatisch eine hochentwickelte Künstliche Intelligenz die in der Lage ist als chatbot zu kommunizieren, die roboter steuern kann und die muster erkennt. Wichtig ist, dass das Sprachspiel oder der Trainingsdatensatz für neuronale Netze an irgendeiner Stelle eine Sprachkomponente beinhaltet. Es müssen also zwingend Verben und Substantive enthalten sein, weil es sonst kein Sprachspiel ist.

Es ist sinnvoll die Geschichte der KI grob in zwei Phasen einzuteilen: vor 2010 wurden mathematische Gesellschaftsspiele untersucht wie das 15 puzzle, Schach und Labyrinthspiele. Seit 2010 werden zusätzlich noch Sprachspiele untersucht z.b. "Visual question answering" "instruction following", "image annotation". Dieser veränderte Fokus erklärt die Erfolge der Künstliche Intelligenz seit dem Jahr 2010.
 

January 16, 2026

Taqging based evaluation functions

 Despite its philosophical implication, Artificial Intelligence is also a technical subject within computer science. There are even some algorithms available to realize game playing agents in software. The most famous one is perpahs an evaluation fucntion which is used since the 1980s in computer chess. The inner working of evaluation function including a semantic improvement should be explained next.

In a classical heuristic evaluation function the current game state is mapped towards a score from 0.0 to 1.0 and this score helps the gradient descent solver to find the optimal action. In case of a path planning problem on a 2d grid map, the score is the manhattan distance to the goal, and in case of computer chess the is the strength of a player determined by the amount of chess pieces on the board.

For complex problem from robotics, the score can't be determined directly because its unclear if a certain game state is an improvement or not. Especially for biped walking based on mulitiple joints its impossible to determine a numerical score for a certain pose. What can be utilized instead is a tagging mechanism. Instead of calculating the numerical score, the computer determined only the detected tags. A tag is a semantic anchor like [finger_open] or [battery_low]. Such a tag doesn't describe the game state with numbers but with words. The numerical scores have to be calculated in a second step:

Game state -> semantic tags -> numerical score

The main advantage of a tagging mechanism is that its much easier to encode domain specific knowledge. There is no need to describe a game state from a mathamtical perspective, but its enough to provide a list of words to annotate a game state. This works great easpecially for complex motion capture annotation. An example list of detected tags for a bipod robot might be: [left_foot_front] [balance_stable] [right_foot_back] [servo_motor_off].

The objective for the computer program is to determine the correct tags in realtime. The robot is moving on the screen and in the background all the tags are shown on the screen.