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.

Die Post-Singularity World

[1] Mentifex wrote:
„After the Technological Singularity, conscious AI Minds will run non-stop and non-death — except by misadventure. Colossus the Forbin Project, Wintermute, HAL et al. will all be controlling the basic resources they need to stay alive.“

So langsam zweifel ich daran, ob das Usenet Forum comp.ai.philosopy überhaupt der richtige Ort ist um über Künstliche Intelligenz zu debattieren. Übersetzt heißt AI zwar Künstliche Intelligenz, aber der obige Beitrag hat damit fast nichts zu tun. Eher klingt es wie die Einleitung zur Fortsetzung der „Neuromancer“ Trilogie, die William Gibson einst berühmt gemacht hat. Die Gemeinsamkeit besteht darin, die reale Welt auszublenden zugunsten einer Illusion in der es keine Bäume und Vögel mehr gibt. Nun sind solche Zukunftsvorstellungen in der Literaturgeschichte nichts unübliches, auch das Drama „Warten auf Godot“ arbeitet mit einem pessimistischen Grundton der in einen Nihilismus abgleitet, aber dafür will die Literaturwisenschaft nicht das große ganze erklären sondern weiß, dass sie nur innerhalb eines Buchdeckels Bestand hat.

Was mich an dem Singularity und AI-Philosophy Diskurs zunehmend stört ist einerseits der Allmachtsanspruch die Welt von morgen definieren zu wollen, gleichzeitig jedoch jeder Verzicht auf wissenschaftliche Erklärungen. So als ob es unwichtig wird, wie man Computer programmiert wenn erst Singularity da ist. So als ob intelligente Roboter nichts mehr mit Technik zu tun hätten sondern religiös interpretiert werden könnten. Vereinfacht gesagt, scheint mir der Schwerpunkt auf Philosophy und weniger auf AI zu liegen.

Aber wenn Singularity nicht die äußere Klammer ist, welche die technologische Singularität zusammenhält was ist es dann? Ich glaube, dass die Zukunft darin besteht, dass sich die Menschen wieder mehr mit Technik beschäftigen. Also herausfinden, wie man Computer baut, wie man Algorithmen entwickelt und wie man Roboter programmiert. Also eher wissenschaftlich an die Dinge herangeht und weniger erklärend.

Scrollt man einmal durch die weiteren Beiträge von comp.ai.philosophy so findet sich dort für eine Usenet-Gruppe die das comp. als Präfix verwendet erstaunlich wenig Sourcecode. Eigentlich sollte man denken, dass die Leute dort Experten wären in Sachen C++ und Assembly language, aber nichts da. Scheinbar ist eine hands-on-mentalität nicht das, womit sich die Leute identifizieren. Haben sich da womöglich lauter Neoludditen versammelt um ihre Weltsicht zu teilen?

RI Seminar

Didaktische Fails in der Robotik
[1] Zunächst einmal ist der Ansatz lobenswert, den Informatik Studenten etwas über Robotik zu erzählen. in der Mitte des Videos wird erläutert, dass man Macroactions benötigt um den Problemraum effektiv zu sampeln. Das ist korrekt. Ebenfalls Stand der Forschung ist es, dafür einen PDDL ähnlichen Planner zu nutzen. Vom inhaltlichen gibt es also wenig bis gar nichts zu bemängeln. Was jedoch stört ist das dahinterstehende didaktische Konzept. Ich bezweifel, dass auch nur einer der anwensenden Zuhörer etwas lernen konnte. Das liegt zum einen darin, dass außer einer Powerpoint Präsentation nichts geboten wurde, vor allem kein ablauffähiges Programm. Oh ja, natürlich gibt es derartige Software. In ROS wurden die angesprochenen Konzepte bereits realisiert, die Knowrob Engine und die SMACH Engine arbeiten damit. Nur, ROS ist mehrere Gigabyte groß. Wir haben also einerseits einen sehr abstrakten Vortrag plus eine messy-Software die die Collyer Brother geschrieben haben und jetzt sollen Anfänger in Sachen Robotik sich daraus einen Reim machen. Das kann nur scheitern.

Besser wäre es gewesen, wenn der Vortragende zunächst einmal seine Hausaufgaben macht, bevor er Lernaufgaben für seine Schüler ausgibt. Dazu gehört, aus dem Vortrag selber die komplizierten Dinge zu entfernen. Man muss nicht unbedingt einen symbolischen Planner erläutern nur weil man Macroactions nutzt, man kann in einer Zwischenstufe den Behaviortree auch manuell, d.h. interactiv ausführen. Und zweitens wäre es nötig, didaktisch wertvolle Software bereitzustellen, die aus weniger als 1000 Lines of Code worin das Konzept anschaulich gezeigt wird. Allein schon die Vorstellung, dass die Studenten nach dem hören des theoretischen Teils an eine ROS-Workstation hinüberwechseln um sich dort durch Millionen Lines of C++ Code zu scrollen auf der Suche nach dem ominösen PDDL Planner ist schrecklich.

Der Grund für derartige Fails dürfte darin bestehen, dass die Intention in dem Vortrag keineswegs die ist, Robotik didaktisch aufzubereiten, sondern es geht um universitäre Robotik. Also die, welche an der CMU oder anderen US-amerikanischen Elite Unis durchgeführt wird.

Surgical robotics
[2] Kompliment für den Vortrag. Der Vortragende kommt aus der Praxis und setzt den vorgestellten Roboter selber ein. Zuerst gibt es einen Rückblick auf das Davinci System. Der Vorteil damals war, dass eine Videoaufzeichnung möglich wurde und dass der ausführende Arzt an einem anderen Ort sein kann. Im zweiten Teil des Vortrages wird das Nachfolgeprodukt von Medrobotics vorgestellt: der Surgical Snake Robot (Medrobotics Flex). Aufgelockert wird der Vortrag noch durch eklige Aufnahmen aus dem Körperinnneren bei dem Schnitte am lebenden Gewebe ausgeführt werden.

Aus Sicht der Robotik gibt es dennoch etwas zu bemängeln. Beim Davinci Surgical Robot gab es parallel dazu noch ein OpenSource Modell genannt „Raven II“ was explizit entwickelt wurde, um Algorithmen zu testen. Wo ist das Raven II Äquivalent zum Medrobotics Flex System?

Keine Facebook Einladung erhalten, was nun?

Facebook ist das weltweit größte soziale Netzwerk. Sehr viele prominente VIPs haben dort einen Account aber auch ganz normale Leute sind angemeldet und tauschen Nachrichten aus. Leider kann bei Facebook nicht jeder Mitglied werden sondern man muss zuvor von jemanden dazu eingeladen werden. Das geht aber nur, wenn man mit jemanden befreundet ist, der dort schon Mitglied ist. Wenn das der Fall sein sollte ist es schöne Sache, weil man ebenfalls ganz leicht Mitglied werden kann. Aber was ist wenn man keine Einladung erhalten hat? Das ist in der Tat tragisch: denn entweder bis du dabei oder eben nicht. Für diejenigen, die nicht in der glücklichen Lage sind, kann man zur Not auch mit WordPress sein eigenes social Network aufbauen. Das ist zwar nicht ganz so advanced wie Facebook, aber es ist ein Anfang. Üblicherweise geht dies dadurch, dass man Kommentare schreibt und ganz wichtig, die „Remote comment“ Funktion verwendet, besser bekannt als Pingback. Man kann sich das vorstellen wie ein verteiltes Diskussionsforum wo also die Kommentare nicht fein säuberlich unter dem Artikel stehen sondern überall im Netz verteilt sind und unter dem Artikel nur die URLs aufgelistet werden. Der Vorteil ist, dass man neben dem eigentlichen Kommentar noch weitere Informationen über den Autor erhält, sich also weiterklicken kann. Die Gesamtheit der verteilten Kommentare wird als Blogosphäre bezeichnet eine Art von poor mans Facebook.

Zugangskarten zum US-Senat nur mit Bild

[1] Die Antwort lautet, dass man bei „The sims“ auch keine Sicherheitsüberprüfung benötigt weil in der Game-Engine ohnehin in der zentralen Datenstruktur in Echtzeit gespeichert wird, welcher Sims gerado wo ist und was macht. Ob das nun lustig ist, sei mal dahingestellt, ich würde das eher als lehrreich bezeichnen wollen. Das heißt, die DARPA oder wer sich das immer ausgedacht hat möchte uns damit eine Geschichte erzählen und möchte das wir sie verstehen.

Hybrid aus Surgical Snake Robot und Nanorobot denkbar

Wieder einmal sitze ich an einer kleinen wissenschaftlichen Arbeit, die demnächst auf Academia.edu erscheinen wird, bei der mir etwas aufgefallen ist. Es geht darin um die Zukunft der Nanorobotik. Derzeit gibt es zwei unterschiedliche Ansätze. Einmal „surgical Snake Robots“, was ein verbessertes Davinci-System darstellt bei dem ein beweglicher Schlangenroboter mit einer Dicke von 12 Millimeter in den Körper eingefügt wird um am Herzen oder im Gehirn Operationen auszuführen. Und dann gibt es noch echte autonome Nanoroboter, die sehr viel kleiner sind und mit einer Nadel in die Blutbahn injiziert werden. Beide Systeme besitzen vor- und Nachteile. Meiner Ansicht nach wäre es möglich die Ansätze zu verbinden. Das heißt konkret:

Es wird zunächst ein kleiner Schnitt in der Bauchdecke des Patienten ausgeführt um den 12 Millimeter dicken Snake-Robot einzuführen. Dessen Spitze dient im inneren des Körpers als Mothership und stellt eine unbegrenzte Menge an Strom, Licht und Dieseltreibstoff zu verfügung. Ausgehend von diesem Mothership starten dann Nanoroboter die deutlich kleiner sind und das Mothership nutzen um dorthin ihre Signale zu senden, und neuen Kraftstoff zu beziehen. Die Nanoroboter führen dann die eigentliche Operation aus.

Mechanisch wäre es noch halbwegs leicht möglich soetwas zu bauen. Die Schwierigkeit besteht in der Software zur Steuerung. Den 12 Millimeter großen Snake Roboter könnte man wie bisher auch manuell steuern. Um jedoch eine Zahl von 20 Nanoroboter zu steuern, die auch noch zwischendurch nachtanken müssen, bräuchte man extrem viel Fachpersonal im OP Raum. Die einzige Methode wäre hier Künstliche Intelligenz um die Steuerung zu automatisieren.