Roboter Tagebuch


Model für einen Zweirad-Roboter
[1] Ich habe sowohl die Frage als auch die bisherigen drei Antworten aufmerksam gelesen. Angesichts der hohen Punktzahl die die Antwort1 erhalten hat, scheint die Stackoverflow Community wohl der Meinung zu sein, dass diese Antwort richtig ist. Darin wird ein mathematisches Modell erläutert was aus mehreren Formeln besteht, die Gebrauch machen von Sinus und Cosinus Berechnungen. Ferner wird auf ein Paper verwiesen „Structural properties and classification of kinematic and dynamic models of wheeled mobile robots“ was bei google Scholar stolze 1261x zitiert wurde, was ein extrem hoher Wert ist. Normalerweise ist es immer ein bisschen risky sich gegen das Urteil der breiten Masse auszusprechen, aber ich es versuche es im folgenden.

Zunächst einmal ist ein mathematisches Modell wie es in dem Paper beschrieben wurde allein nicht ausreichend um den Roboter zu steuern, der zwei Räder besitzt. Rein formal mögen die Gleichungen richtig sein, mit denen man ermittelt wohin der Roboter zeigt, wenn man die Räder einzeln bewegt, das Problem ist nur dass sich der Roboter entweder in einer Physik-Engine befindet oder sogar im Reallife. Und die dort auftretenden Bedingungen werden durch wenige mathematische Formeln nicht im mindesten abgedeckt. Wenn man das Problem richtig modellieren möchte, muss man die Sprachwissenschaft bemühen. Schritt 1 ist das Aufstellen einer Taxonomie, diese besteht aus Oberbegriffen und dazugehörigen Motion Primitive. Im Schritt 2 werden die Motion Primitive als Finite State Machine ausformuliert und zwar mittels Scripting AI. Das Verfahren wird im Bereich der Computerspiele als Behavior Tree bezeichnet, wird aber auch in der Computeranimation eingesetzt. Das fertige Modell besteht aus:
– mathematischen Formeln
– Taxonomie
– Motion Primitive
– Finite State Machine

Erst dieses Modell ist in der Lage, den beschriebenen zweirädrigen Roboter wirklich umfassend zu modellieren.

Roboter lernt laufen mit neuronalem Netz
[2] Zugegeben, das Video sieht schon sehr professionell aus. Es wurde offenbar mit einer neuen Kamera aufgenommen, die Mechanik ist ordentlich verkabelt und Laufen tut der lustige Kerl auch noch, was will man mehr? Dennoch möchte ich eine Anmerkung machen und zwar geht es in der Forschung nicht darum Dinge zu präsentieren die funktionieren sondern interessant sind vor allem die Bugs. Das heißt, aus Gründen der Anschlussfähigkeit sind Projekte besser bei denen das neuronale Netz nicht in der Lage ist die gestellte Aufgabe zu lösen weil man dann Experten fragen muss, woran das liegen könnte. Wenn jedoch kein Bug vorliegt, kann man auch keine Oberschlauen Sprüche machen. Und ich glaube, das ist auch der Grund warum Wettbewerbe wie Robocup erfunden wurden, weil man dort Bugs am laufenden Band produziert. Kurz gesagt, dein Roboter funktioniert zu perfekt, und das ist nicht gut.

subsumption Architektur

[3] Zitat: „Dabei wird das Gesamtverhalten des Roboters als Netzwerk aus Einzelverhalten ausgedrückt. Die Verhalten sind in Ebenen organisiert. Jede Ebene ist von der anderen unabhängig. Aber… ganz durchdrungen habe ich dieses Konzept wohl noch nicht, wie es scheint.“

* Suche bestimmtes Objekt
* fahre Objekt an
* hebe Objekt auf

Oh ich sehe gerade, das Posting ist schon etwas älter (aus dem Jahr 2015) aber dennoch ist das Thema interessant. Richtig ist, dass die Brooks Subsumption Architektur für sich allein in der Tat keinen Sinn macht, man muss ontop noch ein „natural language interface“ zuhinzuprogrammieren als obersten Layer. Über diesen interagiert der Human-Operator dann mit dem System. Man kann sich das Interface so vorstellen wie in einem Textadventure, auf das Beispiel bezogen könnte ein Kommando lauten: „Fahre zu Objekt“. Das heißt, die Eingabe besteht aus einem Befehl und einem Zusatz. Daraus erzeugt ein Parser dann die Aufrufe an das Hauptprogramm.

Mit diesem Hintergrundwissen kann man auch leichter erahnen wie die Programmierung der veschiedenen Layer genau aussieht. Und zwar besteht das Ziel darin, am Ende auf textuelle Befehle reagieren zu können. Es geht also nicht darum, dass der Roboter irgendwie intelligent ist, sondern nur darum, dass er für den User-Befehl die Steuerkommandos an die Servos sendet. In der Praxis werden die unterschiedlichen Layer der Subsumption Architektur übrigens mit Hilfe von Objektorientierter Programmierung realisiert. Damit kann man schön das Programm in Untereinheiten kapseln und einzeln testen.

Subsumption ist mit sicherheit ein Here-to-stay, allerdings sind die meisten Paper in denen es erläutert wird hoffnungslos veraltet, so dass es fast schon normal ist, wenn zunächst Konfusion entsteht.

Advertisements

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s