Cozmo in Python

Nun da wir uns mit Python vertraut gemacht hatten war es an der Zeit mit Cozmo in Python zu programmieren. Zum einfacheren Verständnis stellt Anki die Firma hinter Cozmo eine Datei mit ein paar simplen Programmen zur Demonstration von Cozmos Fähigkeiten und den dazugehörigen Befehlen zur Verfügung. Nachdem wir die Programme kurz ausprobiert hatten sollten wir auf Github, einer Plattform auf der Entwickler ihren Quellcode zugänglich machen, ein paar Befehle finden wie zum Beispiel Cozmos Arm auf eine bestimmte Höhe heben oder sich um 90 Grad drehen. Mit diesen Befehlen haben wir unsere Cozmos dann ein bisschen Rechtecke fahren lassen und dabei den Arm heben und senken. Da Github allerdings nicht so übersichtlich haben wir für die restliche Zeit des Kurses die Dokumentation von Cozmos Attributen und Methoden von Anki die sich hier findet verwendet.

 

Das Programmieren mit einem existierenden Roboter ist allerdings vom Aufbau des Projekts ein bisschen anders als ein Projekt mit virtuellen Objekten auf dem Pc.

 

Damit Python auf Cozmo und seine Methoden zugreifen kann müssen erst die Daten von Cozmo importiert werden. Danach werden die Kategorien und Einheiten die für das Projekt notwendig sind einzeln importiert. Dazu gibt man erst den Pfad zum Ordner und dann die zu importierenden Daten an. In diesem Beispiel werden die Einheiten Millimeter pro Sekunde und Pose also eine Position importiert sowie die gesamten Klassen World und Camera. Weshalb dies wichtig ist erkläre ich später wenn wir zu dem Projekt von Niklas und mir kommen.

 

Die Klasse cozmo.robot.Robot ist quasi das Interface von Cozmo und steht für den Roboter und ist deswegen die Klasse die alle Methoden die direkte Interaktionen von Cozmo betreffen ausführt wie zum Beispiel zu einer Position zu fahren usw. Deswegen wird diese Klasse als Parameter direkt zu Beginn der Methode angegeben. Für eine einfachere und abgekürzte Schreibweise wird der Klasse der Buchstabe c zugewiesen sodass man später nur noch  c.go_to_pose() statt cozmo.robot.Robot.go_to_pose() eingeben muss, da Python weiß das c für die Klasse Robot steht.