Autonome mobile Rechnersysteme – nur Spielzeug?
Transcrição
Autonome mobile Rechnersysteme – nur Spielzeug?
Autonome mobile Rechnersysteme – nur Spielzeug? Carsten Raufuß Abstract Roboter spielen in unserem Leben bislang noch keine große Rolle. Jedoch existiert mittlerweile schon eine Vielzahl an Spielzeug“, das die Beschäftigung mit Roboter” technik zuhause möglich macht. Grundlage dieser Arbeit sind der Palm Pilot Robot Kit“-Bausatz, das MIND” ” STORMS“-System von LEGO und der Roboter-Hund“ ” AIBO“ von Sony. Im Folgenden soll anhand dieser drei ” Beispiele der aktuelle Stand von Roboterspielzeug gezeigt werden. Wohin der Trend in der Robotertechnik – schon in naher Zukunft – gehen könnte, erschließt sich aus Hans Moravecs Vision von universellen, mobilen Robotern“. ” 1. Welche Rolle spielen Roboter für uns heute? Hört man heutzutage den Begriff Roboter“, so assoziiert ” man ihn zuerst mit Buch- und Filmfiguren, wie Marvin aus Douglas Adams’ Per Anhalter durch die Galaxis“ [1] oder ” C3PO und R2-D2 aus Star Wars“ bis hin zu Androiden“, ” ” wie Lt. Cmdr. Data aus Star Trek – The Next Generation“. ” Sie sind allesamt Maschinen, aber – zumindest in vielen ihrer Wesenszüge – menschenähnlich. Das Robot Institute of America fasste den Begriff des Roboters in seiner Definition im Jahre 1979 weiter: eine Menge Spielzeug Einzug in die Haushalte, was allgemein den Zugang zur Robotik“ fördern und die Vertraut” heit mit ihren Methoden schon von Kindesbeinen an herstellen soll. In Kapitel 2 wird das Palm Pilot Robot Kit“ vorge” stellt. Im Anschluss gehen wir auf das MINDSTORMS“” System von LEGO (Kapitel 3) und auf den Roboter-Hund AIBO“ von Sony (Kapitel 4) ein. Kapitel 5 gibt einen Aus” blick auf den zukünftigen Weg des Roboters – hin zu einer selbstständig handelnden und intelligenten Einheit. Abschließend wird der eigentliche Grund diskutiert, warum der Mensch überhaupt Roboter baut (Kapitel 6). 2. Das Palm Pilot Robot Kit Das Palm Pilot Robot Kit“ wurde an der Carnegie ” Mellon University entwickelt, um eine relativ preisgünstige Plattform zum Experimentieren mit Robotern zur Verfügung zu stellen. Bauanleitung sowie Beispielprogramme sind frei im Internet abrufbar [2]; für weniger versierte Bastler gibt es das Kit auch fertig montiert, für etwa US $ 250, zu kaufen. Roboter: “A reprogrammable, multifunctional manipulator designed to move material, parts, tools, or specialized devices through various programmed motions for the performance of a variety of tasks.” Eingesetzt werden Roboter heutzutage vor allem in der Industrie als Schweiß-, Fräs- oder Montageautomaten. In der Medizin unterstützen sie Ärzte bei komplizierten Operationen, und in Gefahrenbereichen, z.B. bei der Entschärfung von Bomben, kann man nicht mehr auf sie verzichten. Doch im Alltag spielen sie (noch) eine vernachlässigbare Rolle. Wer möchte sich denn wirklich auf einen autonomen Rasenmäher verlassen? Allerdings hält mittlerweile Abbildung 1. Palm Pilot Robot Kit Diese Ausarbeitung entstand im Rahmen des Seminars Mobile Rech” nersysteme“ an der TU Darmstadt im Wintersemester 2000/2001, unter Betreuung von Dr. Oliver Theel (FB Informatik). Das Palm Pilot Robot Kit“ (kurz Robot Kit“) stellt im ” ” eigentlichen Sinne nur einen fahr- und steuerbaren Unter- satz dar, der einem Palm Pilot1 als Steuerrechner-Plugin“ ” zu autonomer Mobilität verhilft (siehe Abbildung 1). 2.1. Die Hardware Die Hauptkomponenten des Robot Kits“ sind ein Palm ” und ein spezielles, seriell angesteuertes Ein-/AusgabeBoard. Der Roboter wird von drei Servomotoren angetrieben. Seine Umwelt nimmt er mittels dreier InfrarotEntfernungssensoren wahr. 2.1.1. Der Palm Pilot Die verschiedenen Palm-Modelle verwenden Prozessoren aus Motorolas Dragonball-Baureihe, einem (für niedrigen Stromverbrauch optimierten) Nachfolgemodell des Motorola MC68000. Diese bieten bei 16-20 MHz Takt etwa drei MIPS Rechenleistung; die Palms haben zwischen 512 KB und 1 MB ROM- und 1 MB bis 8 MB RAMSpeicherplatz [3]. 2.1.2. Das Servomotor-Controller-Board Pontech SV203 Die serielle Schnittstelle des Palm kommuniziert mit einem multifunktionalen Servomotor-Controller-Board SV203 von Pontech [4]. Befehle werden als einfache ASCII-Strings an den Controller geschickt und von diesem umgesetzt. Im Detail gliedert sich die SV203-Platine (siehe Abbildung 2) in mehrere Einheiten. Ein PIC16C73 [5], ein EPROM-basierter 8-bit Mikrocontroller mit 7168 Bytes (4096 14-bit Worte) Programm- und 336 Bytes (192 14bit Worte) Datenspeicher ist die Steuerzentrale der Platine. Acht Ausgänge dienen zum Aktivieren/Deaktivieren der Infrarotsensoren und Servomotoren. Die Eingabesignale der Infrarotsensoren werden von einem 5-Kanal 8-bit AnalogDigital-Wandler verarbeitet. Der Servo-Controller hat noch zwei unbenutzte Ausgänge, so dass hier noch Spielraum für eigene Erweiterungen gegeben ist. Sollten diese zusätzlichen Anschlüsse nicht ausreichen, besteht immer noch die Möglichkeit, ein weiteres SV203-Board anzukoppeln. 2.1.3. Der Antrieb Das schildkrötenähnliche Gefährt wird von drei Servomotoren (Mekatronix MS492MH) angetrieben. Auf den ersten Blick verwundert die Anordnung der Räder“. Da je” doch keine üblichen Reifen zum Einsatz kommen, sondern sogenannte Omni-Wheels“ (die auch quer zur Rollrichtung ” nicht durch Reibung blockieren), kann der Roboter in jede Richtung fahren, während er sich zusätzlich mit konstanter Geschwindigkeit um seinen Mittelpunkt“ dreht. Diese ” holonomische“ Bewegung erreicht man durch kombinier” tes Ansteuern der drei Motoren. Die Maximalgeschwindig keit des Roboters beträgt etwa 10 . 2.1.4. Die Infrarot-Entfernungsmesser Die Augen“ des Roboters werden durch drei als Ent” fernungsmesser eingesetzte Infrarotsensoren GP2D12 von Sharp [6] gebildet. Je nach Abstand zu einem Objekt liefern sie Spannungswerte im Bereich von 2.4 V (nah) bis 0.4 V (entfernt) Volt, die über den A/D-Wandler des SV203 auf den Wertebereich von 0-255 abgebildet werden. Die Sensorempfindlichkeit erlaubt es, Abstände im Bereich von 10 cm bis 80 cm auf etwa 1 cm genau zu messen. 2.2. Die Software Abbildung 2. Steuerplatine Pontech SV203 Servo- 1 Im Folgenden bezeichnet Palm einen Palm/Palm Pilot oder kompatiblen Organizer. Die Programme zur Robotersteuerung werden für die Palm-Plattform geschrieben. Das bedeutet, dass man alle für den Palm zur Verfügung stehenden Entwicklungsumgebungen nutzen kann, da zur Kommunikation mit dem Un” tersatz“ lediglich ASCII-Strings über die serielle Schnittstelle ausgetauscht werden müssen. Auf der Homepage zum Robot Kit“ [2] stehen rudi” mentäre C++-Basisklassen bereit, um den Einstieg in die Programmierung zu erleichtern. Die Klasse Robot (Abbildung 3) beschreibt eine komplette Schnittstelle zur Steuerung des Roboter-Shuttles. class Robot { public: Robot(); ˜Robot(); // moving commands void Servo(int servo, int vel); void Drive(int s1_vel, int s2_vel, int s3_vel); void Vector_Drive(vector dir, double omega); void Stop(void); // delay robot void Wait(int ticks, int *intr); // informational commands int IRDist(int irsensor); void Message(const char* str); void Message(int number); private: // robot’s state double x, y, theta; int ir[3]; // robot’s board SV203 board; // conversion functions int Vel_To_Value(double vel); int Sensor_To_Range(double irval); }; Abbildung 3. C++-Klasse Robot Robot basiert auf einer Klasse vector für Vektorarithmetik und auf der Klasse SV203, die mit void Tx(char *command, int parameter) und void Rc(char *buffer) Methoden zur Kommunikation mit der seriellen Schnittstelle des Palm bereitstellt – und somit auch mit dem angeschlossenen SV203-Board. Folgende Kommandos aus dem Befehlssatz des SV203-Boards werden zur Implementierung von Robot benutzt: SVn (Select servo): Anwahl des Servos n. Mn (Move to absolute position): Der vorher angewählte Servo dreht sich auf Position n ( n ); M0 schaltet den Servo ab. ADn (Read a voltage on the A/D port): Der Wert des Pins n ( n ) des A/D-Ports wird ausgelesen. Die Abbildung 4 zeigt die prinzipielle Struktur von Roboter-Steuerprogrammen. Die Ereignissteuerung der Palm-Applikation läuft über einen Event Loop“. Die Klas” se Robot wird von Algorithmen der Applikation verwendet und kapselt den Zugriff auf die serielle Schnittstelle. Palm OS Standard Palm Applikation Pilot Main Start Application Event Loop Stop Application Event Handler Algorithms class Robot Drive Robot Read Sensors Drive Servos class SV203 Tx Rc Serial Port Abbildung 4. Applikationen Schema der PPRK- Das C++-Beispielprogramm in Abbildung 5 verdeutlicht die Programmierung des Robot Kits“ (der Programmco” de zur Verwaltung der PalmOS-Benutzerschnittstelle ist der Einfachheit halber weggelassen). Der Roboter fährt erst für 100 Ticks (entspricht 1 s) in x“-Richtung, stoppt und gibt die Meldung Hello!“ auf ” ” dem Palm aus; anschließend wartet der Roboter 10000 Ticks (entspricht 100 s) oder darauf, dass das Display des Palm berührt wird, fährt dann 200 Ticks (2 s) lang in y“” Richtung, bleibt stehen und gibt die an diesem Punkt vom Infrarotsensor 1 ermittelte Distanz in Zentimetern aus. Leider sind die Sinne“ des Robot Kit“ mit nur drei ” ” Entfernungsmessern relativ dürftig ausgestattet. Demgegenüber verfügt LEGOs MINDSTORMS“ Roboterbauka” sten, der im nächsten Kapitel vorgestellt wird, über eine größere Auswahl an Sensortypen. // robot’s instance Robot myrobot; void SimpleFunction(void) { int a, ir1; vector A(0.10, 0.00), B(0.00, 0.10); // drive in direction of vector A // for 100 ticks (= 1s), then stop myrobot.Vector_Drive(A, 0); myrobot.Wait(100, NULL); myrobot.Stop(); // display message and wait for // 10000 ticks (= 100s) or until // screen is touched myrobot.Message("Hello!"); myrobot.Wait(10000, &a); // drive in direction of vector B // for 200 ticks (= 2s), then stop myrobot.Vector_Drive(B, 0); myrobot.Wait(200, NULL); myrobot.Stop(); // request and display distance // from IR sensor 1 ir1 = myrobot.IRDist(1); myrobot.Message(ir1); } Abbildung 6. Robotics Invention System Mit der Exploration Mars“-Erweiterung ist es möglich, ” seine Roboter über ein Computerprogramm interaktiv“ ” fernzusteuern. Das Set enthält Bauanleitungen für neue Roboter und neun Abenteuer“, mittels derer man Mars” Missionen nachspielen kann. Alternativ gibt es auch Fertigbausätze“ zu kaufen, die in ” ihrem Funktionsumfang (bezüglich der Anzahl der Sensoren und der freien Programmierbarkeit) eingeschränkt bzw. festgelegt sind. So bieten die beiden Einsteigerpakete Dark ” Side[tm] Developer Kit“ und Droid[tm] Developer Kit“ ” jungen Star Wars“-Fans die Möglichkeit, anhand von sie” ben fest eingebauten Programmen den Krieg der Sterne“ ” nachzuspielen. 3.1. Die Hardware Abbildung 5. Beispielprogramm PPRK 3. LEGO MINDSTORMS“ ” Das MINDSTORMS“-System [7] bildet als Technik” spielzeug mit einem Mindestalter der Zielgruppe von neun bis zwölf Jahren das obere Ende der Produktpalette von LEGO. Dass das Durchschnittsalter aber weitaus höher liegt, lässt das im Internet entstandene, fast unüberschaubare Fan-Netzwerk erahnen; selbst Universitäten verwenden die Bausätze in Forschung und Lehre. Von Bauplänen für Roboter bis hin zu neuen Programmiersprachen und disassemblierter Firmware [11] der Steuerbausteine ist eine Vielzahl an Informationen abrufbar. Mit dem etwa DM 450 teuren Basispaket Robotics In” vention System“ (siehe Abbildung 6) ist es möglich, einfache Roboter schnell zu bauen und zu programmieren. Mit den Paketen Ultimate Accessory Set“ und Vision Com” ” mand“ kann man die Grundfunktionalit ät um weitere Sensoren bzw. eine Kamera erweitern. Ein Computer ist Voraussetzung für die Programmierung der Roboter. 3.1.1. Der RCX Das Herzstück aller MINDSTORMS“-Roboter stellt ” ein programmierbarer Baustein namens RCX dar. Mit diesem Baustein orientierte sich LEGO an dem Programma” ble Brick“ [8], der Mitte der 90er Jahre am MIT Media Lab entwickelt wurde. Der RCX (siehe Abbildung 7) basiert auf einem mit 16 MHz getakteten Mikrocontroller H8/3292 [9] von Hitachi. Er enthält 16 KB ROM- und 32 KB RAM-Speicher. Die Rechenleistung, die den Bastlern zur Vefügung steht, beträgt etwa fünf MIPS. Der RCX hat jeweils drei Anschlüsse für Eingänge (Ports 1-3) bzw. Ausgänge (Ports A-C), sowie einen Infrarotport, über den die Kommunikation mit dem Computer abgehandelt wird. 3.1.2. Die Ein-/Ausgabe-Ports An die Ausgänge können Motoren angeschlossen werden, die dem Roboter zur Mobilität verhelfen. Alternativ kann man auch jeweils ein Lämpchen anschließen. Abbildung 7. RCX Steuerbaustein Die Eingänge bieten die Möglichkeit, den Roboter mit Sinnen“ auszustatten. Aktuell sind Berührungssensor, Hel” ligkeitssensor, ein Rotationssensor und ein Temperatursensor. Mittlerweile kann man seine Roboter auch mit einer Kamera ausstatten. Zum Auslesen der Sensorwerte stellt die Firmware des RCX vielfältige Möglichkeiten zur Verfügung. Über die Wahl des Sensortyps teilt man dem RCX mit, ob ein Berührungs-, Helligkeits-, Rotations- oder Temperatursensor angeschlossen ist, oder ob ein generischer Sensor die Daten liefert. Der Sensormodus bestimmt, in welcher Weise die Werte zurückgeliefert werden, z.B. als Boole’scher Wert, als Temperatur in Fahrenheit/Celsius oder in Prozent. Über den Raw-Modus kann man auch Messwerte eines selbstgebauten Sensors auslesen. Wem die standardmäßigen Sensoren für den Bau seines Roboters nicht ausreichen, kann im Internet Bauanleitungen für viele weitere Sensoren finden, wie z.B. InfrarotEntfernungsmesser, Temperatursensor und Geräuschsensor; selbst Ausgefallenes, wie ein Magnetfeldsensor, ist vorhanden [10]. 3.2. Die Software 3.2.1. RCX Code Der Roboter-Konstrukteur steckt die LEGO-Bauteile zu dem gewünschten Roboter zusammen. Anschließend kann man mittels der mitgelieferten Software RCX Code“ das ” Roboterprogramm visuell programmieren. Dazu stehen die Signale der oben aufgeführten Eingabe-Sensoren, ferner programmiersprachliche Konstrukte, wie z.B. Bedingungen, Schleifen und Unterprogramme, zur Verfügung. Das fertige Programm wird als Bytecode2 per Infrarotübertragung an den RCX übertragen und läuft dort autonom ab. In Abbildung 8 erkennt man, wie LEGO versucht hat, das patentierte Stecksystem“ auf die Programmierumge” bung zu übertragen: Die Programmbausteine können an den vorgesehenen Stellen aneinander gesteckt werden. Der gesamte Ablauf ist event-basiert. Auf der linken Seite befindet sich die Modul-Bibliothek, die die vorgegebenen Anweisungen enthält. Rechts daneben steht das Hauptprogramm, in dem (nach Initialisierung der RCX-Ports) ein Funktionsaufruf in einer repeat forever-Schleife programmiert“ ist. Das Unterprogramm ” lässt den Roboter blinken und piepsen, wenn der Zähler counter einen Wert zwischen 10 und 100 annimmt. Die beiden großen Komplexe auf der rechten Seite visualisieren, wie bei einem press-Event – jeweils einmal für die Berührungssensoren an Eingang 1 und Eingang 3 – verfahren werden soll. Der Roboter setzt zurück und dreht sich um einige Grad, indem die Motoren gegenläufig angetrieben werden. Anschließend wird geprüft (im check & choose-Block), ob counter zwischen 10 und 100 liegt. Ist die Bedingung wahr, fährt der Roboter wieder geradeaus und setzt den Zähler zurück; ist sie falsch, fährt der Roboter zwar auch wieder geradeaus, erhöht den Zähler aber um 1. Das gezeigte Programm“ lässt den Roboter somit die ” Umgebung erkunden und zählt die Zusammenstöße mit Objekten; bei jedem zehnten Zusammenstoß blinkt und piepst der Roboter. 3.2.2. NQC Mit NQC ( Not Quite C“) von David Baum [13] steht ein ” freier C-ähnlicher Dialekt zur Programmierung des RCX zur Verfügung. NQC gibt es für Windows, MacOS und Linux. Das Programm aus Abbildung 9 ist für einen einfachen, mit zwei Motoren und einem Helligkeitssensor ausgestatteten Roboter geschrieben. Zuerst werden die Motoren/Sensoren initialisiert, der Roboter fährt los. Dann wird in der while-Schleife kontinuierlich getestet, inwieweit die Helligkeitswerte, die der Sensor zurückliefert, zwischen den beiden Schranken L THRESH und R THRESH liegen. Wird es dem Roboter zu dunkel, dreht er sich zum Licht hin und fährt weiter; wird es ihm zu hell, dreht er sich vom Licht weg und setzt seine Fahrt fort. Der Programmcode simuliert sozusagen ein Insekt, das 2 Auf dem RCX läuft ein Bytecode-Interpreter; mittlerweile kann man diesen jedoch auch mit einer Java Virtual Machine“ ersetzen. [12] ” Abbildung 8. Beispiel für die visuelle Programmierung mit RCX Code“ ” sich in einem bestimmten Abstand (gegen den Uhrzeigersinn) um eine Lichtquelle bewegt. Das MINDSTORMS“-System bietet demnach viele ” Möglichkeiten für erste Experimente auf dem Gebiet der aktiven Programmierung“ von Robotern. Als Beispiel für ” einen Roboter, den man allein durch die eigene Interaktion mit ihm erziehen“ kann, wird im nächsten Kapitel der ” AIBO von Sony vorgestellt. 4. Der AIBO von Sony Der AIBO3 [15] ist ein einem Hund nachempfundener autonomer mobiler Roboter (siehe Abbildung 10). Von Sony als innovatives Unterhaltungsspielzeug anvisiert, sind wohl eher Erwachsene die Zielgruppe. Bei einem Stückpreis von DM 3399 ist der AIBO sicher zu teuer für das Kinderzimmer, zumal Erweiterungspakete des Funktionsumfangs separat erworben werden müssen. Trotz des hohen Preises sind jedoch schon über 45000 Exemplare dieses Haustieres“ verkauft worden. ” 3 Doppelbedeutung: A rtificial I ntelligence RoBO t; japanisch: Freund“. ” 4.1. Die Hardware Das Hundeherz“ ist ein mit 100 MHz getakteter 64” bit MIPS RISC-Prozessor. Der AIBO hat 16 MB RAMSpeicher. Über Memory Sticks“ mit 8 MB Kapazität (uni” verselles Speichermedium von Sony für digitalen Datenaustausch) kann man seinen Hund“ mit neuen Fähigkeiten ” aufrüsten“. ” Insgesamt findet man im AIBO 18 Motoren (vier im Kopf, drei pro Bein und zwei im Schwanz), die es ihm erlauben, sich mit maximal sieben Metern pro Minute umherzubewegen – jedenfalls solange der Lithium-Ionen-Akku ausreicht (Laufzeit etwa 1,5 Stunden). Ein Gyroskop stabilisiert die Bewegungen des Hundes. Über einen Lautsprecher kann er darüber hinaus mit verschiedenen Melodien auf sich aufmerksam machen. Eine Vielfalt an Sensoren bindet den AIBO in seine Umgebung ein. Über zwei Stereo-Mikrophone kann er auf Sprache reagieren. Im Kopf des AIBO befinden sich eine CCD-Farbkamera (mit 180000 Pixeln Auflösung) und ein Entfernungssensor, mit deren Hilfe er Farbe, Bewegung und Entfernung erkennen kann. Man kann mit dem AIBO kommunizieren, indem man die Berührungssensoren an Kopf, #define L_THRESH 42 #define R_THRESH 53 task main() { // assign SENSOR_2 to type // SENSOR_LIGHT; this implies // that return values range // from [0=dark to 100=bright] SetSensor(SENSOR_2, SENSOR_LIGHT); // turn on left and right motors On(OUT_A+OUT_C); while(true) { if(SENSOR_2 <= L_THRESH){ // too dark, turn left Off(OUT_A); On(OUT_C); } else if(SENSOR_2 >= R_THRESH) { // too bright, turn right Off(OUT_C); On(OUT_A); } else { // within threshold, drive // forward with both motors On(OUT_A+OUT_C); } } } Abbildung 9. Beispielprogramm NQC Kinn und Rücken lobend streichelt oder ihm tadelnd einen Klaps gibt. 4.2. Die AIBO-Ware Das Grundpaket des AIBO enthält nur den Roboter; dieser vermag nicht viel mehr zu tun, als sich eigenständig zu bewegen und selbstständig Aktionen auszuführen. Über sogenannte AIBO-Ware kann man seinen Hund“ zu differen” zierteren Kommunikationsvorgängen bringen. 4.2.1. AIBO Life Die AIBO-Ware AIBO Life“ erweitert den Hund“ um ” ” Instinkte, Emotionen, Lernfähigkeit, Spracherkennung und um die Möglichkeit, erwachsen“ zu werden. ” Der AIBO kennt sechs Emotionen (Freude, Traurigkeit, Ärger, Überraschung, Furcht und Abneigung) und Abbildung 10. Sony AIBO fünf Instinkte (Zuneigung, Neugierde, Bewegung, Aufladen, Schlaf). Alle diese Eigenschaften nehmen Werte zwischen 0 und 100 an und bestimmen das sogenannte ieMo” del“ (instinct-emotion model), den Gemütszustand“ des ” Hundes. Sieht der AIBO beispielsweise seinen (mitgelieferten) rosa Ball, so steigen seine Emotionswerte für Freude; gleichzeitig sinken die Werte für Traurigkeit, Ärger und Abneigung. Sieht der AIBO aber eine Farbe, die er überhaupt nicht mag ( UNFAV color“), sinkt der Wert für Freude, wo” hingegen die Werte für Überraschung und Furcht steigen. Während die Emotionswerte von der gegenwärtigen Stimmung des AIBO abhängen, gilt dies nicht für seine Instinkte. So würden beim Erkennen des Balls die Instinktwerte Zuneigung und Bewegung beispielsweise nur leicht, der Neugierdewert jedoch stark ansteigen. In gleichem Maße nähmen diese Instinktwerte beim Sehen der UNFAV co” lor“ ab. Abbildung 11 veranschaulicht die möglichen Stadien, über die sich der AIBO zum vollständigen Haustierersatz“ ” entwickeln kann. Die PC-Software AIBO Fun Pack“ gestattet es – in Ver” bindung mit AIBO Life“ – den AIBO zu individualisieren. ” Beispielsweise kann die Aufwachzeit des AIBO eingestellt werden; spezielle Ereignisse, wie Geburtstage, lassen sich einplanen. Das Fototagebuch“ in dem der AIBO pro Tag ” ein Bild speichert, lässt sich in ähnlicher Weise abrufen. 4.2.2. Hello AIBO“ und Party Mascot“ ” ” Wer beim Kauf des AIBOs gleich einen ausgewach” senen“ Hund erwerben möchte, sollte das Hello AIBO“” Abbildung 11. Entwicklungsstadien des AIBO Paket kaufen. Dieses unterscheidet sich von AIBO Life“ ” dadurch, dass die Funktion des Erwachsenwerdens fehlt. Mit eingesetztem Hello AIBO“- Memory Stick“ verhält ” ” sich der AIBO sofort wie ein erwachsener Hund“. ” Mit der AIBO-Ware Party Mascot“ erweitert man den ” AIBO speziell um die Fähigkeit, Feiern unterhaltsamer zu gestalten. Der AIBO amüsiert dann mit Kunststücken, Liedern und Tänzen; außerdem kann er mit anderen AIBOs Sport“-Wettkämpfe austragen. ” 4.3. Spielereien Die PC-Software AIBO Master Studio“ erlaubt es, ” die Bewegungsabläufe und Geräuscheffekte des AIBO abzuändern und zu ergänzen. Mittlerweile kann der AIBO sogar mit einer FunkNetzwerkkarte ausgestattet werden. Dies ermöglicht den Einsatz des AIBOs als Wachhund“, der die Bilddaten der ” Kamera direkt an einen angeschlossenen PC sendet. In [16] findet sich eine Browser-Software, um den Inhalt der Memory Sticks“ des AIBO zu manipulieren. Ein ” besonderes Feature bietet das Programm jedoch für Nicht” AIBO-Besitzer“: die Bewegungen und Töne der (ebenfalls dort verfügbaren) Memory Stick“-Images des AIBO kann ” man sich in einem Fenster von einem 3D-Software-AIBO vorspielen lassen. Obwohl der AIBO in seinem Verhalten einem lebendigen Haustier schon sehr nahe kommt, sind Roboter, die menschliche Fähigkeiten haben, noch Zukunftsmusik. Im nächsten Kapitel wird beschrieben, wie die Entwicklung zu perfekten“ Robotern hin aussehen könnte. ” 5. Roboter der Zukunft Glaubt man der Prognose von Hans Moravec [17], Professor für Robotik an der Carnegie Mellon University, werden bis Mitte dieses Jahrhunderts Roboter existieren, die dem menschlichen Verstehen und Handeln mindestens ebenbürtig, sehr wahrscheinlich sogar überlegen sein werden. Moravec vergleicht die Evolution der Intelligenz der Roboter mit der Evolution biologischer Intelligenz [18]. Seit dem Kambrium (vor etwa 570 Millionen Jahren) verdoppelten sich die größten Nervensysteme etwa alle 15 Millionen Jahre. Im Vergleich dazu verdoppelt sich die Rechenleistung von Prozessoren etwa alle ein bis zwei Jahre. Die Rechner entwickeln sich also etwa 10 Millionen Mal so schnell und werden uns bis Mitte dieses Jahrhunderts wahrscheinlich eingeholt haben. Eine grobe Schätzung (siehe Abbildung 12) verdeutlicht den momentanen Stand der Dinge: Aktuelle DesktopRechner leisten etwa 500-1000 MIPS; zur Nachbildung ei- Lebewesen Insekt Guppy Eidechse Maus Affe Mensch Abbildung 12. Rechenleistung MIPS 10 1000 5000 100000 5000000 100000000 Generation erste 5.3. Universelle Roboter der dritten Generation – bildhafte Vorstellung zweite dritte vierte Geschätzte –, abhängig vom positiven oder negativen Ausgang der Tätigkeit, an, dann lernt“ der Roboter mit der Zeit. ” Gehirn- nes Guppy-Gehirns sind etwa 1000 MIPS anzusetzen. Das menschliche Gehirn liegt hierbei mit etwa 100 Millionen MIPS weit außerhalb des Möglichen. Folgt man dem Moore’schen Gesetz, kann diese Rechenleistung jedoch schon in 20 Jahren zur Verfügung stehen. Diese Evolution“ gliedert sich in vier Generationen von ” Robotern [20] – jeweils gekoppelt an die verfügbare Rechenleistung ihrer Computer. 5.1. Universelle Roboter der ersten Generation – der dumme‘‘ Roboter ’’ Die Rechenleistung von 1000 bis 5000 MIPS dürfte ausreichen, um eine erste Generation von universellen, mobilen Robotern zu bauen. Diese können mittels mehrerer stereoskopischer Kameras ihre Umgebung wahrnehmen, sie aufzeichnen und sich selbstständig darin bewegen. Einen ersten Anwendungsbereich sieht Moravec darin, Gabelstapler oder auch Reinigungsmaschinen mit einem basketballgroßen navigation head“ auszurüsten, der die ge” samte Intelligenz“ (Rechner, Kameras und spezielle Pro” gramme für räumliche Wahrnehmung und Verrichtung der Arbeit) enthält. Mit dem Erreichen der dritten Generation werden die Roboter (mit MIPS) jeden Schritt ihres Handelns vor der Ausführung durchspielen“. ” Mit Hilfe einer world modeler“-Software kann der Ro” boter die Handlungen in seiner Umgebung simulieren. Mit jeder Wiederholung der Simulation werden die Gewichte der Handlungsalternativen (siehe Abschnitt 5.2) so angepasst, dass der Roboter schließlich die Aufgabe am Objekt“ ” korrekt ausführt. Ein Problem für die Simulation stellt die riesige Menge an Daten in Bezug auf implizites Vorwissen dar. Ein Roboter, der ein Gericht zubereiten soll, muss beispielsweise mit einer Vielzahl von unterschiedlichen Formen für Dosen, Tassen oder Töpfen rechnen“. ” 5.4. Universelle Roboter der vierten Generation – logisches Denken Durch die Verbindung von Robotern der dritten Generation mit Expertensystemen wird die vierte Generation universeller Roboter – Moravec’ Mind Children“ [21, 22] – ” die Fähigkeit zu logischem Denken und zur Abstraktion besitzen. Mit einer Rechenleistung von MIPS und mehr sind den Fähigkeiten der Roboter dann keine Grenzen mehr gesetzt. 5.2. Universelle Roboter der zweiten Generation – Anpassungsfähigkeit Die zweite Generation wird sich dann selbstständig an wechselnde Verhältnisse anpassen können und die Fähigkeit zum eigenständigen Optimieren ihrer Handlungsweisen haben. Dafür ist Rechenleistung im Bereich von etwa 100000 MIPS notwendig. Bestehen die Programme“ der Roboter der ersten Gene” ration nur aus Sequenzen von durchzuf ührenden Aktionen (z.B. DO STEP A THEN STEP B THEN STEP C...), kennt die zweite Generation auch Alternativen, wie etwa DO STEP A1 OR STEP A2 OR... THEN STEP B1 OR STEP B2 OR... THEN... . Gewichtet man die Alternativen und passt ihre Ausführungswahrscheinlichkeit – über die Rückkopplung eines Bewertungsmechanismus (a) Der Denker“ von Augu” ste Rodin, Kunsthalle Bielefeld (b) Die Zukunft des Roboters? Abbildung 13. Der Mensch und der Roboter Abbildung 13 spielt auf die Möglichkeit an, dass in Zukunft nicht mehr nur der Mensch allein das Denken“ für ” sich beanspruchen kann. Der Roboter wird dem Menschen ebenbürtig. Nach Moravec wird es also nicht mehr allzu lange dauern, bis zumindest universelle Haushaltsroboter zur Verfügung stehen. Wie sich der weitere Verlauf des Zu” sammenlebens“ mit den Maschinen in Zukunft entwickeln könnte, wird im nächsten Kapitel diskutiert. 6. Mensch und Maschine Die Entwicklung von Robotern beschränkt sich im Moment noch auf die Konstruktion einfacher Maschinen, die uns lästige Alltagsarbeiten abnehmen sollen. Allerdings stellt sich die Frage, ob dies das einzige Ziel ist, das der Mensch mit der Schaffung von Robotern verfolgt. Am Ende von Moravec’ Vision, mit der vierten Generation von Robotern, steht eine Maschine, die dem Menschen ebenbürtig, sogar überlegen ist! Der Versuch des Menschen, Nachkommen“ zu er” schaffen, die allein seinem Geist entsprungen sind, kann man letztlich als den Wunsch interpretieren, mit Hilfe seiner Geisteskinder“ Unsterblichkeit zu erlangen. Auch das ” Streben, etwas nach seinem Bilde“ zu schaffen und sich ” damit als ein höheres Wesen“ zu beweisen, mag in diesem ” Versuch einer Schöpfung“ eine Rolle spielen. ” Vielleicht wird noch in diesem Jahrhundert der Mensch eine Simulation“, die auf Robotern läuft“, sein und damit ” ” die biologische Evolution hinter sich lassen. [8] Massachusetts Institute of Technology, The Programmable Brick. http://el.www. media.mit.edu/groups/el/projects/ programmable-brick/ [9] Hitachi, Ltd., H8/3297 Series Single-Chip Microcomputer. http://www.hitachi.co.jp/Sicd/ English/Products/micom_all/l056e_a. htm [10] [Anonym], LEGO MINDSTORMS Internals. http: //www.crynwr.com/lego-robotics/ [11] Kekoa Proudfoot, RCX Internals. http: //graphics.stanford.edu/˜kekoa/rcx/ leJOS. [12] Jose Solorzano, sourceforge.net http://lejos. [13] David Baum, NQC - Not Quite C. http://www. enteract.com/˜dbaum/nqc/ [14] Jonathan B. Knudsen, The Unofficial Guide to LEGO MINDSTORMS Robots. O’Reilly, Sebastopol, CA, 1999. [15] Sony Corporation, AIBO Homepage. http://www. aibo.com [16] [Anonym], AiboPet’s //aibopet.com Web Site. http: [17] Hans Moravec, Persönliche Homepage. http:// www.frc.ri.cmu.edu/˜hpm/ Literatur [2] Carnegie Mellon University, Palm Pilot Robot Kit. http://www.cs.cmu.edu/˜pprk/ [18] Hans Moravec, Rise of the Robots. Scientific American, Dezember 1999, S. 124-135. Online: http://cart.frc.ri.cmu.edu/users/ hpm/project.archive/robot.papers/ 1999/SciAm.scan.html, 1999. [3] Palm, Inc., Hardware Comparison Matrix. http://www.palmos.com/dev/tech/ hardware/compare.html [19] Timothy Druckrey (ed.), with Ars Electronica, Ars Electronica: Facing the Future. A Survey of Two Decades. MIT Press, Cambridge, MA, 1999. [4] Pontech, The SV203 Servo Motor Controller Board. http://www.pontech.com [20] Hans Moravec, The Universal Robot. In [19], S. 116123. Online: http://cart.frc.ri.cmu.edu/ users/hpm/project.archive/robot. papers/1991/Universal.Robot.910618. html, 1991. [1] Douglas Adams, Per Anhalter durch die Galaxis. Wilhelm Heyne Verlag, München, 1998. [5] Microchip Technology, Inc., PIC16C7X Family. http://www.microchip.com/10/lit/ pline/picmicro/families/16c7x/ [6] Sharp Corporation, GP2D12. http:// sharp-world.com/ecg/opto/products/ pdf/optical_sd/optical_sd/gp2d12. pdf [7] LEGO Company, MINDSTORMS. //mindstorms.lego.com http: [21] Hans Moravec, Mind Children: The Future of Robot and Human Intelligence. Harvard University Press, Cambridge, MA, 1988. [22] Hans Moravec, ROBOT: Mere Machine to Transcendent Mind. Oxford University Press, Oxford, UK, 1998.