Aus Linux-Magazin 06/2010

Neues aus der Welt der freien Software und ihrer Macher

Abbildung 1: Roboter programmieren ohne Roboter: Peekabot visualisiert das Geschehen im virtuellen 3-D-Raum. Die Umgebung selbst beschreiben XML-Konfigurationsdateien.

Roboterbau ist als Hobby zwar kostspielig, aber zu interessant, um ihn einer kleinen Forschungselite zu überlassen. Peekabot erspart die Hardwarekosten und simuliert eine schöne neue Roboterwelt. Gbrainy trainiert die grauen Zellen – und zur Stärkung gibt es Spargel mit Schinkenpfannkuchen .

Utopie oder Wirklichkeit? Science-Fiction oder Reality-Report? Im Jahr 2050 soll der dann amtierende Fußballweltmeister gegen eine Mannschaft aus Robotern antreten – jedenfalls wenn es nach den Initiatoren der jährlich ausgetragenen WM im Roboterfußball, dem Robocup, geht. Gespielt wird nach den FIFA-Regeln, und die Robocup Federation ist sich sicher, dass die mechanischen Kicker gegen die menschliche Elf gewinnen.

Abbildung 1: Roboter programmieren ohne Roboter: Peekabot visualisiert das Geschehen im virtuellen 3-D-Raum. Die Umgebung selbst beschreiben XML-Konfigurationsdateien.

Abbildung 1: Roboter programmieren ohne Roboter: Peekabot visualisiert das Geschehen im virtuellen 3-D-Raum. Die Umgebung selbst beschreiben XML-Konfigurationsdateien.

Kritiker mögen einwenden, dass die Menschheit gravierenderen Problemen gegenübersteht, bei deren Lösung Roboter sinnvoller helfen könnten, doch Fußball eignet sich in vielerlei Hinsicht gut zum Experimentieren. Das Spiel mit dem runden Leder erfordert strategisches Planen, dynamisches Lernen, die Erkennung verschiedener Objekte, zügige und wendige Bewegungen und Reaktionen auf sich schnell verändernde Außenbedingungen sowie Teamkoordination – alles Aufgabenstellungen, die auch im Alltag und nicht nur auf dem Rasen auftauchen.

Abbildung 2: Der Beispielroboter »bo-slam« aus der Vogelperspektive: Die Kamera steht in der Mitte, die Linien zeigen den Kurs des Roboters und welchen Einfluss externe Objekte darauf haben.

Abbildung 2: Der Beispielroboter »bo-slam« aus der Vogelperspektive: Die Kamera steht in der Mitte, die Linien zeigen den Kurs des Roboters und welchen Einfluss externe Objekte darauf haben.

Virtuelles visualisiert

Software-Entwickler streben danach, die gegebene Hardware optimal zur Lösung der jeweiligen Aufgabe zu steuern. Hardwarebastler wiederum bemühen sich darum, die verfügbaren Teile zu einer Maschine zusammenzufügen, die sich für die Lösung der potenziell auftretenden Probleme eignet. Die Kombination aus beidem bildet die Essenz des akademischen Felds der Robotik.

Ein Knackpunkt ist, dass Änderungen an der Hardware immer mit gewissen Kosten verbunden sind. Selbst kleinere Anpassungen können wertvolle Zeit und auch Material verschlingen, wenn der Robotiker beispielsweise verschiedene Kombinationen aus Teilstücken ausprobieren möchte. Um an dieser Stelle zu sparen, behelfen sich die Entwickler mit Simulationen und testen die Software auf virtueller Hardware und in einer ebenfalls virtuellen Umgebung.

Die freie Software Peekabot [1] zeigt, wie die Roboterwelt aussehen kann; einen echten Roboter benötigt der Bastler dazu nicht (siehe Abbildung 1). Das Programm visualisiert vollständig simulierte Umgebungen und gibt auch Bewegungen wieder, die auf aufgezeichneten Aktionen tatsächlicher Roboter basieren. Dank einer Server-Client-Architektur ist es sogar möglich, echte Roboter zu beobachten, während sie sich tatsächlich bewegen. In diesem Fall muss lediglich die virtuelle Welt die reale Roboterumgebung modellieren. Der Server stellt dabei die virtuelle Welt zur Verfügung und kümmert sich auch um die Grafikausgabe.

Im Peekabot-Hauptfenster navigiert der Benutzer per Kamera durch den dreidimensionalen Raum. Als Client dient ein einzelner Roboter: Er verbindet sich über TCP/IP mit dem jeweiligen Server und verrichtet in dessen Welt sein Werk gemäß den Anweisungen der Steuersoftware. Der Vorteil ist, dass es keine Rolle spielt, ob der Serverdienst auf demselben Computer läuft oder auf einem anderen Rechner, der über eine Netzwerkanbindung verfügt.

Abbildung 3: Peekabot bietet verschiedene Kamera-Ansichten. Die hier gezeigte Fluchtpunktperspektive stellt zwei Linien für die erwartete und die tatsächliche Route des Roboters dar.

Abbildung 3: Peekabot bietet verschiedene Kamera-Ansichten. Die hier gezeigte Fluchtpunktperspektive stellt zwei Linien für die erwartete und die tatsächliche Route des Roboters dar.

Roboter im Eigenbau

Die Roboter, die alleine oder in Gruppen auftauchen, bestehen nicht aus Chips, Sensoren, Rädern, Plastik und Metall, sondern aus vergleichsweise leicht und preiswert zu beschaffendem Material: C++-Code. Die Headerdatei »peekabot.hh« gehört zum Peekabot-Paket und versorgt den Programmierer mit den notwendigen Klassen- und Funktionsdefinitionen. Für den Entwurf eines Clients ist die Klasse »peekabot::PeekabotClient« von zentraler Bedeutung. Mit dem Schalter »-lpeekabot« aufgerufen erzeugt GCC anschließend aus dem Quellcode einen Roboter, der sich als eigenständiges Clientprogramm starten lässt. Das englischsprachige Tutorial unter [2] ist eine gelungene Einführung in die Peekabot-Programmierung.

Das Quelltextarchiv enthält jede Menge Anschauungsmaterial. Programmierer finden im Unterverzeichnis »examples/bo-slam« zahlreiche Beispiele, darunter den einfachen Roboter »bo-slam«, der sofort nach dem Kompilieren betriebsbereit ist. Ein »make«-Aufruf, gefolgt von »./bo-slam«, setzt ihn bei laufendem Peekabot-Server in die dort geschaffene virtuelle Welt. Dieser mit mäßiger Intelligenz ausgestattete künstliche Freund zieht darin jedoch weitgehend ziel- und orientierungslos seine Kreise (siehe Abbildungen 2 und 3).

Um die Szenerie zu gestalten, sind keine Programmierkenntnisse nötig. Weltenbauer beschreiben die Roboterbehausungen einfach in XML-basierten Konfigurationsdateien (»Scene files«). Hier definiert der Anwender Objekte und ihre Positionen sowie das Aussehen der Roboter. Die XML-Konfigurationseigenschaften beziehen sich auf 3-D-Modelle, die Peekabot wiederum in einem eigenen Format anfordert. Derartige Modelle, seien es Roboter oder andere Objekte, erstellen Anwender mit externen Programmen – einzige Voraussetzung ist, dass die Software Wavefront-Dateien erzeugt. Die freie Software Blender [3] beispielsweise leistet dies. Anschließend konvertiert das Werkzeug »obj2pbmf« aus dem Peekabot-Paket die Modelle ins programmeigene Format. Eine Sammlung existierender 3-D-Modelle steht unter [4] zur Verfügung.

Roboterfans gesucht

Staffan Gimåker und Anders Boberg entwickelten Peekabot im Jahr 2006 als Teil ihres Studiums an der Königlichen Hochschule für Technologie in Stockholm. Gimåker betätigt sich seitdem als Maintainer des unter der GPL lizenzierten Projekts und ist als solcher auf der Suche nach Helfern.

Die Entwicklung von Peekabot-Robotern erfordert grundlegende Kenntnisse in C++ – eine Voraussetzung, um das Programm mit eigenen Patches zu verbessern. Wer sich jedoch der Komplexität des Peekabot-Code nicht gewachsen fühlt, kann auch anderweitig zum Projekt beitragen. Fehlermeldungen, Feedback und Verbesserungsvorschläge heißt der schwedische Entwickler ausdrücklich willkommen. Er interessiert sich außerdem dafür, wer Peekabot in der Praxis benutzt und in welchen Szenarien die virtuellen Roboter im Einsatz sind.

Gehirnjogging am Computer

Mit dem menschlichen Gehirn verhält es sich wie mit anderen Organen: Stete Übung hält es auf Touren. Der spanische Entwickler Jordi Mas sorgt dafür, dass Benutzer des Gnome-Desktops hellwach bleiben, und bietet Ablenkung im Arbeitsalltag. Das Programm Gbrainy [5] bringt die grauen Zellen in Schwung (siehe Abbildung 4).

Abbildung 4: Gbrainy hält die grauen Zellen in Schwung. Das Tool trainiert logisches Denken, Kopfrechnen und das Gedächtnis.

Abbildung 4: Gbrainy hält die grauen Zellen in Schwung. Das Tool trainiert logisches Denken, Kopfrechnen und das Gedächtnis.

Der Software-basierte Trainer fordert das Gehirn in drei Kategorien heraus. In den Logikrätseln stehen Anwender beispielsweise vor der Aufgabe, Zahlenreihen zu erkennen. Das Kopfrechnen stellt sich als komplexer heraus, als die Beschreibung suggeriert. Gbrainy verlangt hier nicht nur verschiedene Rechenoperationen mit vorgegebenen Zahlen, sondern auch knifflige Berechnungen, die den einfachen Dreisatz weit übertreffen. Abbildung 5 zeigt ein Beispiel, in dem der Benutzer die korrekte Abschätzung einer Division im Dezimalbereich abliefern soll.

Abbildung 5: Beim Kopfrechnen gibt es nicht nur schlichte Rechenaufgaben zu lösen, sondern auch verzwicktere Probleme zu knacken.

Abbildung 5: Beim Kopfrechnen gibt es nicht nur schlichte Rechenaufgaben zu lösen, sondern auch verzwicktere Probleme zu knacken.

Wenn es um das Erinnerungsvermögen geht, präsentiert Gbrainy zunächst Objekte verschiedener Art, beispielsweise Zahlen und geometrische Formen. Diese soll sich der Anwender in einer recht kurz gehaltenen Zeitspanne einprägen. Doch auch hier gestalten sich die Aufgaben im nächsten Schritt nicht einfach. Statt lediglich die zuvor präsentierten Objekte in ihrer ursprünglichen Darstellung abzufragen, fordert Gbrainy etwa Auskunft über die Anzahl der zweistelligen Zahlen oder über die Platzierung einer bestimmten Form.

Zukunftspläne für den Trainer

Die neu gewonnenen geistigen Kräfte können Gbrainy-Spieler direkt zurückführen. Der Entwickler bittet neben der Benachrichtigung über eventuell gefundene Programmfehler auch um direkte Hilfe. Diese kann in Form von Feedback zum Spiel selbst, über Entwürfe bis hin zur Implementation neuer Rätsel erfolgen. Auch Übersetzer sind willkommen. Das Handbuch liegt bislang in fünf Sprachen vor, darunter Deutsch, die Oberfläche ist aber oft nur teilweise lokalisiert.

Für die Zukunft plant Jordi Mas die Beigabe textbasierter Rätsel sowie die Ergänzung um Sudoku und Intelligenztests ähnlich denen, die der Hochbegabtenverein Mensa verwendet. Des Weiteren soll Gbrainy künftig auch auf portablen Plattformen wie Maemo [6] und Hildon [7] laufen, gegebenenfalls die Auswahl der korrekten Lösung per Mausklick erlauben und eine Dokumentation erhalten. Auch die angestrebte Druckfunktion erscheint ein sinnvolles Ziel, denn erfahrungsgemäß ist die Präsentation auf einem Bildschirm für die Konzentration eher abträglich.

Der Gbrainy-Entwickler Jordi Mas ist übrigens kein Unbekannter in der Open-Source-Welt. Er hat sich bereits als Abiword-Programmierer betätigt und bei frühen Open-Office-Versionen bei der Entstehung der katalanischen Rechtschreibprüfung mitgeholfen. Neben Gbrainy entwickelt er zudem das Werkzeug Mistelix [8] zum Erstellen von DVDs. Auch bei Mono, der freien Implementation von Dotnet, betätigte er sich mehrere Jahre als Freiwilliger. Kein Wunder also, dass er auch Gbrainy in Mono und C Sharp umgesetzt hat.

Spargel mit Schinkenpfannkuchen

Die Spargelzeit hat wieder begonnen. Das leckere Gemüse schmeckt besonders gut in einen herzhaften Pfannkuchen eingerollt. Dazu gibt’s eine selbst gemachte Kräuterhollandaise. Zutaten für vier Personen: Für den Pfannkuchen: 250 g Mehl, vier Eier, 1/4 l Milch, 1/4 l Mineralwasser, 300 g gekochten Schinken, eine Zwiebel: Für die Sauce: zwei Eigelbe, 125 g Butter, 2 EL Wasser, frischer Zitronensaft, Salz, Pfeffer, frische gehackte Kräuter (Dill, Petersilie, Kerbel), 1 kg Spargel.

Den Spargel schälen, die Enden abschneiden, in einem Bett aus Alufolie anrichten, salzen und pfeffern, mit ein bisschen Zitronensaft beträufeln, mit Alufolie abdecken und an den Enden zusammenfalten. Das Alufolien-Päckchen mit dem Spargel zirka 45 Minuten im Ofen bei 140 bis 160 Grad im eigenen Saft garen.

Für den Pfannkuchen die Zwiebel hacken und den Schinken würfeln. Beides zusammen in etwas Butter anbraten. Milch und Mehl glattrühren, die Eier dazugeben und mit dem Mineralwasser schaumig schlagen. Schinken-Zwiebel-Mischung zum Teig dazugeben, mehrere Pfannkuchen backen und warm stellen.

Eine selbst gemachte Sauce hollandaise ist kein Hexenwerk – der Trick ist die Temperatur. Die Zutaten erwärmen, aber keinesfalls aufkochen. Am besten gelingt alles im Wasserbad. Die Butter langsam zerlassen (nicht zu heiß werden lassen). Eier trennen und die Eigelbe mit dem Wasser so lange mit einem Schneebesen schlagen, bis die Masse hellgelb, schaumig und cremig wird. Die flüssige Butter langsam nach und nach unterschlagen, mit Zitronensaft, Salz und Pfeffer abschmecken. Ganz zum Schluss die gehackten Kräuter unterheben.

Jeweils ein paar Stangen Spargel in einen Schinkenpfannkuchen einrollen und mit der Kräuterhollandaise überziehen – guten Appetit! (hej)

Infos

[1] Peekabot: [http://www.peekabot.org]

[2] Peekabot-Dokumentation (in Englisch): [http://www.peekabot.org/doc/latest]

[3] Blender: [http://www.blender.org]

[4] Peekabot Model-Repository: [http://sourceforge.net/apps/mediawiki/peekabot/index.php?title=Model_repository]

[5] Gbrainy: [http://live.gnome.org/gbrainy]

[6] Maemo: [http://maemo.org]

[7] Hildon: [http://live.gnome.org/Hildon]

[8] Mistelix: [http://www.mistelix.org]

LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben