Available Projects
Die Projekte benötigen individuellen Zeitaufwand. Außerdem sind viele Projekte so angelegt, dass sie leicht erweitert oder zusammengestrichen werden können. So kann das Projekt "Laufroboter" zum Beispiel als Studienarbeit oder als Diplomarbeit durchgeführt werden. Für eine ausführliche Besprechung der Themen wenden Sie sich bitte an Raúl Rojas.
1. Laufroboter
Aufgabe dieses Projektes ist es unseren 6-beinigen Laufroboter zu programmieren. Derzeit kann der Roboter aufstehen aber Befehle wie Vorwärtzlaufen, Rückwärtzlaufen, Umdrehen u.s.w. fehlen noch. Es handelt sich hierbei um eine Microcontrollerprogrammierung in C. Weitere Möglichkeiten bestehen z.B. darin, den Roboter mit Sensoren auszustatten (Kamera, Abstandssensoren, ...), mit einem PDA zu verbinden u.s.w.
2. Farbabgleichung
Nicht homogen ausgeleuchtetes Spielfeld
Es soll ein automatischer Farbabgleich durchgeführt werden, damit an unterschiedlich beleuchteten Stellen auf dem Spielfeld, die Roboter trotzdem zuverlässig erkannt werden können.
3. RGB-Visualisierung
Aufgabe dieses Projektes ist es unseren 6-beinigen Laufroboter zu programmieren. Derzeit kann der Roboter aufstehen aber Befehle wie Vorwärtzlaufen, Rückwärtzlaufen, Umdrehen u.s.w. fehlen noch. Es handelt sich hierbei um eine Microcontrollerprogrammierung in C. Weitere Möglichkeiten bestehen z.B. darin, den Roboter mit Sensoren auszustatten (Kamera, Abstandssensoren, ...), mit einem PDA zu verbinden u.s.w.
4. Superresolution
Ein vergrößertes Roboter-Cover
Das von der Kamera kommende Bild ist zu undeutlich. Um dies zu korrigieren, soll die Auflösung des Bildes erhöht werden (z.B. 640x480 wird zu 1280x960), die Kanten im Originalbild erkannt und im neuen Bild schärfer nachgezeichnet werden.
5. Demosaicing
Das beliebte Bayer-Muster
Der gewöhnlicher lichtempfindliche Chip in einer 1-Chip CCD-Farbkamera liefert nicht für jeden Pixel einen RGB-Wert, sondern nur eine Farbinformation, entsprechend dem darauf angebrachten Farbfilter (Mosaik-Filter). Die Kamera berechnet das Videobild, indem sie für benachbarte Pixel Farbwerte approximiert. Dieses Projekt soll die Antwort auf die Frage liefern, ob aus einem vorliegenden Bild die Konfiguration (d.h. Anordnung) des Mosaik-Filters und der verwendete Interpolationsalgorithmus bestimmt werden kann.
6. Beschreibung/Messung der Artefakte in der RoboCup-Umgebung
Weiße Linien und weißer Bande auf grünem Teppich
In der Vision der Small-Size gibt es viele Probleme, u.a. Rauschen, Verzerrungen und falsche Farben an Kantenübergängen. Diese Artefakte sollen beschrieben und deren Ausmaß gemessen werden, damit man Berechnungsmethoden entwickeln kann, die diese Fehler beheben.
7. Delaymessung
Zwischen dem Senden eines Befehls an einen Roboter auf dem Spielfeld und der Registrierung der Bewegung auf dem Hauptrechner besteht eine Verzögerung. Es soll eine Methode entwickelt werden, dieses "Delay" jederzeit messen zu können, um die Performance des gesamten Systems bestimmen zu können und ggf. Verbesserungen vorzunehmen.
8. Antischlupfsystem
Die Positionsbestimmung im Roboter wird dadurch erschwert, dass die Räder bei abrupten Änderungen der Geschwindigkeit ins Rutschen geraten können. In diesem Projekt soll ein System entwickelt werden (evtl. Sensorik und Software), welches durchdrehende Räder erkennt und die Motoren entsprechend regelt.
9. Kalibrierungsfunktion richtig berechnen
Kalibrierungsteppich der Cornell University
Die Kalibierungsfunktion für die Small-Size-Vision soll aus einem Referenzbild bestimmt werden. Zur Zeit wird eine Quadratische Interpolation benutzt, die aber bei einer starken Verzerrung am Rand zu ungenau ist. Andererseits kann eine Per-Pixel-Tabelle zur Verfügung gestellt werden. Dies ist jedoch sehr aufwendig. Dabei muß aber auch die Höhe der Roboter mit einbezogen werden. Eine weitere, sehr verbreitete Methode stammt von Tsai. Dabei werden 7 Parameter (Referentkoordinaten, Abstand der Kamera zur Projektionsebene, Beschreibung der Kameraoptik, usw.) benötigt, um die Transformation zu bestimmen.
10. Optimale Pfadplanung
Aktueller Pfadplaner
Der kürzeste Weg ist nicht immer der schnellste Weg zum Ziel im Roboterfußball. Deshalb beschäftigt sich dieses Projekt mit einer Pfadplanungssoftware, die den einfachsten (möglichst wenig gekrümmten) Weg an gegebenen Hindernissen vorbei findet. Auch hier gibt es unterschiedliche Ansätze zum Lösen des Problems.
11. Odometrie
Eine andere Möglichkeit, die Positionsbestimmung zu verbessern, ist die Messung der Bewegung des Roboters mithilfe optischer Mäuse (Mid-Size!). Da jedoch das Betriebssystem jedoch nur die Daten eines Eingabegeräts verarbeiten kann, soll nach einer Methode gesucht werden, die Bewegungen zweier Mäuse eventuell direkt aus deren Treibern zu lesen.
12. Abstandsfunktion richtig berechnen
Diesmal für die Vision der Mid-Size-Roboter. Die Form des Spiegels ist zwar bekannt, so dass die Verzerrung des Spiegels leicht herausgerechnet werden kann, jedoch ist der Spiegel bzw. die Kamera nicht 100-prozentig ausgerichtet. Dadurch kommt es zu weiteren Verzerrungen. Außerdem gibt es noch Fertigungsfehler der Spiegel, die auch berücksichtigt werden müsssen.
13. Statistische Auswerung von aufgenommenen Spielen
Die aufgezeichneten Daten von Spielverläufen sollen statistisch analysiert werden. Dies soll Fragen wie das Verhältnis der Zeit des Ballbesitzes zwischen Team und Gegner oder etwa die mittlere Geschwindigkeit, gerollte Strecke oder Treffsicherheit der Roboter beantworten. Daraus könnte man eventuelle Verbesserungsvorschläge ableiten.
14. Messung der Lokalisierungs- und Orientierungsgenauigkeit
Die Bestimmung der Positionen von Ball, Robotern, Hindernissen u.a. ist ungenau. Aufgabe dieses Projektes ist es, die Abweichung zu messen und zu beschreiben. Dazu gehört die Messung der Position und der Orientierung des Roboters in der Welt und der Vergleich mit den Daten, die die Vision liefert (d.h. delta x, delta y und delta phi).
15. Video der FU-Fighters schneiden
Ein bearbeitetes Frame aus Fukuoka
Bei den unterschiedlichen Turnieren wurden und wird einiges an Videomaterial gewonnen. Darin sind Spiele aus der Sicht des Zuschauers aber auch Einblicke hinter die Kulissen der Trainer enthalten. Dieses Rohmaterial mithilfe der unieigenen Filmschnittanlage in ein kurzweiliges Präsentationsvideo zu verarbeitet ist Inhalt dieses Projektes.
16. Monitorprogramm neu schreiben
Es gibt ein Programm, welches die Daten aus dem Rückkanal des Roboters visualisiert. Dieses soll überarbeitet (QT, C++), verbessert und in das Small-Size-Programm integriert werden.
17. 3D-Visualisierung
Der bisherige 3D-Viewer
Es ist ein Visualisierungs-Plug-In für das RoboCup-Programm vorhanden, welches aktuelle und Aufgezeichnete Spiele in einem virtuellen Spielfels 3-dimensional darstellt. Dazu wird OpenGL benutzt. Die Darstellung ist allerdings noch recht rudimentär. Es sollen 3D-Darstellung von Robotern durch Modelle aus Open Inventor (einem 3D-Konstruktionsprogramm) dargestellt werden können. Außerdem wären Texturen für das Spielfeld und die Tribünen schön.
18. Vorhersagen im Simulator
Der Simulator soll so geändert werden, dass er die Vorhersagen der realen Roboter zur Simulation benutzt. Spezialbehandlungen für z.B. Kollisionen und Wände sollen natürlich dennoch abgefangen werden.
19. Physikalische Modelle des Roboters
Es soll ein physikalisches Modell des Roboters (Motor, Getriebe, Schlupf usw.) simuliert werden. Dies ist zum Beispiel zur Optimierung des Regelkreises im Mikrocontroler sinnvoll.
20. Ladezustand von Akkus messen
Den Ladeszustand eines Akkus zu messen ist sehr schwierig. In Akkus für Notebooks ist beispielsweise eine kleine Elektronik integriert, die den Verbrauch ständig misst und dadurch indirekt den Ladezustand des Akkus versucht heraus zu bekommen. Denn direktes Messen funktioniert nicht! In den kleinen Robotern sind die Akkus fest integriert. Der Microcontroler des Roboters hat noch analoge Eingänge zur verfügung, um zum Beispiel über zusätzliche Bausteine Spannung und Strom zu messen. Es soll also ein Akkuüberwachungsprogramm für den Microcontroler geschrieben und die Hardware entsprechend angepaßt werden.
21. Programm zum Design von Spiegeln
Es wird vorgegeben wie die Verzerrung aussehen soll (Horizont, Sichtbereich am Roboter, usw.). Es soll erstens die 3D-Darstellung eines virtuellen Spielfelds aus normaler Sicht und zweitens durch einen interaktiv veränderbaren Spiegel dargestellt werden.
22. Motoren Berechnungsprogramm
Zu jedem Motortyp sollte es Kennlinien, die den Motor beschreiben, geben. Wenn eine solche Kennlinie nicht existiert, kann man sie selbst experimentell bestimmen. Anhand der Kennlinien und der Daten des Roboters (Gewicht, Anzahl und Anordnung der Motoren, usw.) kann man die maximale Beschleunigung und Geschwindigkeit des Roboters berechnen.
23. Challenges Programmieren
Im Rahmen des RoboCup finden regelmäßig kleine Wettbewerbe statt, in denen nur bestimmte Eigenschaften der Roboter miteinander im Wettbewerb verglichen werden. Ein Ziel kann zum Beispiel sein, in möglichst kurzer Zeit viele Tore auf ein leeres Tor zu schießen. Dazu befindet sich nur ein Roboter und ein Ball auf dem Spielfeld. Immer wenn der Ball im Tor landet, wird er herausgenommen und möglichst schnell auf Höhe der Mittellinie wieder eingeworfen. Für diese Wettkämpfe sollen spezielle Verhalten geschrieben werden.
24. Serielle Programmübertragung der Elektronik
Bisher werden neue Programmversionen für den Microcontroler mit Hilfe eines teuren und sensiblen "Debug"-Moduls auf die Elektronik übertragen. Es spricht aber nichts dagegen, ein neues Programm über eine serielle Schnittstelle des Controlers zu übertragen. Dazu muß Software für den Controler und für den PC geschrieben werden, welche für die Übertragung und "Installation" des Programms zuständig ist.
25. Pakete Messen
Zur Übertragung der Steuerdaten zum Roboter wird ein Datensatz in ein Paket mit Header, Adresse, Nutzdaten sowie Fehlererkennungsbyte gepackt und dieses über ein Funkmodul zum Roboter gesendet. Durch Störungen können die Daten verfälscht und die Pakete damit ungültig werden. Daher muß ein Kompromiss zwischen Paketlänge, Fehlerkorrekturmöglichkeit und Verlustrate gefunden werden. Um die optimale Konfiguration zu finden, müssen die falsch übertragenden Daten analysiert werden.
26. Vorhersage
Es gibt verschiedene Methoden um Roboterpositionen vorherzusagen. Zur Zeit können Neuronale Netze und lineare Vorhersager benutzt werden. Ein Teil des Projekts besteht darin, neue Vorhersagemethoden zu implementieren. Ein zweiter Teil besteht aus der Berechnung und dem Vergleich der Genauigkeiten der unterschiedlichen Modelle. Dabei kann auch untersucht werden, welche Genauigkeit theoretisch maximal erreicht werden kann.
27. Ballvorhersage
Diese optimieren durch das Einbeziehen von Robotern, deren Orientierungen und Wänden. Einen Kalmanfilter zur Glättung auf höheren Ebenen verwenden.
28. Editor für Aufzeichnungen und Export von Aufzeichnungen
Die Spielzustände werden für jedes Frame aufgezeichnet. Dazu zählen alle Sensordaten (Roboterpositionen, Spielstatus, Ballgeschwindigkeit) und Aktivierungszustände von Verhalten (zum Beispiel "Passen" oder "Halten"). Diesen Spielablauf kann man auch als XML-Datei speichern und, um ältere Aufzeichnungen zu analysieren, laden. Nun sollen Episoden markiert und diese dann gesondert gespeichert werden können. Außerdem sollen die Daten in anderen Formaten, zum Beispiel csv, gespeichert werden, damit man die Daten mit unterschiedlichen Verfahren analysieren kann. Zum Beispiel um eine statitische Auswertung in Excel durchzuführen.
29. Installations CDs für RoboCup
Das Installieren der Software ist recht aufwendig. Es soll eine CD erstellt werden, die diesen Prozess vereinfacht. Dabei kann auf die CD auch noch zusätzliche Dokumentation, ein Ausschnitt der Web-Seite, gebrannt werden.
30. Dokumentation
Es geht in diesem Projekt einerseits um die Dokumentation der Hardware. Dazu zählen zum Beispiel technische Daten und Funktionsbeschreibungen der Komponenten und CAD-Zeichnungen der Roboter. Diese Daten müssen zusammengetragen und sinnvoll gegliedert werden. Anderseits geht es auch um die Beschreibung der Softwarekomponenten, des Programmcodes, der Bedienung des Programmms und des Frameworks.
31. Rasenmäher
Rasenmäher RL500
Konzeption und Bau eines Rasenmäherroboters. In Kooperation mit einer Rasenmäherfirma, wird ein Roboter gebaut, der automatisch den Rasen mäht, sich lädt und immer weiss, wo er ist. Der Roboter soll Wind und Regen aushalten können. Das Resultat wird bei einer Messe vorgestellt. Es gibt zwar schon heute Rasenmäher-Roboter (siehe Bild), diese müssen aber kompliziert konfiguriert werden und man muß die Umgebung für den Roboter anpassen. Wir wollen aber, dass sich der Roboter der Umgebung anpasst.
32. Aibo
Die Aibo-Roboter von Sony
Programmierung und Einsatz von Sony-Laufrobotern. Wir haben zwei Sony-Roboter, die zum Laufen gebracht werden sollen. Es gibt eine Programmierumgebung für die Roboter, die speziell auf RoboCup zugeschnitten ist. Diese kann man den eingenen Bedürfnissen anpassen. Zum Beispiel kann man die Computervision von unseren Mid-Size-Robotern auf die Sony-Roboter portieren.
33. WaveLan fahren
Kamerabild
Animation (Quicktime, gif), Gesamte Entzerrung (gif)
Mit dem Joystick über einenen Monitor den Roboter über das Internet steuern. Dabei die Anzeige der Omnikamera transformieren.