Robotik vor dem Jahr 2010 funktionierte als geschlossenes System. Dies bedeutete einerseits eine bestimmte technsiche Ausführung und zwar die Abwesenheit einer Fernsteuerung, aber es bedeutete vor allem auch auf bestimmte Weise über Robotik zu diskutieren. Der typische Diskurs vor 2010 bestand darin, dem Roboter bestimmte Eigenschaften zu unterstellen, das also der Roboter in einem Labyrinth einen Weg planen kann, auf Störungen reagiert oder selbstständig den Weg zur Ladestation findet.
Die Programmierung eines solchen Roboter war die Umsetzung dieser sprachlichen Beschreibung. All die Eigenschaften die mit Intelligenz assoziert werden wurden im Roboter und damit in seiner Software lokalisiert und folgerichtig bemühten sich Programmierer das umzusetzen.
Ein Diskursraum in dem ein Roboter als autonome intelligente Maschine funktioniert hat einen entscheidenen Nachteil: es bleibt ungewiss wie das funktionieren soll. Es gibt keine anerkannte Definition von Intelligenz und erst recht keine für maschinelle Intelligenz. Insofern blieb die Vorstellung von intelligenten Roboter sehr wage und hatte Ähnlichkeit zu Wunschdenken.
Ein neuerer Diskursraus seit dem Jahr 2010 beschreibt Roboter als offene Systeme die über keine Eigen-Intelligenz verfügen. Nach dieser ernüchternen Darstellung ist der Roboter der sich im Labyrinth bewegt weder bewusst welche Aufgabe er ausführt, noch weiß der Roboter wo die Ladestation ist, sondern der Roboter erhält Befehle von einem menschen außerhalb des Roboters der die Szene beobachtet. Ein solcher Roboter ist nicht länger autonom oder intelligent sondern er ist ausführendes Organ und wird über eine Fernsteuerung betrieben. Es ist streng genommen gar kein richtiger Roboter sondern hat Ähnlichkeit mit einer Marionette welche über Angelsehen bewegt wird.
Solche offene Systeme sind standardmäßig auf dem Niveau von Menschen, der Roboter kann all das was der menschliche Bediener auch kann. Allerdings nur wenn es einen solchen Bediener gibt. Ohne einen menschlichen Operator bewegt sich die Maschine nicht.
Technisch gesehen ist das der Unterschied zwischen interner und externer Intelligenz. Externe Intelligenz bedeutet dass die Künstliche Intelligenz außerhalb des Roboters lokalisiert ist. Nur bei externer Intelligenz entsteht eine natürliche zweiteilung als Speaker hearer system. Der Roboter ist der Hearer während der Mensch der Speaker ist. Über diese Zweiteilung entsteht eine Aufgabenteilung. Die zugrundeliegende philosophische Theorie ist die bikamerale Psyche von Julian Jaynes, 1976.
Robotics and Artificial Intelligence
October 27, 2026
Externe Intelligenz vs. interne intelligenz
Robotik vor dem Jahr 2010
Das Jahr 2010 stellt eine Zeitenwende in der Robotik da. Bis zu diesem Zeitpunkt gab es viele ungelöste Probleme aber es fehlte eine Richtung wohin sich Künstliche Intelligenz und Robotik entwickeln könnte. Diese Sackgasse soll im folgenden erläutert werden.
Vor dem Jahr 2010 wurde Robotik als Teilgebiet der Informatik betrachtet. Der Fokus war auf die Hardeare eines Roboters sowie dessen Software gerichtet. Also welche Aktuatoren benötigt werden, welcher Microcontroller Sinn macht, in welcher Programmiersprache die Software geschrieben ist. Diese technische Sichtweise entspricht der Tradition der Informatik wo ebenfalls untersucht wird, wie Systeme intern funktionieren. So wird ein Betriebssystem in einer bestimmten Programmiersprache erstellt um es auf einer bestimten CPU auszuführen. Laut Selbstdefinition ist Informatik die Wissenschaft von Computern, folgerichtig stehen Computer im Zentrum der Aufmerksamkeit.
Mit dieser Sichtweise gelang es bis 2010 das mögliche Ziel einer Künstlichen Intelligenz zu realisieren. Wenn man die Hardware eines Roboters baut, einen Microcontroller zur STeuerung verwendet und in einer Hochsprache wie Java ein Software schreibt, hat man formal einen Roboter entwickelt, nur wird diese Maschine in der Realität keine sinnvolle Handlunbg ausführen. Man kann zwar rein formal in der Java Software einen Zufallsgenerator programmieren welcher die Räder des Roboters zufällig bewegt nur führt das nicht dazu dass der Roboter vor einem Hinderniss stoppt oder gar den Ausgang in einem Labyrinth findet.
Scheinbar fehlt noch eine wichtige Komponente und zwar künstliche Intelligenz. Es gab bis 2010 durchaus Bemühungen diese Komponente zu realisieren, z.B. über Algorithmen oder sogar mittels eigener Roboterbetriebssysteme wie ROS, nur leider waren diese Versuche nicht erfolgreich. Selbst sehr komplexe Roboter die aus 100k und mehr Codezeilen bestehen waren vor 2010 lediglich in der Lage pick&place aufgaben auszuführen, z.B. objekte auf einem Fließband zu greifen. Aber auch nur dann wenn alle Bedingungen unverändert blieben. Eine Navigation in chaotischen umgebungen war hingegen nicht umsetzbar.
Bis 2010 gab es ausschließlich Industrierobotoer welche einfache Bewegungen in hoher Wiederholung ausführten. Typische Beispiele sind Schweißroboter. Diese Systeme arbeiteten nach mechatronischen Prinzipien: in Software wurde eine Trajektorie definiert die vom Aktuator ausgeführt wurde. Leider waren die systeme nicht im Stande in veränderlichen Umgebungen zu funktionieren. Man hätte dazu die komplette interne Software neu programmieren müssen, was zeitaufwendig ist.
Erschwerend kam hinzu, dass bis zum 2010 Jahr bereits bekannt war, dass die meisten Robotik-Probleme einen np harten Zustandsraum besitzen. Um eine komplexe kinematische Kette zu steuern oder in einem Labyrinth zu navigieren gibt es eine hohe Anzahl möglicher Weltzustände die sich von Algorithmen nicht durchprobieren lassen mangels Rechenkapazität. Dadurch gab es zwei Grundsätzliche Probleme:
1. die vorhandene Rechenleistung war zu gering für Motion planning Algorithmen
2. Algorithmen funktionieren nach starren Prinzipien
Innerhalb der Informatik können viele Probleme gelöst werden. Die beiden oben genannten allerdings nicht. Es ist nicht möglich die Rechenleistung von Computern beliebig zu erhöhen und man kann nur jene Algorithmen in Software umsetzen die bereits erfunden wurden. Scheinbar war die Informatik nicht im Stande das Problem der künstlichen Intelligenz zu lösen, jedenfalls nicht im Jahr 2010.
Die Ursache für das Dilemma liegt in der Informatik selbst. Weiter oben wurde erläutert, dass Informatik die Wissenschaft von Computern ist. Und genau hier liegt das Problem. Computer sind das falsche Modell um künstliche Intelligenz zu untersuchen. Ein Computer im engeren Sinn ist eine Turing Maschine, also ein programmgesteuerter Automat. Dieser Automat ist im Stande mathematische Operationen auszuführen wie 1+1 zu berechnen und der Automat kann Algorithmen ausführen wie z.B. einen Bubble Sort Algorithmus, allerdings vermag eine Turing Maschine keine Künstliche Intelligenz zu erzeugen.
Bis ca. 2010 war innerhalb der Inforamtik diese Begrenzung nicht akzeptiert. Das Problem der künstlichen Intelligenz wurde ignoriert, man hatte die optimistische Vorstellung dass es eine Art von besserem Algorithmus gäbe der auf einer Turing Maschine intelligentes verhalten zeigt. Diese optmistische Vorstellung hatte einen wissenschaftlichen Hintergrund und zwar gab es funktionsfähige Schachprogramme. Diese funktionieren über Algorithmen welche in der Lage waren, Schach zu spielen und sogar gegen Großmeister zu gewinnen.
Vor dem Jahr 2010 wurde künstliche Intelligenz als Problem der Informatik und der Mathematik definiert. Und zwar deshalb weil in diesem Raster bisherige Probleme wie Softwareengineering, Grafikprogrammierung, und Hardwareentwicklung definieren ließen. All dies sind jeweils mathematisch-technische Probleme. Es ist entscheidend wie ein System intern aufgebaut ist, aus welchen Bauteilen es besteht und welcher Algorithmus verwendet wird. Wie schon oben vermerkt führt diese Perspektive bei Künstlicher Intelligenz nicht zum Erfolg, das war jedoch den Programmierern vor 2010 nicht bewusst. Sie verwendeten bekannte Werkzeuge und bekannte Sichtweise um das neue unbekannte Problem der KI zu lösen.
Interessant ist auch wie mit möglichen Alternativen zur mathematisch-technischen Sichtweise verfahren wurde. Ferngesteuerte Roboter und natürliche Sprache waren zwar bekannt aber sie wurden entweder wortlos ignoriert oder als falscher Ansatz betrachtet. Es gab also eine klare Vorstellung darüber wie Roboter programmiert werden müssten und wie nicht:
- richtig: mathematisch, technisch, algorithmen, Autonom
- falsch: Teleoperation, natürliche Sprache
Zum Abschluss des kurzen Essays eine vermutung warum genau die Kombination aus Teleoperation und Natürlicher Sprache als falsches Paradigma in der Robotik betrachtet wurde. Ein ferngesteuerter Roboter ist nit intelligent, sondern er erhält seine Befehle von außerhalb. Damit ist es kein autonomer Roboter sondern ein Scheinroboter. Zweitens ist natürliche Sprache das Gegenteil von Mathematik. Verben, Substantive und adjektiven werden nicht von der Statistik, der Algebra oder der Algorithmik erfasst sindern also keine Wissenschaft sondern haben ihren Ursprung in der Kultur. Dadurch sind Mathematiker und Informatiker nicht zuständig dafür.
October 26, 2026
BNF grammar for box pushing in Box2D simulation
Speaker to hearer language games can be formulated in a BNF dialogue grammar. The grammar provides a vocabulary list which contains of verbs and nouns. In case of a box pushing task, not the full English Vocabulary is needed which has 100k words, but the needed grammar is a compact subset. Possible commands formulated with this grammar are:
"push box1 to left"
"push box2 to right"
"rotate box1 to left"
"rotate box2 to right"
"grasp box1"
"transport box1 to left"
"transport box2 to right"
"move gripper to up center position"
These commands are created by the speaker and submitted to the hearer. The hearer has to parse and execute each action. The advantage of a grammar is, that it provides an abstraction mechanism. The allowed state space consists of a few possible actions on predefined objects. The computer program which implements the BNF grammar in software can be reduced to a minimum. Here the BNF Grammar:
<command> ::= <box_command> | <gripper_command>
<box_command> ::= <directional_action> <box> "to" <direction>
| <simple_action> <box>
<directional_action>::= "push" | "rotate" | "transport"
<simple_action> ::= "grasp"
<box> ::= "box1" | "box2"
<direction> ::= "left" | "right"
<gripper_command> ::= "move gripper to" <position>
<position> ::= "up center position"
Perhaps it makes sense to explain how to realize Artificial Intelligence with such a grammar. Classical AI in the past was working with algorithms, like path planning algorithms. Here no algorithms are needed but the robot gets controlled with teleoperation. There is a human operator outside of the robot which communicates with the mentioned BNF grammar. The grammar consists of a language definition, its a teleoperation protocol based on English.
October 25, 2026
Künstliche Intelligenz externalisieren
Bei offenen Systemen wird künstliche Intelligenz nicht durch den Roboter selbst erbracht sondern wird über die Umgebung bereitgestellt. Ein Beispiel ist eine Schiene wodruch der Roboter auf einer bestimmten Route fährt, ein weiteres Beispiel ist ein Roboter der einem Lichtsignal folgt. Die Funktionsweise des Gesamtsystems wird hauptsäthlich durch die Umgebungsarchitektur definiert, also durch den Verlauf der Schiene oder durch die Position des Lichtpunktes.
Zwar ist eine mechanische Schiene ein äußeres Gerüst aber es ist nicht flexibel. Die nächste Stufe ist ein menschlicher Operator der über einen Joystick oder sogar mittels Sprache den Roboter kontrolliert. Auch hierbei befindet sich die Intelligenz nicht im Roboter selber sondern außerhalb des Roboters. Man kann also den Roboter öffnen und seine Software untersuchen wird aber nichts erkennen was einen intelligente Handlung erzeugen vermag, sondern der Roboter führt nur Kommandos aus die Außerhalb liegen.
Es hat relativ lang gedauert bis diese Art von Künstlicher Intelligenz in der wissenschaftlichen Literatur diskutiert wurde. Rodney Brooks hat im Jahr 1990 den Begriff der embodied cognition geprägt, meinte aber noch keine Sprachfernsteuerung sondern nur die Steuerung mittels Lichtsignale oder Bumper als Sensorik des Roboters. Dennoch kann man brooks Arbeiten bereits so interpretieren, dass der Roboter über keine Onboard Intelligenz verfügt sondern dass die Intelligenz extern verortet ist.
Sobald Intelligenz außerhalb des Roboter loakalisiert wird, verschwindet das Problem der Künstlichen Intelligenz von allein. Es geht nicht länger um die frage welche Software oder welcher Algorithmus Intelligenz erzeugt, sondern es wird angenommen dass die Intelligenz bereits existiert, sie muss also nicht erst erzeugt werden. Dadurch ist es technisch trivial einen Roboter zu entwickeln. Der Roboter muss auf die vorhandene Intleligenz der Umgebung reagieren. Er muss also einer schiene die schon da ist präzise folgen, er muss auf eine Lichtquelle zusteuern die schon da ist, und er muss auf Signale eines Joysticks reagieren die er mittels Funkfernsteuerung erhält.
Aus Sicht der Informatik mag das Konzept von exteranlisierter Intelligenz ungewohnt klingen, aus Sicht der Linguistik ist es jedoch ein vertrautes Prinzip. Ludwig Wittgenstein hat Sprachspiele schon vor langer Zeit erläutert, und Schrift gilt im Allgemeinen als Kommunikations- und Abstraktionssystem. Sprache ist also eine Erfindung welche dezidiert dazu dient Intelligenz zu externalisieren. Kommunikation dient dazu die Gegenseite zu informieren, zu fragen oder Anweisungen zu geben, also ein Problem zu externalisieren.
Im Grunde dienen Sprachspiele aus der Linguistik dazu, ein Problem der Robotik-Steuerung in der Informatik zu lösen.
October 23, 2026
Open Systems vs closed systems
Robotik Programmierung bis ca. 2010 erfolgte nach einem Bias den man rückblickend als "closed system" definieren kann. Die Kernidee lautet ein Computerprogramm zu schreiben was dem Roboter und damit dem Microcontroller vorgibt was zu tun ist. Ein Roboter wird als Computer verstanden den es zu programmieren gilt mittels Programmiersprache wie Python oder C++ und mögliche Probleme des Roboters werden allein im Source code verortet.
Bis ca. 2010 war dies die einzig denkbare Option in der Robotikprogrammierung, es gab keine debatte darüber ob das Prinzip sinnvoll ist oder nicht weil es keine Alternative dazu gab. Die einzige Frage war wie ein Programm beschaffen sein muss damit der Roboter eine Aufgabe erfüllt, also welche Algorithmen und welche externen Bibliotheken benötigt werden.
Das beschriebene Prinzip hat einen entscheidenen Nachteil: es funktioniert als geschlossenes Prinzip. Die Leistungsfähigkeit der Maschine wird durch die interne Funktion der Maschine limitiert. Der Roboter verfügt über Servomotoren mit einer maximalen drehzahl und der Roboter verfügt über ein Computerprogramm was vorgibt, was die Maschine zu leisten vermag. Ein "closed system" verfügt über keine Kommunikation mit der Außenwelt dies wird sogar aktiv vermieden mit der begründung dass autonome Roboter keine Kommunikation benötigen.
Die neuere weitaus mächtige Strategie zur Programmierung von Robotern besteht darin, ein "open system" zu entwickeln. Hierbei liegt der Fokus nicht auf der Maschine sondern die Maschine steht in Interaktion mit der Umwelt. Die Umgebung kommuniziert mit dem Roboter über ein Kabel und über Befehle. Dieses Interface gilt es zu optimieren. Ein solcher Roboter hat kein klassisches Computerprogramm und wenn es eines gibt ist das unwichtig. Es kann in unterschiedlichen PRogrammiersprachen realisiert sein oder sogar als analoger Schaltkreis realisiert werden, es limitiert jedoch nicht die Handlungsmöglichkeiten des Roboters. Ein "open system" wird allein über die Umgebung limitiert, also welche Befehle die Umgebung an den Roboter sendet.
In einem offenen System ist Künstliche Intelligenz ausgelagert, sie ist nicht intern im Roboter in Form eines Algorithmus verbaut sondern die Intelligenz befindet sich in der Umgebung. Dort hat sie die Form eines schwarzen Linie auf dem Boden welche die Richtung vorgibt, oder es ist ein menschlicher Operator der Befehle vorgibt oder es ist ein Hinderniss in einem Labyrinth wodurch der Roboter zum Stehen gebracht wird. Folgerichtig hat der Roboter keinerlei Intelligenz oder nur eine sehr geringe Intelligenz die sich darauf beschränkt die Umgebung über sensoren wahrzunehmen. Ein solches System wird auch als passives System oder als embedded cognition AI bezeichnet. Seit ca. dem 1990 werden solche Systeme in der literatur diskutiert, hauptsächlich durch Rodney Brooks und Stevan Harnad.
Brooks postulierte dass Roboter über die Umgebung gesteuert werden können, z.B. über eine externe lichtquelle außerhalb des Roboters während Harnad auf natürliche Sprache als Kommunikationsmedium mit Robotern fokussierte.
Auch "open system" müssen entwickelt und programmiert werden. Es braucth also Robotik hardware und sogar eine Software die die Hardware steuert. Es gibt jedoch einen massiven design unterschied, weil ein "open System" als Kommunikstionsgerät entwickelt wird und weniger als Computer. Ein Roboter ist folglich eine Art von Funkempfänger und nicht so sehr eine Turing Maschine.
October 21, 2026
Mechanische Automaten als offene Systeme
Durch die Erfindung des Computers in den 1950er gerieten mechanische Automaten und Zaubertricks in Vergessenheit die früher auf Theaterbühnen gezeigt wurden.
Um 1773 hat Jaques Droz mehrere mechanische Automaten entwickelt, während 1769 der Schachtürke durch Wolfgang von Kempelen gebaut wurde. Der Automat " Antonio Diavolo von Robert Houdin" ist etwas weiterentwickelt und stammt aus dem Jahr 1849. All diese Beispiele kommen ohne Computer aus und funktionieren rein mechanisch über Baudenzüge. Obwohl sie computertechnisch rückständig sind, haben sie einen großen Vorteil: es sind offene Systeme. Damit ist gemeint dass sie als Zaubertrick konzipiert sind, bei dem ein Helfer im Hintergrund an den Baudenzügen zieht um so die Puppe zu bewegen. Auf diese Weise wird keine Software und kein Algorithmus benötigt, sondern die Intelligenz kommt von einem Menschen.
Das Konzept des offenen Systeme ging ab der Erfindung des Computers in den 1950er in Vergessenheit weil der Computer ein bestimmtes Programmorientiertes Vorgehen erfordert. Ein Computer benötigt zwingend ein Programm, das in einer Assemblersprache oder in einer Hochsprache spezifiziert wird. Die komplette KI Entwicklung und Robotik-Entwicklung ab den 1950er basiert auf diesem Prinzip. Anders als bei den frühen mechanischen Automaten gibt es nicht länger einen Menschen der im Hintergrund als Intelligenz agiert, sondern diese Rolle übernimmt der Algorithmus.
Dadurch entstanden geschlsosene Systeme, ohne dass den Programmierer dieser Paradigmenwechsel bewusst war. Die Annahmen lautete, dass Algorithmen besser seien und das Roboter nur über Algorithmen gesteuert werden könnten. Dadurch hat man die Roboter von Umwelteinflüssen isoliert und komplexe Aufgaben konnten nicht mehr durchgeführt werden.
Ferngesteuerte Automaten oder ferngesteuerte RC Cars können hochkomplexe Aufgaben wahrnehmen, während Algorithmengesteuerte Roboter nur simple pick&place Aufgaben ausführen. Der Grund ist dass programmgesteuerte Roboter mühsam programmiert werden müssen was aufwendig ist, und die Frage aufwirft wie ein solches Programm aussehen muss. Im Gegensatz dazu benötigten ferngesteurte Automaten nur eine versteckte Angelsehne oder einen Baudenzug womit ein Gehilfe mit dem Automaten interagiert und fortan vermag der Automat auf menschlichem Nievau zu agieren.
Noch heute stehen die frühen Mechanischen Automaten in Museen weltweit und wenn man genau hinsieht wird man den Baudenzug oder eine andere Form der Fernsteuerung dort entdecken. Das Prinzip ist also bekannt, nur wurde es seit den 1950er Jahren verdrängt zugunsten eines mathematisch-orientierten Algorithmenbegriffs der vermeintlich besser ist, aber defakto ein Rückschritt darstellt.
October 20, 2026
Another inverse VQA game
In contrast to the previous blog post, this demo is not about answering question but about executing actions. So its an inverse instruction following. Not the AI is in charge to do something, but the human has to do actions in the game, here a sokoban clone.
the possible instructions are formalized in a BNF grammar:
<instruction> ::= <move_instruction> | <push_instruction>
<move_instruction> ::= "move to " <destination>
<push_instruction> ::= "push box #" <box_id> " to " <destination>
<destination> ::= <section> | <position>
<section> ::= "top left" | "top right" | "bottom left" | "bottom right"
<position> ::= "position " <digit_1_to_10> "/" <digit_1_to_10>
<box_id> ::= <digit_0_to_9>
<digit_0_to_9> ::= "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"
<digit_1_to_10> ::= "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "10"
After the human operator has pushed a box to the target location or moved the robot to a certain location, he gets rewarded with +1 and the next quest is shown. The interaction has much in common with NPC quests (non player character quests) in classic role playing games. The challenge for the player is to translate a certain textual quest into the correct action.
Inverse VQA
Classic visual question answering is played by a human who asks the question and an artificial intelligence who answers them. Implementing a full blown VQA Model as neural network is a complex task which goes beyond of a single blog post. What is shown instead is inverse VQA in which the game engine asks the questions and the human has to answer them.
The world in the python prototype consists of 10x10 grid with geometric shapes. If the human answers a question correct he gets a +1 reward. So its a test if the human is able to map the shown situation to the questions.

