Da nun der Abgabetermin nur noch ca. 2.5 Monate vor mir liegt, muss ich langsam daran denken, den praktischen Teil abzuschliessen und mich voll und ganz dem schriftlichen zu widmen. Auf Anregung von Lukas Neukom möchte ich aber noch eine Sache in dieser Arbeit ausprobieren: Wie verhalten sich all meine Roboter-Kreaturen auf zufälligem Untergrund (d.h. nicht einfach eine Ebene, sondern hügeliges Terrain) und ist es möglich, die Roboter dort anzupassen? Des Weiteren möchte ich untersuchen, ob meine Roboter auch in der Lage sein werden, kleine, vorerst äussert schwierig zu überwindende Hindernisse (wie z.b. ein im Terrain festgemachter Quader, der hervorragt) immer schneller zu passieren?
Fragen über Fragen, die ich innerhalb meiner Arbeit noch beantworten möchte.
Montag, 27. August 2007
Samstag, 25. August 2007
Videos nun auf YouTube
Da es bei verschiedenen Personen Probleme gab, die Videos anzugucken, habe ich mich entschieden, die Videos auf YouTube hochzuladen. Im Moment sind nur die hochgeladen, die nicht direkt verlinkt werden konnten (Videos auf gratis File-Sharing-Seite). Das wären diese beiden:
Video grosse Spinne
Video kleine Spinne
Auch wenn die Qualität ein bisschen zu wünschen übrig lässt, kann man trotzdem gut erkennen, wie sich die Spinne fortbewegt. Bei YouTube kann ich auch sicher gehen, dass sie noch in einem Jahr noch nicht gelöscht wurden (wahrscheinlich), bei allen anderen gratis Webspace hingegen können unter Umständen die Videos sofort verschwinden.
Video grosse Spinne
Video kleine Spinne
Auch wenn die Qualität ein bisschen zu wünschen übrig lässt, kann man trotzdem gut erkennen, wie sich die Spinne fortbewegt. Bei YouTube kann ich auch sicher gehen, dass sie noch in einem Jahr noch nicht gelöscht wurden (wahrscheinlich), bei allen anderen gratis Webspace hingegen können unter Umständen die Videos sofort verschwinden.
Donnerstag, 2. August 2007
Die Spinne bekommt mehr Beine
Nachdem ich sie eine Nacht lang entwickeln liess, kam ein erstaunlicher Gang zu Stande: Er ist sehr gleich wie der einer richtigen Spinne, mit dem Unterschied, dass sich die vordersten und hintersten Beine parallel bewegen, die mittleren hingegen genau immer umgekehrt. Ein Videovergleich soll dies illustrieren:
Video simuliert
Video real
Das Diagramm links zeigt den Entwicklungsprozess über 700 Generationen (obwohl ich den PC insgesamt 7 Stunden laufen liess, konnten in der Zeit nicht mehr soviele Generationen wie das letzte Mal (1700) Generationen simuliert werden. Die höhere Komplexität der Spinnen hatte einen erheblichen Einfluss in die Performance der Physik-Engine. Das Diagramm zeigt, dass wahrscheinlich mehr oder weniger das Maximum erreicht worden ist.
Mittwoch, 1. August 2007
Neue Kreatur: Spinne
Die Hauptprobleme bei der Implementation waren, die aktuellen Gelenk-Informationen dem neuronalen Netz bereitzustellen. Leider bietet die Physik-Engine (AGEIA PhysX) keine direkten Funktionen an, um bei einem Gelenk die Winkel auszulesen. Deshalb musste ich komplizierte Vektorgeometrie anwenden, um die richtigen Winkel zu berechnen.
Nach einigen Stunden war dann die Kreatur bereit, trainiert zu werden. Es ist sehr wichtig, dass man alle Eingaben und Ausgaben bei einem neuronalen Netz von Hand überprüft, denn allfällige Fehler sind nicht direkt sichtbar, man merkt es erst, wenn sich die Kreatur nicht wirklich verbessert.
Im Video sieht man, wie die Spinne praktisch am Optimum des Möglichen ist. Die Bewegung ist sehr rund und extrem synchron (alle Gelenke werden jedoch einzeln angesteuert!). Da es sich bei der Spinne um eine relativ einfache Aufgabe handelt, eignet sie sich auch, um nochmal das Thema Steuerkommandos für Roboter wieder zu beleben.
Video nach ca. 1700 Generationen
Abonnieren
Posts (Atom)