June 23, 2026

Vision to language dataset for a warehouse robot

 


Short history of ingame AI

 Apart from automation tasks in a factory, there are major attempts available since the 1980s to build intelligent ingame characters targetted towards videogames. This subject seems to be easier to solve because in a videogame all the information are known.

Typical ingame AI in the 1980s was realized with Finite state machines. Especially the pacman game is using this single technique to control the ghosts. Another famous approach is depth first search used in board games likes chess and Nine men's morris.

Both concepts have major disadvantages. A finite state machine is difficult to program and a game state traversal in chess needs a lots of CPU ressources. Until around the year 2000 there were no improvements available. Even if finite state machine have evolved into behavior trees it was also hard to implement.

The main challenge in programming an ingame AI can be summarized as the reality gap between the videogame and the internal representation of the AI agent. A Finite state machine has a certain perspective towards the game encoded in state. For example a pacman ghost has states like attack, evade, idle, random and these states are applied to the current situation. In most cases the reality of a game is more complex than the game AI representation which causes an asynchronous situation. In other word, the game AI isn't communicating enought with the videogame and this explains its poor decision making.

To overcome the bottleneck of ingame AI created until the year 2000 the focus should be on the communication between a videogame and an ingame AI. For reason of simplication there is a virtual referee who is talking to the ingame AI in natural language. This virtual referee is the source of intelligence. He will guid the AI agent. In case of Pacman the referee might say to a ghost "move to upper left", in case of chess the referee might say "protect the center".

Such kind of textual interaction solves the former reality gap. The game AI gets a constant flow of commands from the referee and the only obstacle is to understand and execute them.

Lets compare old school ingame AI with modern communication based AI. The typical AI for a videogame before the year 2010 was realized as a software project. The idea was to encode the knowledge in the source code and make the AI smart by itself. The goal was that the AI acts independent from its environment and has all the needed knowledge and all the needed algorithm as internal software modules for pathfinding, decision making, perception and case based reasoning. Of course it was very complicated to program such an AI but there was no alternative available.

In contrast, modern AI created after the year 2010 is working with the extend mind thesis. The source of knowledge and intelligence is located ooutside of the game bot, either in the game engine, in a virtual referee or in a human operator. There is no need to encode knowledge into the AI itself but the AI is realized as parser for external commands, similar to a receiver in a RC Car teleoperation. The receiver listens to the signals and converts into action. this principle results into a minimalistic software which is much easier to realize and is more flexible at the same time.

The surprising situation is, that technically such a concept was realized in the 1980 already but it was recognized as a here to stay technology. In case of text adventure likes Zork and early role playing games, the human user was entering text commands which were executed by the game engine. So there was no AI available as a compuational engine, but there was only a parser available which executed a two word command.

Such a parser has no reality gap because it has no internal representation. The external human operator is responsible that the avatar is reaching its goal. The parser is only a command receiver.

June 21, 2026

Vision and language dataset generator

The screenshot consists of a random scene generator plus a textual annotation for a food collecting robot. The algorithm generates a maze including food items, and the text widget shows the description of the scene.

Such a setup is useful to generate a synthetic dataset with picture/text pairs to train a neural network.

June 19, 2026

Sprachverstehen durch Computer

Zuverlässige Spracherkennung funktioniert nur in Science fiction Serien aber nicht in der Realität. Über Jahrzehnte war es ein ungelöstes Problem der Informatik ein natürlich-sprachliches Interface zu programmieren. Mit ein Grund dürfte darin liegen, dass aus Linguistischer Perspektive unklar war, was genau natürliche Sprache eigentlich ist.

Man kann Sätze als String-array in Computern speichern und sogar Subjekt / Verb und Objekt erkennen, nur folgt daraus nichts für einen Computer. Ein Computer versteht nur eine Sprache und das ist Assemblersprache oder notfalls eine Programmiersprache wie C/C++. Natürliche Sprache funktioniert nach komplett anderen Regeln. Um den Gap zu schließen gitl es das Problem Spracherkennung zunächst einmal mathematisch zu beschreiben in Form eines Datasets. In der ersten Spalte werden natürlich sprachliche Kommandos abgelegt wie "fahre zum Regal B" während in der zweiten Spalte eine Sequenz von Bildern hinterlegt ist die Zeigen was der Roboter tun soll.

Dieser Dataset definiert was das Problem ist und zwar soll der Computer so agieren wie in dem Dataset dargestellt. Erst in einem zweiten Schritt überlegt man sich dafür passende Alogirthmen oder entwirft neuronale Netze welche die Fehlerzahl möglichst minimieren. Sprachverstehen ist nach dieser Definition also die Fähigkeiten einen vorhandenen Dataset zu imitieren. Zuerst entwirft man einen Sprachtest und dann ermittelt man die punktzahl eines Computerprograms um diesen Test zu bestehen. Das ist das Grundprinzip beim Deep Learning wie es seit den 2010er Jahren erfolgreich in der Informatik erforscht wird.

Geschlossene Systeme und das Scheitern Künstlicher Intelligenz

 In Ergänzung zu früheren Blogposts über geschlossene Systeme soll ausführlicher erläutert werden wo das Problem mit solchen Systeme besteht.

Zunächst einmal ist ein geschlossenes System etwas gutes in der Technikgeschichte weil es dabei hilft Komplexität zu senken. Ein Dieselmotor basiert auf physikalischen Prinzipien realisiert in der Anordnung der Bauteile. Alles was nichts mit der Umwandlung von fossiler Kraftstoffe in Drehbewegung zu tun hatt gehört defnitionsgemäß nicht zu einem Dieselmotor und liegt außerhalb. Es kann ignoriert werden. Dadurch kann man räumlich wie sachlich eingrenzen worum es bei einer Kraftmschine geht. Man kann Bücher darüber verfassen, man kann das Prinzip verstehen und nachbauen.

Auch Softwareentwicklung funktioinert als geschlossenes System. Ein Tetric Computerspiel realisiert in der C/C++ Sprache besteht aus dem sourcecode der ca. 500 lines of code umfasst. Alles was nicht in diesem Sourcecode definiert wurde, gehört nicht zum Projekt, liegt außerhalb und kann ignoriert werden. Folglich besteht Programmieren darin, den vorhandenen Sourcecode zu verbessern. Es gibt auch hier ein sachliches Thema auf das man fokussieren kann und was in ein erfolgreiches Projekt mündet.

Geschlossene Systeme zeichnen sich dadurch aus, dass eine scharfe Systemgrenze gezogen wird, etwas ist Bestandteil des Systems oder eben nicht. Auch sehr große umfangreiche Softwareprojekte wie ein Betriebssystem können als geschlsosene Systeme betrachtet werden. Sie bestehen aus mehreren tausend Dateien mit dem Sourcecode, und alles was darin nicht definiert wurde gehört nicht zum Betriebssystem. Diese banale Feststellung ist so allgegenwertig dass man in der Realität verinfacht nur von Systeme spricht und annimmt, dass alle Systema auf diese Weise erstellt und verbessert werden.

Genau dieser Trugschluss führte bis 2010 dazu, dass Künstliche Intelligenz nach einem ähnlichen Prinzip imaginiert wurde. Die Annahme war, dass ein Roboter oder eine KI Software als geschlsosenes System funktioniert, wo also in Software bestimmte Module und Algorithmen enthalten sind. Z.B. könnte ein Roboter eine pfadplanungs routine enthalten.

Ein solches KI System wird dadurch verbessert dass man weiteren Sourcecode anfügt und vorhandene algorithmen verbessert. Die meisten Robotikprojekte bis 2010 wurden nach dieser Prämisse entwickelt. Speziell der umfangreiche Sourcecode von selbstfahrenden Autos vor dem Jahr 2010 wurde ähnlich wie ein Softwaregroßprojekt programmiert: es gab Bugtracker, es gab versionsverwaltungssysteme und es gab eine Codebasis die in eine ausführbare Exe datei kompiliert wurde.

Leider gibt es mit geschlossenen KI systemen ein Problem. Je mehr ein solcher Roboter leisten soll, desto mehr Sourcecode wird benötigt. Und damit steigt die Fehleranzahl an. Bereits sehr kleine ingame AI projekte bei denen nur eine Spielfigur von einem NPC gesteuert wird, benötigen sehr viele Codezeilen. Will man selbstfahrende Autos programmieren steigt der bedarf an Lines of Code weiter. Vorhandene Werkzeuge um große Informatik Projekte zu organisieren, wie wikis oder bugtracker mögen für die klassische Softwareentwicklung gute Dienste leisten, bei dezidierten Robotik-Projekten versagen sie jedoch. Das problem ist eben nicht wie man die Software programmiert, sondern das Problem ist dass unklar ist welche Art von Software benötigt wird.

Der Ausweg aus dem Dilemma besteht darin die Annahme von geschlossenen Systemen in frage zu zustellen. Ein solches System bedeutet aus Software-Perspektive dass der Sourcecode für einen Computertyp geschrieben wird. Der Algorithmus wird auf der CPU ausgerührt und berechnet dort etwas. Die Berechnung wird im Sourcecode des Programms definiert. Das gegenteil sind offene Systeme. Dort wird nichts berechnet sondern es werden Nachrichten versendet. Das TCP/IP Protokoll im Internet ist ein Besipiel für ein offenes System, aber auch die DIKW pyramide, der Morse code oder die Unicode Tabelle sind offene Systeme.

Offene Systeme zeichnen sich dadurch aus dass sie als Nachrichtenübermittlung konzipiert sind. Es gibt einen Sender und einem Empfänger. Meist erfolgt die Datenübertragung über Schichten um die Komplexität zu senken. Offene Systeme wurden in der KI Geschichte bis zum Jahr 2010 meist ignoriert. Die einzige Ausnahme sind Multiagentensysteme, wo also Softwareagenten untereinander Botschaften senden, vergleichbar mit objektorientierter Programmierung. Es war jedoch unklar wie man diese Technik zur Robotiksteuerung einsetzen kann.

An dieser Stelle ein kleiner Exkurs wie vor dem Jahr 2010 selbstfahrendew Autos als geschlossene Systeme programmiert wurden. Die Idee war, dass es ein computerprogram gibt, welche die Künstliche Intelligenz ist. Dieses computerprogram besteht aus rund 500 MB Sourcecode programmiert in der Sprache C/C++ und enthält alle Module die für die Steruerung des Autos benötigt werden. Also planung, Bilderkennung, Entscheidungen treffen, Fehlerroutinen, Logging, Situationsbewertung usw. Die Intelligenz des Roboters ist in dieser 500 MB großen Datei gebündelt, es gibt keine Außenwelt die weitere Module enthält.

Aus Sicht der Informatik stellt so ein Softwareprojekt die best practice Methode da. Es wird klar definiert was Teil des Roboters ist, und es gibt Tools um die 500 MB große Sourcecode datei zu erstellen und zu verbessern. Leider funktioniert in der Realität so ein Workflow nicht. Die 500 MB Datei geschrieben in C/C++ ist eben nicht im Stande den Roboter zu kontrollieren und zwar generell nicht. Je mehr man versucht den Fehler zu finden desto mehr zusätzlicher Sourcecode muss erstellt werden, der neue Fehler enthält und der niemals im Stande ist die komplexe Realität abzubilden. Der Unterschied zwischen der internen Darstellung im Roboter und der Realität außerhalb des Roboters ist gewaltig.

Innerhalb des bekannten paradigmas geschlsosener Softwaresysteme ist es unmöglich den Fehler zu finden. es ist eben nicht so, dass der 500 MB Sourcecode für das selbstfahrende Auto veraltete algorithmen enthält oder schlecht programiert wäre. Sondern das Problem ist viel grundsätzlicher Natur und betrifft die Annahme hinter solchen Projekten. Das Ziel in der Robotik bis 2010 war es, autonome Roboter zu bauen welche keine menschliche Sprache verstehen. Dieser Bias wurde nirgendwo explizit definiert, sondern ergibt sich automatisch wenn man geschlossene Systeme entwickelt.

June 18, 2026

Nochmal: Geschlossene Systeme -- KI Forschung bis zum Jahr 2010

 Über Jahrzehnte war die KI Forschung von Misserfolgen geprägt die Resultat waren einer selbstgewählten Perspektive auf Künstliche Intelligenz. Die Zielstellung der Forscher bestand darin, eine Technologie zu entwickeln welche denken kann. Also eine Maschine, oder noch besser einen Computer, der geistige Leistungen ausführen kann. Dieser Bias ist naheliegend weil es zugleich auch die Vorstellung von Robotern ist welche in Romanen von isaac Asimov transportiert wird.

Was die KI Forscher vor dem Jahr 2010 jedoch nicht wussten bzw. verdrängt haben, war die bittere Erkenntnis dass das selbstgewählte Ziel nicht erreichbar ist. KI ist zwar grundsätzlich möglich, aber nicht als geschlossenes technologische Artefakt. Um die Leistungsgrenzen geschlossener Systeme zu veranschaulichen zunächst ein kleiner Exkurs wann dieses Konzept funktioniert.

Die meisten Erfindungen der Menschheit funktionieren als geschlossenes System: dazu zählt die mechanische uhr, die Dampfmaschine, die Schnellpresse von König&BAuer, das Automobil der Mikroprozessor, und Software wie z.b. das Windows Betriebssystem. Ein geschlossenes System ist demnach historisch gesehen die beste Methode wie man eine Technologie entwickelt. Man definiert zuerst einmal was die Maschinen können soll, z.b. soll ein Auto auf einer Straße fahren, und überlegt sich dann welche Bauteile man in die Maschine einbauen muss damit die Aufgabe erfüllt wird.

Der Vorteil von geschlossener Systeme ist, dass damit die Komplexität gesenkt wird, z.b. besitzt ein Elektromotor eine Breite und eine Höhe in Centimetern und was sich innerhalb dieser Abmessungen befindet gehört zur Maschine. Auf dieses physische Artefakt fokussiert man dann die Entwicklung und überlegt welche Materialien oder physikalischen Prinzipien wirken.

Auch bei der Softwareentwicklung wird das Prinip eines geschlossenen Systems verwendet. Eine Software besteht aus einem Source code der wiederum in Dateien unterteilt wird. In diesem Sourcecode ist die Funktionsweise der Software definiert. Alles was nicht im Sourcecode steht wird ignoriert. Es liegt außerhalb des System und ist für die Funktionsweise ohne Bedeutung. Stattdessen geht es darum, besagten Sourcecode zu optimieren, also effizientere Algorithmen zu verwe4nden, weniger Codezeilen zu verbrauchen udn vorhandene Fehler zu beseitigen.

Die unreflektierte Annahme der KI Forschung vor dem Jahr 2010 lautete, dass Robotik und KI nach demselben Prinzip funktioniert. Die Idee war, dass KI eine Art von Algorithmus sei, der innerhalb des Sourcecode definiert wird. Folgerichtig wurde versucht einen Roboter in einer Programmiersprache wie C/C++ zu programmieren. Relativ spät erkannten die Forscher dass genau dieser Ansatz problematisch ist. Damit ein Roboter intelligent in einer Umgebung agieren kann, muss der Roboter mindestens so komplex sein wie diese Umgebung. Eine KI zu programmieren die den kürzesten Weg in einem Labyrinth findet ist überschaubar, aber eine KI welche einen Roboter in der physischen Realität steuert ist eine unüberwindliche Aufgabe. Das benötigte Software programm für so einen Roboter würde sehr viele Codezeilen benötigen und selbst diese könnten nicht die komplexe Realität abbilden.

Eine Zeitlang gab es innerhalb der Robotik-Forschung eine wirkmächtige Antwort auf das Phänomen, genannt Model predictive control. Die Idee war, die Realität als vereinfachte Physiksimulation in Software nachzubauen, in dieser Simulation Prognosen auszuführen und dadurch dann die beste Entsheidung zu treffen. In den 2000er Jahren gab es mehrere Projekte wo mittels Model predictive control, Dronen gesteuert wurden und sogar grasp planning realisiert wurde. Leider ist model predictive control sehr rechenaufwendig. Eine halbwegs präzise physik Simulation benötigt sehr viele CPU Taktzyklen, gleichzeitig braucht aber der KI eine Prognose mehrmals pro Sekunde um auf Veräderungen zu reagieren. Model predictive control funktioniert nur auf dem Papier, aber nicht auf echter Hardware, speziell die Vorhersage längerer Zeiträume bis Minuten in die Zukunft sind technisch  nicht umsetzbar.

Abstrakt gesagt entstehen durch geschlossene Systeme in der KI Forschung zwei grundsätzliche Probleme: a) hohe Komplexität des Source codebode b) hoher Rechenaufwand bei der Ausführung von Algorithmen und der Model predictive Control Vorhersagen.

Anfangs dachten die Forscher, beide Problemen wären lösbar. Das war Wunschdenken. Es ist nicht durchführbar einen Roboter zu programmieren der hundertausende Codezeilen benötigt, und hohe Anforderungen an die CPU gleichzeitig hat. Ein solches Projekt wird in der REalität scheitern.

Betrachten wir geschlossene Systeme etwas genauer. Im wesentlichen Funktionieren diese Systeme nach Naturwissenschaftlichen Prinzipien. Ein Elektromotor verwendet einen Magneten um eine Drehbewegung zu erzeugen, während ein Mikroprozessor über elektrischen Strom kleine Transistoren schaltet. Es gibt also jeweils ein physikalisches Prinzip was in einer Maschine praktisch angewendet wird. Dadurch dreht sich ein Motor, der Computer beginnt zu rechnen oder ein Flugzeug fliegt durch die Luft. Man glaubte anfangs, dass Künstliche Intelligenz auf ähnliche Weise realisiert werden könnte, das es also ein wissenschaftlich-technisches Prinzip gibt was man in einem Softwareprogramm anwenden kann um darüber Roboter zu steuern. Was die Forscher vor dem Jahr 2010 nicht wussten war dass es ein solches Naturprinzip nicht gibt, das es also nicht möglich ist, auf diese Wweise Künstliche Intelligenz zu erzeugen.

Eine mögliche Erklärung warum die KI Forschung bis ca. 2010 sich auf geschlossene Systeme fokussierte ist, dass die Informatik insgesamt nach diesem Muster funktioniert. Definitionsgemäß untersucht Informatik die Funktionsweise von Computern, also speziell die Hardware und die Software. Damit ist zugleich definiert wofür die Informatik nicht zuständig ist. Alles was keine Computerhardware ist und nicht smit Software zu tun hat, liegt außerhalb der Informatik und entzieht sich einer wissenschaftlichen Analyse.

Diese Einschränkung ist für die klassische Informatik kein Problem und sogar erwünscht weil es dabei hilft echte Probleme zu lösen, also z.b. neue CPU zu entwickeln, bessere Programmiersprachen zu erfinden oder Betriebssysteme zu entwickeln. All diese Thmene sind entweder im Bereich Hardware oder im Bereich Software angesiedelt.


Typst als Ersatz für LaTeX

 LaTeX gilt seit den 1980er als defakto Standard unter Unix um wissenschaftliche Dokumente zu formatieren. Bersonders bei sehr umfangreichen Dokumenten die ein einheitliches Layout erhalten sollen, hat LaTeX seine Stärke. Trotz der gewöhnungsbedürftigen Syntax gilt es als leicht zu erlernen und lange Zeit gab es keine wirkliche Alternative zu dieser Software.

Seit einiger Zeit hat sich die unscheinbare Typst Software zu einem ernstzunehmenden Ersatz für LaTeX etabliert. Die Syntax von Typst ist ähnlich wie markdown aufgebaut und beinhaltet Kommandos um float-Abbildungen einzufügen, Tabellen zu erstellen, preformatted Text auszugeben sowie eine automatische Gliederung zu erstellen. Die wesentlichen Verbesserungen von typst gegenüber LaTeX sind:

- es benötigt nur 50 MB auf der Festplatte anstatt 5 GB
- die Syntax ist einfacher und logischer
- das Übersetzen einer Typst datei in eine PDF Datei dauert weniger als 1 Sekunde

Der einzige Grund warum Typst bisher LaTeX noch nicht verdrängt hat ist die Gewohnheit der Nutzer. Die LaTeX Community gilt als konservativ und viele nutzen die Software seit den 1980er Jahren also seit über 40 Jahren. Das macht den Wechsel auf eine andere Plattform aufwendig.

Es gibt jedoch einen simplen Trick wie der Umstieg auf typst gelingt. Und zwar mit der selben Methode wie man auf neue Technologie generell wechselt: man löscht die veraltete Software von der Software und gewinnt so Freiraum sich auf etwas neues einzulassen. In Linux lautet der Befehl:

apt remove texlive*

Der Vorteil von typst ist dass das Projekt sehr viel aufgeräumter wirkt. Es fehlen unzählige veraltete Pakete die historisch bedingt sind, stattdessen wurden die meisten features fest in die Software einprogrammiert. Ähnlich wie bei LateX auch haben Neueinsteiger mit einer gewissen Lernkurve zu kämpfen. Man muss sich erstmalig durch die Dokumentation kämpfen um so eine Minimal Datei zu erstellen, welche die gewünschten Layout einstellungen beinhaltet. Man definiert z.b. die Seitengröße A4, legt den gewünschten Systemfont fest, definiert einige Tabellenparameter wie z.b. liniendicke und definiert die Häufigkeit der Silbentrennung. Sind diese vorarbeiten einmal erledigt, kann man die selbe Rumpfdatei nutzen um damit beliebig viele PDF Dokumente zu erstellen. Ähnlich wie bei LaTeX müssen Autoren nur den Text eingeben und die Software rendert die Darstellung auf dem Bildschirm.

Und das macht typst ausgesprochen gut, im Regelfall sind die Abbildungen sinnvoll platziert und auch der Blocksatz sieht halbwegs professionell aus. Die Qualität ist nicht ganz so optimiert wie bei pdflatex, es gibt also durchaus noch Verbesserungsmöglichkeiten. Aktuell ist derzeit die typst version 0.15 vom Juni 2026.

June 15, 2026

Geschlossene KI Systeme vor dem Jahr 2010

 Auch vor dem Jahr 2010 wurde bereits an Robotik geforscht. Eine typische Robotik-Software aus dieser Epoche beinhaltete fplgenden Befehl:
  
  if (distance_to_wall < 10) { slowdown(); }

Mit dieser und weiterer Regeln wurde die Onboard Intelligenz eines Roboters fest im Programmcode definiert. Leider waren die Roboter nicht im Imstande sinnvoll zu agieren. Deshalb wurde versucht die Anzahl der Codezeilen immer weiter zu erhöhen um für jede Eventualität ein Untermodul vorzuhalten.

Das Grundproblem wurde vor dem Jahr 2010 nicht erkannt. Es besteht darin, dass die interne Komplexität eines Roboters ansteigt wenn die äußere Komplexität erhöht wird. Industrieroboter die in einer berechenbaren Umgebung eingesetzt werden, können über obige C/C++ Programmlogik noch halbwegs sinnvoll realisiert werden, aber mobile Roboter in einem Labyrinth oder gar selbstfahrende Autos sind mit dieser Technik nicht möglich. Die Umgebung ist viel zu kompleziert, um dafür eine zuverlässige Steuersoftware zu programmieren.

Ab dem Jahr 2010 wurde deshalb eine neue Richtung in der Robotik eingeschlagen die kurz erläutert werden soll. Die Grundidee besteht darin, Intelligenz auszulagern, also weg vom Roboter hin zur Umgebung des Roboters. Damit kann die Steuersoftware des Roboter minimalistisch gestaltet werden. Die Hauptaufgabe des Roboters besteht nur noch darin, Befehle die von einem operator oder von sensoren kommen zu parsen. Der Roboter muss nicht länger Entscheidungen treffen oder gar die Umgebung intern simulieren, wie das bei Model predictive control der Fall ist. Abstrakt gesprochen verwandelt sich ein geschlossenes KI System in ein offenes KI system.

Der Ansatz die interne Logik des Roboters auszulagern war ein längerer Innovationsprozess in der KI Community. Angestoßen wurde er von Rodney Brooks mit seiner subsumption architektur. Im wesentlichen geht es darum, die komplexität eines Roboters zu senken. Die neuartige minimalistische Softwarearchitektur kann nur mittels Fernsteuerung funktionieren, das es also außerhalb des Roboters eine höhere Instanz gibt die stellvertretend für den Roboter Kamerabilder auswertet, Entscheidungen trifft und Pläne durchprobiert.

Technisch gesehen ist der Paradigmenwechsel sehr einfach: anstatt einen denkenden Roboter zu realisieren, funktioniert der Roboter als Parser der Befehle von außen ausführt. Es ist also kein Roboter im engeren Sinne sondern ein ferngesteuertes Auto das auf Kommandos reagiert. Philosophisch gesehen ist so ein Ansatz jedoch weitaus schwieriger zu realisieren, weil er mit der gängigen Vorstellung von Intelligenz bricht. Über Jahrezehnte wurde Intelligenz als die Fähigkeit verstanden eigenständig Probleme zu lösen. Das trifft auf ferngesteuerte Roboter jedoch nicht zu. Ein Ferngesteuertes Auto wo ein Mensch über Tasten oder Sprache Befehle eintippt ist definitionsgemäß nicht intelligent, fällt also nicht in den Bereich der KI Forschung.

Dennoch ist genau jenes Interaktionsmuster zur Leitdisziplin der Robotik ab dem Jahr 2010 aufgestiegen. Eigenltich jedes moderne Robotik Projekt basiert auf Vision language action modellen, instruction following und VQA Benchmarks. Es gibt keine Versuche mehr, Roboter als autonome Systeme zu konstruieren, sondern 100% aller Robotik-Projekte funktioniert über Intelligence offloading mittels natürlicher Sprache. DAs also außerhalb des Roboters eine Software oder ein Mensch Befehle eingibt die vom Roboter lediglich in Handlungen übersetzt werden.

Obwohl der Ansatz zunächst umstritten war hat er einen Entscheidenen Vorteil: er ist minimalistisch. Ein ferngesteuertes System zu realisieren ist weitaus leichter als ein autonomes System zu bauen. Besonders bei komplexen Aufgaben und unstrukturierten Umgebungen kommt dieser Vorteil zum Tragen.  Das einzige Detailproblem bei semi-autonomen Systemen besteht darin die Aufgabenverteilung zwischen Roboter und menschlichen Operator auszubalanzieren, also dafür zu sorgen dass die interaktion über high level kommandos erfolgt und so die workload für den Menschen möglichst gering ist. Hier eine Rangfolge:

- hoher Workload: Fernbedienung mit Tasten ohne Befehle
- mittlerer Workload: es werden Waypoints in einer Karte vorgegeben die der Roboter abfährt
- geringer Workload: es wird ein Text prompt an den Roboter gesendet wie "fahre im Kreis".

KI von 2010 bis 2020

 Bis ungefähr zum Jahr 2010 verlief die KI Entwicklung enttäuschend. Es war nicht gerade ein dezidierter AI Winter, aber insgesamt galt KI als unlösbare Aufgabe und es gab keine Technologie auf die man aufbauen konnte. Das änderte sich ab ca. 2010 schlagartig. In diesem Jahrzehnt gab es eine Vielzahl von Meilensteine, die auch heute noch relevanz haben:

2011 IBM Watson
2012 Alexnet bilderkennung
2016 Alphago
2017 GAN network
2018 BERT Sprachmodell
2019 GPT-2 text generator

Es ist nicht übertrieben die Zeit nach 2010 als den Beginn der modernen state of the Art KI Entwicklung zu beschreiben. Die neuronalen Netze, Datasets und Roboter ab diesem Zeitraum haben die Grundlagen gelegt für heutige leistungsfähigere Systeme. Zwar war in den 2010er KI noch nicht im Mainstream angekommen, aber es begann sich für Experten auf dem Gebiet abzuzeichnen dass KI grundsätzlich realisierbar ist.

June 14, 2026

Wie man Künstliche Intelligenz erneut erfindet

 Die Erforschung der KI war von 1900 bis 2010 von vielen Rückschlägen und gescheiterten Projekten geprägt. Mit der gewonnenen Erfahrung lässt sich im Nachhinein ermitteln wie man das Gebiet der denkenden Maschinen hätte effizienter und früher entwickeln können. Im Zentrum steht die Beobachtung dass künstliche Intleligenz weniger in einem Algorithmus besteht sondern in der Messung der Leistungsfähigkeit besteht. Z.B. gab es in den 1990er Jahren dezidierte Datasets um Handschriften per OCR zu erkennen und seit den 2020 gibt es weitere Datasets für das Visual question answering Problem.

Ein KI Benchmark besteht üblicherweise aus einer längeren tabelle mit Frage/Antwort paaren welche von KI beantwortet werden müssen und zu einem Punktestand führen. ziel ist es, eine Software oder ein neuronales Netz zu entwickeln was den Punktestand maximiert. Es ist dabei fast egal wie genau ein neuronales Netz intern arbeitet, sondern worum es geht ist dass man den Punktestand objektiv ermittelt. Dadurch wird Künstliche Intelligenz zu einer Wissenschaft, die mit statisischer Verfahren untersucht werden kann.

Selgst ein neuraonles Netz was in einem Test scheitert, also nicht im Stande ist für ein gezeigtes Bild das passende Wort auszugeben, ist wissenschaftlich gesehen ein wertvoller Fakt weil es dabei hilft künftige Neruonale Netze zu entwickeln, die diese Aufgabe zu lösen im Stande sind.

Bis in die 2000er Jahre war weitestgehend unklar was Künstliche Intelligenz ist oder wie man es praktisch realisiert. Es gab zwar viele Bücher und mehrere Robotik-Projekte die sich der Erforschung denkender Maschinen verschrieben haben, doch es fehlt an einer zentralen Idee, einem Algorithmus oder an einer bestimmten Hardware um konkrete Fortschritte zu realisieren.

Dies änderte sich ungefähr ab dem Jahr 2010. Die Arbeitsthese lautet, dass sich die Vielzahl der Bemühungen KI zu realisieren auf einen Punkt fokussieren lassen und zwar die Entwicklung eines Benchmarks zur Ermittlung ob eine Maschine grounded language versteht. Die zentrale Idee zur Realisierung künstlicher Intelligenz ist also eine besondere Form des Turing Tests der die sprachlichen Fähigkeiten eines Computers überprüft.

Dieser Test bzw. Benchmark war vor dem Jahr 2010 nicht verfügbar. Der Test ist kein Algorithmus, kein Source code wie das Linux Betriebssystem und auch kein Computerchip wie z.B. eine Pentium CPU sondern es handelt sich um eine Idee die man schriftlich notieren kann und wozu man einen konkreten Wettbewerb entwickeln kann. Ein einfaches Beispiel ist:

"In einem Labyrinth soll ein Roboter über Sprachliche Kommandos gesteuert werden: is_obstacle, check_battery, move forward, rotate left/right. Programmiere diesen Roboter in einer beliebigen Programmiersprache".

Es handelt sich um eine überschaubare Programmieraufgabe, die Ähnlichkeit hat mit dem Karel the robot Projekt aus den 1980er Jahren. Es handelt sich aus wissenschaftlicher Sicht um einen instruction following benchmark. Das heißt der Roboter reagiert auf eine vorgegebene Anzahl von Kommandos die von einem menschlichen Operator gesendet werden. Die KI ist demnach ein Parser-Modul was die Kommandos auswertet und in Handlungen umsetzt. Wenn der Roboter alle Befehle verarbeiten kann wurde der Benchmark erfolgreich bearbeitet.

Der Clou dabei ist, dass sich der Benchmark hochskalieren lässt. Was in einem 2d Labyrinth funktioniert, funktioniert ebenso bei einem biped roboter, einem humanoiden Roboter, oder einer UAV Drone. In jedem Fall wird eine Liste von Textkommandos vorgegeben die vom Roboter ausgeführt werden. Die Kommandos haben etwas mit der Abfrage der Sensoren zu tun, genauso wie man Planung und der Motorsteuerung. So ein Benchmark ist nach der obigen These, das zentrale Element moderner KI wie sie ab dem Jahr 2010 verfügbar ist.

Der einzige Diskurs innnerhalb der KI Community erfolgt darüber wie im Detail so ein Benchmark ausgestaltet ist, also welche Robotik-Domän verwendet wird, wieviele Befehle der Roboter verstehen soll, ob die Umsetzung über ein C/C++ Programm oder ein neuronales Netz erfolgt usw. Es geht in jedem Fall darum den Benchmark zu erfüllen. Darüber demonstratiert der Roboter Intelligenz.

Diese strikte Definition des Benchmarks ist etwas neuartiges. Hätte man vor dem Jahr 2010 die These formuliert, dass Intelligenz darin besteht textuelle Komamandos auszuführen wie in dem "Karel the robot" Projekt, hätte der Autor des Papers wohl Ablehnung durch seine fachkollegen erfahren. Vor dem Jahr 2010 wurde Künstliche Intelligenz anders defninert und zwar als dessen Gegenteil, also a) Abwesenheit von natürlicher Sprache und b) Abwesenheit von Teleoperation.

June 13, 2026

Der letzte KI Winter von 2000-2010

 Die Zeitepoche von 2000 bis 2010 eignet sich ausgezeichnet um das scheitern früherer Versuche zu beschreiben, Künstliche Intelligenz zu erforschen. Ähnlich wie die Jahrzehnte davor gab es mehrere KI Projekte sowohl in der Industrie als auch akademischer Natur, die ähnlich wie die Projekte in den 90er und 80er ohne Erfolg verliefen:

- semantic web von Tim Berners Lee
- Cyc von Douglas Lenat
- WordNet für maschinelle Übersetzung
- DARPA Grand Challenge
- kognitive Architektur wie SOAR
- Roboter ASIMO von Honda

Zwar wurden im Rahmen dieser Projekte lauffähige Software entwickelt und Datenbanken erstellt. Es gibt zu Cyc und zum Semantic Web viele praktische Beispiele. Auch das selbstfahrende Auto Stanley von Sebastian Thrun ist tatsächlich autonom gefahren und wurde über Software gesteuert. Nur waren die verwendeten Technologien nicht skalierbar und ohne praktische Bedeutung. Die normale Internettechnologie bestehend aus HTML funktioniert stabil genug ohne dass man eine Erweituerng namens Semantic web benötigte, und die Wordnet Datenbank hatte eine zu geringe Qualität um damit Texte zu übersetzen.

Man kann sagen, dass die Zeitspanne von 2000 bis 2010 eine verlorene Dekade für die KI Forschung war. Es wurde viel ausprobiert, es gab namenhafte Forscher die sich näher mit der Thamatik beschäftigten, aber es gab keine Durchbrüche oder anwendungsbereite Demonstrationen im eigentlichen Sinne.

Auf den ersten Blick klangen die o.g. KI Projekte vielversprechend. Der Ansatz ein selbstfahrendes Auto zu bauen was gegen andere Autos in einem Wettrennen antritt hört sich nach einer spannenden Herausforderung für die Robotik an. Und die Idee common sense knowledge in einer Cyc Datenbank zu bündeln erscheint wie der durchdachte Versuch eine denkende Datenbank zu erschaffen. Dennoch stellte sich heraus, dass die Konzepte fehlerhaft waren. Sie verkörperten Sackgassen, die einmalig beschritten wurden und dann nicht weiter verfolgt wurden.

DIe Geschichte der Künstlichen Intelligenz verkörpert wie keine andere Wissenschaft eine Abfolge von gescheiterten Bemühungen. So ähnlich als wenn wenn mehrere Bergsteiger einen Berg auf sehr unterschiedliche Weise besteigen wollen, aber keinem gelingt auch nur die erste Etappe zu meistern.

Man kann das Scheitern anhand mehrerer Parameter erklären. Entweder ist die benötigte CPU Rechenleistung um einen Algorithmus auszuführen zu groß. Dies ist bei den meisten Pfadplannungsalgorithmen in der Robotik inkl. model predictive control der Fall. In der Theorie könnte man den game tree über einen Algorithmus durchprobieren so wie man Computerschach spielt, doch in der Realität sind physische Computer des Jahres 2010 dafür zu langsam. Also ist der Ansatz nicht praktikabel. Ein weiteres objektives Kennzeichen für ein scheitern ist der hohe manuelle Aufwand der beim Erstellen von Datenbanken wie wordnet oder Cyc anfällt. Es ist schlichtweg zu teuer über Jahre hinweg manuell eine Datenbank zu erstellen die dann keinerlei Nutzen erbringt. Ein weiteres Kennzeichen für gescheiterte KI projekte ist der hohe Programmieraufwand gemessen in lines of code. So wurden für die DARPA Grand Challenge mehrere 100k lines of code erstellt und zwar von jedem teilnehmenden Team einzeln. All diesen Code in C/C++ zu erstellen und zu warten ist ein hoher Aufwand insbesondere wenn man den code nicht erneut verwenden kann sondern er stark auf ein konkretes Auto und ein konkretes Team zugeschnitten wurde.

Die genannten Probleme des hohen Rechenbedarf, des manuellen Aufwandes beim Datenbank-Erstellen und das manuelle Erstellen des Source code waren wohl von 2000 bis 2010 bekannt, aber es war unklar wie man den Aufwand senken kann.

Als kleiner Ausblick auf die Zeitpsanne ab 2010 soll kurz erläutert werden, welche Ansätze nicht verfügbar waren.

- Ferngesteuerte Roboter
- Datasets um neuronale netze zu trainieren

Beide Themen wurden als unwichtig definiert. So wurden ferngesteuerte Robotik nicht als erstrebenswert angesehen, weil laut selbstgewähltem Ziel es darum ging autonome algorithmengesteurte Roboter zu entwickeln aber keine RC cars zu bauen. Auch dem Thema Datasets und preprocessing wurde keine Aufmerksamkeit gewidmet. Es wurde angenommen dass künstliche Intelligen im neuronalen netz verortet sei und die Datenqualität unwichtig wäre mit der das NEtz trainiert wird.

Es finden sich in der Literatur vor 2010 durchaus Beispiele wo remote control roboter diskutiert wurden und wo das erstellen von größeren Datasets thematisiert wurden, aber diese Ansätze galten als Randthemen ohne Relevanz für die weitere Erforschung der Künstlichen Intelligenz. Das änderte sich ab 2010 grundlegend und zwar deshalb weil man mit den bisherigen versuchen in einer Sackgasse steckte und daraufhin die Prioritäten in der Forschung neu justierte.

June 12, 2026

VLA models -- the upcoming revolution in AI

 Since the year 2023, there are Large language models (LLM) available which are soem sort of advanced chatbots. A LLM can answer question, programs a computer code and can paint an image. Even if these systems are looking powerful there is a much more advanced technology available not released yet which is a VLA model.

VLA stands for vision language action model. It can handle text in combination with robotic action which is needed to control biped robots and drones both. The user interface looks similar to a LLM because there is a text box and the user enters a prompt. The difference is, that the AI software will convert the prompt into action. An example prompt might be "walk in a circle" "bring me the red ball".

Similar to a LLM, a VLA Model works with natural language. The AI won't do anything by its own but its a text based interaction between human and machine. The innovation is, that the output of the AI isn't restricted to a text window on the monitor but the AI has access to servo motors in the reality or can control ingame characters in a videogame. Such kind of AI is available in research prototypes and was described in academic papers but its not available as commercial product for everyone.

Current LLM can simulate the behavior in parts today. Its possible to upload a JPEG image to the internet and the AI can describe the picture with words. Such kind of picture to text annotation seems a bit useless, because its obvious what is shown on the picture. So the feature is used seldom in the reality. Only in combination with actuator control of a robot it makes sense to annotate pictures. Because the robot needs to transform the camera signal into text and then take decisions in response to the information.




AI the big picture

 AI isn't new but was researched since decades by multiple researchers. They have investigated andless amount of theories and algorithms for different subjects. To get a better picture what the AI community has researched in the past, the working thesis is, that there was a transition from closed systems in the past, to open systems in the present time. This working thesis should be explained briefly.

A closed system is the natural understanding in computing. It assumes that a software runs on a computer, and the programmer has to write down the source code including the algorithm. A typical example is a model predictive control algorithm which takes a physics engine to predict future states, or a path planning algorithm like RRT which searches for the shortest path. These approaches are imitating classical computer science paradigm which are working with the same technique.

The idea of a closed AI system is to grasp the reality in mathematical terms and write a computer program which solves a mathematical optimization problem. Such kind of appraoch was common in AI history until the 1990s. The only debate was about which algorithm was prefered, for example neural network or an alpha beta pruning algorithm.

It should be mentioend, that closed systems are not powerful enought to tackle advanced probloems. Especially in the domain of robot control, the paradigm fails every time, because of the state space explosion. There is no algorithm available which can handle millions of joint configurations of a biped robot. That was the reason why some pessimistic AI researchers in the past have assumed, that its not possible to solve np hard problems in AI.

A more powerful paradigm is an open system. Early examples are motion capture systems from the 1980s which are recording the position of markers in real time. Such a system is open because it tries to capture data from the environment, here mocap data. Another example of an early open system are text adventures like Zork I which puts also a great priority on human to machine interaction. Modern open systems developed after the year 2000 are using advanced interfaces based on text and sensory data. These systems are open because the input send to the computer is the most important information. A human operator might speak "Move to north and grasp the blue box". or another human operator might demonstrate a walking pattern in a motion capture suite and the robot has to repeat the trajectory. In open systems, the man to machine interaction stands in the center of attention. Possilble technologies like certain algorithms, a certain neural network or a database is groupoed around this principle. For example, a neural network might used to deterect the mocap markers, while a SQL database is used to store the realtime data, and then a rendering algorithm might fetch the database and paint the human pose on the screen.

From a technical perspective, these algorithms are trivial and most of them were available before the 1990s. The innovation is the context in which they are used which is human to machine interaction. The existing software libraries are not used to build closed systems e.g. a genetic algorithm which tries to improve itself, but they are used to parse textual input or annotate sensor data with textual [tags].

Newspaper with AI advertisement

 

June 10, 2026

Matching game in python

The font-name needs to be adjusted according to the operating system, otherwise only a question mark is shown in the window.

import pygame
import sys
import time

# Pygame initialisieren
pygame.init()

# Fenstergröße
WIDTH, HEIGHT = 640, 480
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("Emoji-Text-Matching")

# Farben
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)
BLUE = (0, 0, 255)

# Schriftarten (mit Unicode-Unterstützung)
# font_large = pygame.font.SysFont("Segoe UI Emoji", 120)  # Für Emoji Windows
font_large = pygame.font.SysFont("Noto Color Emoji", 150)  # Für Emoji Linux
font_small = pygame.font.SysFont("Arial", 30)            # Für Text

# Emoji-Text-Paare (20 Einträge)
pairs = [
    ("🐶", "Hund"),
    ("🐱", "Katze"),
    ("🐭", "Maus"),
    ("🐹", "Hamster"),
    ("🐰", "Hase"),
    ("🦊", "Fuchs"),
    ("🐻", "Bär"),
    ("🐼", "Panda"),
    ("🐨", "Koala"),
    ("🐯", "Tiger"),
    ("🦁", "Löwe"),
    ("🐮", "Kuh"),
    ("🐷", "Schwein"),
    ("🐸", "Frosch"),
    ("🐵", "Affe"),
    ("🐒", "Affe2"),
    ("🐺", "Wolf"),
    ("🐗", "Wildschwein"),
    ("🦊", "Fuchs"),
    ("🐝", "Biene"),
    ("🐛", "Raupe"),
    ("🔪", "Messer"),
    ("🔦", "Taschenlampe"),
    
    
]

# Position für Emoji und Text (zentriert)
emoji_x, emoji_y = WIDTH // 2, HEIGHT // 3
text_x, text_y = WIDTH // 2, emoji_y + 150

# Hauptspielschleife
def main():
    clock = pygame.time.Clock()
    running = True
    current_pair_index = 0

    while running:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                running = False

        # Hintergrund
        screen.fill(WHITE)

        # Aktuelles Paar anzeigen
        if current_pair_index < len(pairs):
            emoji, text = pairs[current_pair_index]

            # Emoji groß anzeigen
            emoji_surface = font_large.render(emoji, True, BLACK)
            emoji_rect = emoji_surface.get_rect(center=(emoji_x, emoji_y))
            screen.blit(emoji_surface, emoji_rect)

            # Text darunter
            text_surface = font_small.render(text, True, BLUE)
            text_rect = text_surface.get_rect(center=(text_x, text_y))
            screen.blit(text_surface, text_rect)

            # Nächstes Paar nach 1 Sekunde
            time.sleep(1)
            current_pair_index += 1
        else:
            # Alle Paare gezeigt: Beenden oder neu starten
            font_done = pygame.font.SysFont("Arial", 40)
            done_text = font_done.render("Alle Paare gezeigt!", True, BLACK)
            done_rect = done_text.get_rect(center=(WIDTH // 2, HEIGHT // 2))
            screen.blit(done_text, done_rect)

        # Aktualisieren des Displays
        pygame.display.flip()
        clock.tick(30)

    pygame.quit()
    sys.exit()

if __name__ == "__main__":
    main()

June 07, 2026

What is Artificial Intelligence?

 In contrast to a famous myth, there is an answer available to this question because researchers have investigated the subject for decades. The most famous and easy to understand definition aka introduction towards the subject is a computer chess player. The computer is able to decide for the next move on the board and a modern chess program can beat even a grandmaster.

Computer chess explains at the same time, what current Artificial Intelligence can't provide yet. There is a difference available between a program like gnuchess and a robot. Gnuchess is only able to play chess, while a robot has to do more complex tasks. AI research since the 1980s was devoted towards the goal to improve the skills of a computer.

A promising approach is a reward function based on grounded language. In contrast to a fixed reward function which is used in computer chess, a parametric reward function based on natural language can be modified on the fly. This allows a computer to understand instrauctions like "move to the blue box and grasp it". This command is translated into a reward signal and the computer can plan a trajectory to maximize the reward.

Let us compare computer chess with instruction following in robotics. Computer chess is based on a single fixed evaluation function which converts the current board into a reward signal e.g. 0.4. This numerical information is used by the alpha beta prunning algorithm to find the optimal action. The planner is traversing the game tree upt to 10 steps into the future and decides for an action which maximaizes the reward. This is equal to win the game.

In contrast, instruction following in robotics is offloading the reward signal to a speaker located outisde of the robot. The speaker, determines by its command what the current subgoal is in the game. A possible command might be:

1. "if the battery is empty search for the charging station"
2. "grasp the red box"
3. "bring the red box into room C".

In contrast to the game of chess which has a single goal which remains the same, a warehouse robot can have multiple goals which are acivated in a sequence. The AI makes sure, that the robot understands a goal, in a mathematical sense. Understanding means, that the robot determines the numerical reward for a textual command. For example, if the goal is "grasp the red box" the robot will receive a reward if the gripper moves towards the box and another reward for closing the gipper around the box.

The problem for the programmers and AI engineers is to encode the reward function including the natural language parser in software. A robot who understands a dozens of commands comes close to the goal of building an intelligence machine.

The purpose of a command based reward function is to transform a closed system into an open system. Open means, that the robot is communicating with its environment. The need for doing so is because the robot itself has insufficient knowledge about the task, on the other hand the human operator has much more knowledge. It makes sense to offload the planning task towards the human operator.

In chess playing AI systems from the past with a fixed evaluation function it was not possible to interact with the system during runtime. The only strategy to modify the reward was to stop the program, modify the source the source code and restart the software.

June 02, 2026

Grounding mechanism 1o1

 A DIKW pyramid consists of abstraction layers like Data, information and other. A grounding mechamism maps the items in the layer. In an example warehouse robot, the data layer cosnsits of sensor readings like GPS Coordinates, lidar distance, and battery capacity while the information layer consists of [tags] like "battery_full, north, obstacle_ahead".

The grounding mechanism generates the links between the entries. For example the lidar distcance of 10 cm is mapped to "obstacle_ahead" while the battery level of 10% is mapped to "Battery_empty".

In general, a grounding mechanism is some sort of matching game. it answers the question which situation is mapped to which description. Such a mapping is the core element of an advanced artificail intelligence.

To demonstrate why a matching game enables artificial intelligence let us assume an example. Suppose the human operator submits a command to the warehouse robot which is "move to the green area, grasp the small box on the left side, bring the box to the blue area, drop it into the shelf, then recharge your battery".

If the grounding mechanism is missing or was deactated, the command is interpreted as string with 144 characters. It wasn't formulated in the C/C++ programming langauge but it can be stored only in the main memory.

Suppose the robot has a builtin grounding mechanism, than its possible to parse the sentence word by word. The word "green" is matching to a certain RGB value, the word "box" is mapped to a certain shape in the camera, the word "shelf" is mapped to a picture of the shelf and so on. The parsing algorithm fetches a word from the sentences, and takes a lookup into the database to identify the item from the data layer of the DIKW pyramid. Understanding a sentence from a robots perspective has to do with matching items from the information layer to the data layer.

June 01, 2026

Symbol grounding problem as answer to np hard algorithms

 Before its possible to describe grounded language there is a need to explain who artificial intelligence was imagined until the year 1990. It was treated similar to computer programming in the sense that there is a CPU which executes a program and its up to the programmer to make the algorithm as intelligent as possible. Artificial intelligence was thought as a very advanced computer programmed which is executed by a computer.

In other terms, the computer was seen as a problem solving machine and the only detail problem was which sort of algorithm is needed to solve a certain problem. For example motion planning in robotics was solved with motion planning algorithms while computer chess was solved with alpha beta prunning algorithms. Most of these AI related algorithms were designed as search algorithms. The computer was used to traverse the state space of the domain and this allowed the computer to find the optimal action.

The symbol grounding problem formulated by Stevan Harnad questions this algorithm oriented paradigm. This might explain why even today grounded language is a niche topic within computer science. Because computer science and algorithms were often treated as the same thing, it was outside of the scope how to program a computer without an algorithm.

Let us listen closely how Harnad, Brooks and Steels are arguing about grounded language. The core element is the sensory perception of a robot. The assumption is that the perception is transmitted to the computer. There is no need to calculate something but the focus on the data transfer. A light sensor detects light and the information from the sensor is send over a cable to the computer. The symbol grouding problem doesn't focus on the computer itself, but on the cable between a sensor and a computer, very similar to a computer network. Computer networks are different from a turing machine, they are never running algorithms, but a computer network communicates data often organized in a protocol layer.

The paradigm shift from algorithm centric computers towards protocol oriented data transmission is the core element of the symbol grounding problem. Artificial Intelligence isn't explained as processing or program executation, but Artificical Intelligence is imaged as the air gap between two hosts.

Let us compare the hardware. In classical algorithm oriented AI the basic building block is a central processing unit, which can be a 32bit CPU. The CPU is built with transistors on a chip and gets controlled by Assembly language. In contrast, the symbol grounding problem assumes that there is a Cat5 copper cable which delivers packets. Its up to the network engineer to define the protocol of the packets.

The paradigm shift can be explained for np hard problems. NP hard is a certain category of problems related to artificial intelligence which can't be solved with a computer. Nearly all robotics motion planning problems like the piano movers problem or model predictive control are np hard. The term np hard is referencing to the runtime of an algorithm executed on a cpu. In other words, even a modern 64bit CPU can't solve these problems because the hardware is too slow.

The holy grail in computer science is how to solve np hard problems. The answer was given by Stevan Harnad in his famous 1990 paper. He didn't mentioned np hard problems, but its possible to solve np hard problem with grounded language. Instead of using a CPU to calculate a mathematical problem, a copper cable is used to solve a data transmission problem. This new perspective is powerful enought to solve motion planning problems in robotics.