Ein Artikel zum LEGO-Robotterwettbewerb im 3. Semester des Kybernetik Studiums des Jahres 2005.
Aus dem zur Verfügung gestellten LEGO-Material und dem zusätzlichen Infrarot-Entfernungssensor ist ein Roboter zu bauen, der auf einer Bahn mit konstantem Abstand zu einer Wand von einer Startlinie - entlang der Wand - zu einer Ziellinie fahren soll. Ziel ist es, ohne in den Abgrund links und rechts der Bahn zu fallen, möglichst schnell die Distanz zwischen Start und Ziel zurückzulegen.
Das Rennen findet auf einer ebenen Bahn (Rundkurs) mit der Breite 25cm statt; siehe Zeichnung. Rechts der Fahrtrichtung im Abstand von 30cm +/- 1cm zur Bahnmitte befindet sich eine Wand (Höhe 15cm). Die Wand ist aus mattem weißem Karton. Alle Kurven sind Rechtskurven (konvexer Wandverlauf). Die Wand, und damit natürlich auch die Bahn, besteht aus Geradenstücken und Kurven. Der minimale Kurvenradius der WAND beträgt 15cm. Links und rechts der Bahn bis zur Wand ist ein tiefer Abgrund.
Der Roboter wird von den Teilnehmern vor der Startlinie auf der Bahn platziert und gestartet. An der Start- und Ziellinie befindet sich eine horizontale Lichtschranke in 3,5cm Höhe mit 25cm Durchfahrtsbreite. Mit dieser Lichtschranke wird die Zeitmessung gestartet und am Ende des Laufes wieder gestoppt.
Die Wand verläuft mindestens 10cm vor und hinter der Lichtschranke geradlinig. Der weitere Verlauf ist jedoch vorab unbekannt. Die Zeichnung in der Originalaufgabe ohne Regelpräzisierungen zeigt einen Beispielverlauf der Bahn.
Das LEGO-Material umfasst 1 ,,LEGO Mindstorms Erfinderset 2``, zusätzlich 1 Rotationsmesser, 1 Lichtsensor, 1 Getriebemotor (insgesamt also 3 Lichtsensoren und 3 Getriebemotoren), 1 Mikromotor und einen Infrarot-Entfernungssensor. Das Fahrzeug wird gesteuert von einem LEGO-RCX-Computer-Baustein. Die Programmierung ist mit beliebigen Programmiersprachen und Betriebssystemen erlaubt. Der RCX darf nur mit den dafür vorgesehenen Batterien, Akkus oder Netzteilen betrieben werden, bei den Wettbewerbsläufen nur mit selbst mitgebrachten Batterien oder Akkus.
Im Wettbewerb werden zwei Läufe durchgeführt, der bessere wird bewertet. Die Bahnen der beiden Läufe können verschieden sein, müssen es aber nicht. Ab einer Stunde vor Beginn des Wettbewerbs besteht die Möglichkeit zu Testfahrten auf einem Testkurs. Das Fahrzeug darf während der Wettbewerbsfahrten nicht von außen beeinflusst werden. Zwischen den beiden Läufen darf keine neue Software in den RCX geladen werden, die Batterien oder Akkus dürfen aber gewechselt werden.
Veranstaltet wird der Wettbewerb vom Institut für Systemtheorie und Regelungstechnik und dem Institut für Systemdynamik.
Die Homepage befindet sich hier. Die Aufgabe ist von der Roborace-Wettbewerb zitiert.
Der Name meiner Gruppe ist eigentlich -nebenbei bemerkt - ziemlich sinnlos, aber irgendwie mussten wir uns ja nennen.
Simon Hoher, Martin Müller, Matthias Müller, Christoph Schaal, Jan Schlotte und Sebastian Witzig.
Wie den Bildern zu entnehmen folgten wir einer relativ simplen Konstruktionsweise:
--> Vor dem 2. Lauf haben wir unsere Stossstange und den Überrollbügel entfernt (um Gewicht einzusparen)!
Auf die RCX 1.0 wurde brickOS geladen, die entsprechenden Programme dafür wurden in C geschrieben. Keiner von uns kannte sich wirklich C aus, so kann es gut sein, dass es "katastrophal" aussieht, aber es funktionierte!
Die Regelung ist im Prinzip total trivial, unser "PID" rechnet einen Lenkwert aus, auf die dann der Lenkmotor dreht (Abfrage mit Rotationsmesser).
Ob die Funktionsweise eines PIDs exakt berücksichtig wurde is allerdings auch fraglich, da wir ja noch keinerlei kenntnisse von Regelungstechnik hatten und alles Wissen von Wikipedia kam.
Wir haben uns gedacht den SourceCode unter der GPL (GNU General Public License) zu veröffentlichen, damit jeder sehen kann, wie "einfach" es geht. (siehe Anhang, md5sum: 9a85aa94ee3c360c28978828708567d9).
Der Programm-Code selbst enthält noch weitere Infos zu den einzelnen Funktionen etc.
Der Wettbewerb fand um 16 Uhr am 16.11.2005 im Hörsaal V 57.01 in der Universität Stuttgart statt. Neben den Teilnehmern waren auch einige Zuschauer sowie Presseleute anwesend.
Nach dem 1. Lauf lagen wir noch knapp (~50ms) hinter dem Team "In 80 Tagen um die Wand", vermutlich weil unser Robo in der 2. Runde einmal eine sehr suspekte (falsche) Bewegung ausführte.
Vor dem 2. Lauf bauten wir dann schnell unwichtige Teile ab (von der Verkleidung) um noch einmal Gewicht einzusapren (ob das was half?). Zudem lies Matthias ihn gaaanz hinten auf der Start-Ziel-Geraden anfahren, damit er auch wirklich schon auf Maximal-Gewschwindigkeit war, wenn er durch die Lichtschranke fuhr. Es zahlte sich aus und wir konnten uns auf 11,054s verbessern und lagen damit nun ca. 0,5s vor dem Team "In 80 Tagen um die Wand", welches im 2. Lauf von der Bahn flog.
Das beste Schülerteam "Prometheus" konnte sich im 2. Lauf ebenfalls noch verbessern, war letztendlich aber immernoch ca. 1s hinter uns.
Platzierung, Name, 1. Lauf, 2. Lauf, Bestzeit:
1. preek1100101, 11.788, 11.054, 11.054
2. In 80 Tagen um die Wand, 11.719, - ,11.719
3. Prometheus, 12.985, 12.188, 12.188
4. Wir haben schon dümmere Teamnamen gehört, 13.128, - , 13.128
5. Ludwig der listige Wandwiesel, 15.614, 15.793, 15.614
| Anhang | Größe |
|---|---|
| preeek.c | 5.25 KB |
Kommentare
Kommentar hinzufügen