In Zusammenarbeit mit Prof. Lothar Thiele musste zuerst ein Projekt konzipiert werden. Die Grundidee bestand darin, dass über das Internet ein RCX gesteuert werden soll. Am Meisten Anklang fand die Idee, einen Roboter von zu Hause aus durch die endlosen Gänge der ETH zu steuern. Gesteuert wird der Roboter über eine Seite im Internet. Sensoren und Web-Cam dienen zur Orientation - letzterer "Orientierungshilfe" wird wohl in der kommenden, wärmeren Sommerzeit eine noch grössere Bedeutung zukommen - dann dürfte unser Laptop-Mindstorm-Roboter wieder vermehr in den Gängen als in den Vorlesungssälen anzutreffen sein und mit seiner "Spy-Kamera" auf Jagt gehen um Bilder einzufangen, wie es sie sonst nirgends gibt! - ...übrigens: Sind dieses Jahr nicht wieder Röcke bei den Studentinnen "in"? Auf jeden Fall wünschen wir vom Laptop-Mindsorm-Team viel Spass beim Erforschen des Innenlebens der ETH!
Nach der ersten Stunde PPS war ich doch angenehm überrascht: Prof. Thiele, Leiter unserer Gruppe, wollte so gut wie gar nichts bestimmen. Unser Auftrag war simpel: Baut mittels Lego Mindstorms einen Roboter, der wennmöglich (aber nicht zwingend) übers Internet steuerbar ist. Jede Woche würden wir eine Sitzung haben, die jedesmal von einer von uns Studenten geleitet und von einen Protokollführer dokumentiert würde. Das war schon in etwa alles was vorgegeben wurde. Prof. Thiele diente uns mit Tips (vor allem Zeitplanung und technischen Feinheiten) und als Autoritätsperson, bei dem wir Rechenschaft für unser wöchentliches Tun abliefern durften.
Zu Beginn war nicht klar was die beiden alten Akkus des Laptops hergeben würden, also wurde nach alternativen Spannungsquellen gesucht. Unter http://accu-doc.ch findet man so ziemlich jeden Akku der jemals hergestellt wurde. Es stellte sich jedoch heraus, dass die original Akkus für unsere Zwecke ausreichen würden.
Da die RCX Einheit mit Batterien der Grösse AA läuft, war auch eine Alternative zu diesen kein Problem zu finden: Wiederaufladbare Li-Ionen Batterien mit 1500 mAh verlängerten das Leben um ein vielfaches, vor allem wenn man acht statt vier Stück nimmt und die Spannung mittels Spannungsregler auf die richtige Grösse konstant haltet.
Da leider nicht jeder Benutzer LOLA so darauf bedacht sein wird das gute Stück in einem Stück zu lassen, hielten wir es für angebracht einen Hindernisssensor einzubauen um allfällige Kollisionen oder Treppen-Abfahrten zu vermeiden.
Der Infrarotsensor ist auf einem Modellbauservo montiert, welches ständig hin- und her bewegt wird. Die Distanz zum Untergrund wird dabei einige hundert Mal pro Sekunde gemessen. Taucht ein Gegenstand auf, wird die Distanzänderung von einem zusätzlichen Microcontroller registriert und, falls ein vorher definierter Toleranzbereich überschritten wird, unternimmt der Controller Gegenmassnahmen, um eine Kollision zu vermeiden. Ueber ein LED-Array wird dem Fahrer angezeigt, wo und von welcher Art (Treppe, Hindernis) das lokalisierte Objekt ist. Da die Ansteuerung des Servos zeitkritisch erfolgt (per Impuls mit 1ms bis 2ms Dauer) und da die RCX-Einheit wenige I/O-Ports hat, war es nötig, den zusätzlichen Controller zu verwenden, so dass alle Sensordaten, das LED-Array und das Servo separat ausgewertet oder angesteuert werden und die RCX-Unit nur die Steuerung der Motoren (Fortbewegung, Kamera) übernehmen muss.
Ziel dieser Gruppe war es ein Gerüst zu konstruieren, welches Laptop, Kamera und Sensoren tragen und herumfahren kann.
Von Beginn an stellte sich ein Hauptproblem: Das Gewicht! Unsere erste Aufgabe war es somit, ein Fahrgestell zu konstruieren, welches sich auch unter einer Belastung von 5 bis 6kg fortbewegen kann. Erste Versuche mit Rollerbladekugellagern blieben erfolglos. Schlussendlich stellte sich das mit Schneckengetrieben bestückte Modell als das Effizienteste heraus. Nun konnten weitere Faktoren wie etwa der Wendigkeit und der Geschwindigkeit des Roboters Rechnung getragen werden.
In einem 2. Schritt musste die schwenkbare Kamera in eine ideale Position gebracht werden. Das wichtigste Kriterium blieb dabei, dass man nicht nur Beine (auch ganz hübsch!) sondern auch Köpfe per Kamera zu sehen bekommt!
Die Konstruktion des Schwenkmechanismus stellte uns, jetzt schon erfahrenen "Legotechnikern", nicht vor allzu grosse Probleme. Einiges schwieriger erwies sich allerdings die Stabilität der, auf einem Meter über Boden eingebaute, Kamera. Das Problem löste sich grösstenteils mit der Konstruktion des Designgerüsts. So nahm unser Roboter schon bald (Frauen-) Gestallt an und einer nach dem anderen begann, an ihr grossen Gefallen zu finden... !
Die Homepage wurde in html erstellt, wobei frames, stylesheets und.php3 verwendet wurden. Die grafische Gestaltung erfolgte in Adobe Photoshop.
Die Webcam ist über den Parallelport mit dem Laptop verbunden, als Software für die Webcam wird iVista 4.0 verwendet. Das Kamerabild wird als komprimierter Viedostream vom Laptop zur Verfügung gestellt. Aus Performance-Gründen bekommt nur der Steuernde den Stream (Video). Für die restlichen Besucher wird alle 20 Sekunden ein Standbild per ftp an den Webserver, auf der sich die Homepage befindet, gesendet. Somit dürfte es keine Probleme mit grösseren Zugriffszahlen geben. Zusätzlich wird zum Video auch ein Audio-Stream übertragen.
Zur Sprachausgabe wird ein Skript auf der Seite www.svox.ch verwendet. Durch ein Formular kann Text zu Sprache synthetisiert werden. Die Audiodatei wird automatisch auf dem Server erzeugt und lokal abgespielt.
Das Problem lag darin, die Eingabe von der Ausgabe zu trennen. Auf unserer Homepage kann man in eine Befehlszeile einen Text eingeben. Dann wird auf dem Server die Datei generiert und auf dem Laptop abgespielt. Ermöglicht wird dies durch ein.php3-Script.
Für die Steuerung des Roboters wird die Software WebBrick verwendet (www.best.com/~amnon/Homepage/Lego/). Damit das Programm korrekt funktioniert, muss auf dem RCX die Lego-Firmware geladen sein. WebBrick kann die fünf auf dem RCX gespeicherten Programme ausführen und mit Hilfe einer API-Variablen auf dem RCX lesen und verändern und die Sensoreingänge lesen.