Unser Projekt

Niklas und ich haben uns zusammen getan und dazu entschlossen ein Projekt basierend auf Cozmos interner Landkarte und der Kamera zu entwerfen. Wir wollten mit den „ObjectMarkern“ die ich im letzten Blog angesprochen hatte arbeiten, da uns diese interessanter erschienen als „FixedCustomObjects“, denn der Unterschied besteht ja in der Abwechslung und der Möglichkeit die Anordnung der Objekte zu verändern was bei fixen Objekten nicht gegeben ist. Unser Projekt basierte also auf Cozmos Fähigkeit die Marker zu erkennen, dann die Objekte auf seiner internen Landkarte zu vermerken und diese auf sinnvollste Weise zu umfahren. Da liegt die Idee eines Labyrinths sehr nahe. Das besondere sollte sein das man das Labyrinth immer wieder neu aus Papierboxen und Wänden zusammen stellen konnte wie man wollte und Cozmo würde dieses dann jeweils durchfahren da er durch die Marker die Objekte erkennt und eine Route anlegt. Die ersten paar Stunden haben wir also damit verbracht uns auf der Anki Dokumentationsseite alles zu den „CustomObjects“ und „ObjectMarkern“ durchzulesen da wir bis zu dem Punkt noch gar nicht wussten, dass diese so existieren und wie Cozmo generell mit Objekten umgeht.

Das war natürlich eine Besonderheit des Projektkurses das niemand, Herr Eschweiler eingeschlossen, wusste wie Cozmo funktioniert und wie der Quellcode aussah der notwendig war damit Cozmo etwas ausführte. Am Anfang hat sich also jeder erstmal in die Richtung eingelesen die ihn interessierte bzw betraf und am Ende wusste jeder zumindest über einen Teil weitaus mehr als Herr Eschweiler oder die anderen sodass man sich gegenseitig Tipps geben konnte und sich helfen konnte wenn jemand anders Fragen zu einem Bereich hatte den man kannte. Es war auch sehr amüsant mal dem Lehrer etwas beibringen zu können das er noch nicht wusste wobei es auch komisch war wenn der Lehrer einem auf Probleme keine Antwort geben konnte da er selber weniger zu dem Thema wusste als man selbst.

Aber nun zurück zu unserem Projekt. Wir sind ziemlich schnell auf die Idee gekommen das es praktisch wäre wenn man sehen könnte was Cozmo sieht. Also haben wir die „Camera“ importiert und mit zwei simplen Befehlen wurde das Bild von Cozmos Kamera jedesmal wenn wir eine Methode ausführten auf dem Bildschirm angezeigt.

Den ersten Befehl schreibt man in das Projekt und es bringt Cozmo dazu das Bild seiner Kamera zu übertragen. Damit man dieses dann jedoch sieht werden die letzten zwei Methoden im Aufruf des ganzen Projekts verwendet.

Wie man auf dem Bild sehen kann zeichnet Cozmo einen Rand mit den Maßen des Objekts das er aufgrund des Markers wahrgenommen hat um die Marker. So sieht man immer ob Cozmo das Objekt richtig erstellt hat oder ob wir etwas falsch programmiert hatten. Auch wenn die Qualität natürlich nicht sehr gut ist und wir diese Funktion nur durch Zufall entdeckt haben was sich jedoch als sehr praktisch herausstellte hat die Kamera viel dabei geholfen nachvollziehen zu können was Cozmo tut. Beispielsweise ist Cozmo oft durch die Objekte gefahren. Der Grund war natürlich das er den Marker nicht erkannt und dementsprechend kein Objekt erstellt hat und da in der Übertragung der Kamera auch kein Kasten gezeichnet worden war wussten wir sofort das Cozmo den Marker einfach nur nicht erkannt hatte. Da kommen wir aber auch schon zu dem größten Problem das uns während unseres Projekts an Cozmo aufgefallen ist. Problem Nummer eins ist das man Cozmo bei der Methode go_to_pose() oder generell nicht in seiner Geschwindigkeit beschränken kann. Und das hat sehr oft dazu geführt das Cozmo viel zu schnell gefahren ist um alle Marker wahrzunehmen und deswegen ist er oft durch die Boxen gefahren. Hier findet sich also schon ein Kritikpunkt und Verbesserungsvorschlag für Cozmo. Auch wenn uns dieses Problem sehr beschäftigt hat ließen wir uns davon jedoch noch nicht entmutigen und haben uns verschiedene Lösungsansätze überlegt und diese dann auch ausprobiert. Die erste Idee war es kleinere Marker zu drucken da diese dann leichter in Cozmos Blickfeld geraten können. Das haben wir zumindest gedacht, aber es stellte sich heraus das Cozmo die Marker trotzdem nur ab und zu erkennt und auch immer andere Kombinationen, es ließ sich also kein Fehler bei einem bestimmten Symbol feststellen oder so. Als nächstes haben wir versucht das Cozmo sich erstmal langsam um sich selbst dreht sodass die Objekte erst wahrgenommen werden können und erst danach fährt Cozmo dann durch die freie Lücke. Jedoch bestand hier immer noch das Problem das Cozmo wieder nicht alle Marker erkannt hat. Auch hier haben verschieden große Marker und das ändern der Positionen nichts bewirkt. Der letzte verzweifelte Versuch mit einer Taschenlampe den Verdacht von unterschiedlichen Lichtverhältnissen auszugleichen hat leider auch nicht geholfen und Cozmo hat wieder zufällig manche Marker erkannt und manche nicht. Das hat uns zu dem Schluss kommen lassen das Cozmos Kamera einfach noch nicht so ausgereift ist das sie ein verlässliches arbeiten mit den „CustomObjectMarkern“ ermöglicht und haben unser Projekt damit beendet da es anscheinend nicht umsetzbar ist.