Mit dem SALT-Dobot in der Roboterschule

Flaschen erkennen, greifen und am vorgesehenen Ort wieder abstellen: Lesen Sie, was unsere Azubis in einem einwöchigen Hackathon dem Industrieroboter Dobot M1 beigebracht haben. Hier ein Auszug aus ihrem Projektbericht:

Tag 0 – Die Vorbereitung

Begonnen hat das Team unter Leitung des ABAP-Entwicklers und Experten Samuel de Vos mit einer Schulung über Python und diverse Hilfsmittel. Max Schmitt hat darin die anderen Azubis Janik Dotzel, Dennis Kaiser, Julia Martin und Moritz Schaubeck auf die Anforderungen bei der Programmierung vorbereitet. Dabei hat er eine Verbindung zu ABAP geschaffen, um so syntaktische Komponenten mit den Möglichkeiten von Python zu vergleichen. Max hat auch spielerische Elemente zur Festigung des Wissens eingebaut, zum Schluss haben alle Teilnehmer Einführungsaufgaben aus dem internen Wiki in Python nachprogrammiert, etwa Hangman, Zinsberechnung, Zahlenraten und Fibonacci-Zahlen.

Tag 1 – Schulungen und Teameinteilung

Vormittags gab es eine Schulung von Marko de Donno von Variobotic, dem Deutschen Vertrieb des Dobot M1, im Umgang mit der Entwicklungsumgebung „Studio M1“. Zu Beginn erklärte er wichtige Buttons und wie sie die Geschwindigkeit („Vel“), die Beschleunigung („Acc“), die Bewegungen auf der X-Y-Z-Achse, die Rotation („R“) und die Bewegung der Joints kontrollieren (vgl. Abbildung 1). Er gab auch wichtige Hinweise, etwa, dass die Geschwindigkeit für die Bewegungen nicht zu hoch eingestellt werden darf, um Beschädigung von Menschen oder Gegenständen zu vermeiden. Nach der Einführung haben sich die Teilnehmer auf zwei Teams aufgeteilt. Team Kamera sollte sich darum kümmern, dass die Kamera einen Farbabgleich machen kann und die Farben der Flaschen erkennt. Team Dobot sollte sich mit den Reaktionen des Roboters bekannt machen und herausfinden, welche Programmier-Anweisungen zu welchen Bewegungen führen. Als erstes hat Team Dobot dazu einen kleinen „Dobot-Dance“ entwickelt, in dem Dobot alle Bewegungen zeigen darf, die er beherrscht. Hier finden Sie das Video dazu:

Tag 2 – Farbabgleich und Greifarm

Team „Dobot“ hat eine Schnittstelle zwischen Dobot und Raspberry Pi programmiert, über die später die Informationen fließen sollen. Die Daten enthalten die Informationen, ob das Werkstück eingepackt werden soll oder – wenn es nicht in Ordnung ist – nicht, und welche Farbe das Werkstück hat, um es auf den richtigen Platz zu packen. Team „Kamera“ hat den Farbabgleich erweitert, so dass Dobot die Farben nun gleichzeitig erkennen kann. Außerdem haben sie sich mit den Möglichkeiten auseinandergesetzt, die Flasche als Objekt zu erkennen und so die Form abzugleichen. Sie haben das über eine Konturenermittlung umgesetzt, da sich farbbasierte Lösungen als zu einschränkend herausgestellt hatten. Team Dobot hat die Griffstärke des Greifarms justiert, damit Dobot die Flasche weder zerquetscht noch fallen lässt. Im Laufe des Tages haben sie dem Roboter feste Aufnahme- und Ablagepunkte beigebracht und die jeweiligen Wege und Sortierungen programmiert. Zu guter Letzt haben sie auch das Greifen der Flasche in die Bewegung eingebunden und schon erste Testläufe gestartet: Hier das Video dazu:

Tag 3 – Objekterkennung und Schnittstellen-Programmierung

Team Kamera hat es geschafft, die Objekt-Erkennung umzusetzen (siehe Abbildung 3). Dobot erkennt nun eine oder mehrere Flaschen und den Tisch. Das Programm benötigt jedoch noch rund 15 Sekunden dafür, deshalb will das Team noch eine schnellere Lösung finden. Team Dobot hat den Greifer des Dobots enger gemacht, damit er die Flaschen fester greift (mithilfe eines gewöhnlichen Klebestreifens – manches muss man auch in der Robotik pragmatisch anpacken...). Danach haben sie das Programm über die HTTP-Schnittstelle getestet. Sie durften sich über einen schönen Erfolg freuen, denn das Programm funktionierte sowohl lokal auf dem Rechner als auch auf dem Dobot selbst. Sie hatten angefangen, das Programm dynamisch aufzubauen, damit sie die einzelnen Punkte einstellen können und nicht mehr fest im Programmcode definieren müssen. Um dies zu ermöglichen, arbeitete das Team mit dem Koordinatensystem und nicht mehr mit den Joints. Nach diesem Prinzip wollen sie künftig noch weitere Feinoptimierungen der Bewegungsabläufe erreichen.

Tag 4 – Farberkennung und Datenübertragung

Für die Objekterkennung benötigt Dobot DeepLearning-Frameworks, die die technischen Mittel eines Raspberry Pi überschreiten. Daher hat Team Kamera die Objekterkennung erstmal hintangestellt und sich auf die Farberkennung konzentriert. Sie haben einen Algorithmus entwickelt, der alle Pixel in einem definierten Sichtfeld der Kamera scannt und die Farbe anhand der durchschnittlichen Farbwerte erkennt. Diese Farbe wird dann in Form von Datenpaketen an den HTTP-Server des Roboters übermittelt. Das Team Dobot hat sich mit dem folgenden Problem befasst: der Roboter versteht zwar den Befehl move(x,y) als eine Bewegungsanweisung hin zu einem beliebigen Punkt, der Roboterarm kann aber aufgrund seiner Länge und der Art seiner Joints nur einen beschränkten Umkreis erreichen. Außerdem wird nun bei Links-Bewegungen die Linksorientierung der Robotergelenke verwendet und bei Rechts-Bewegungen die Rechtsorientierung. Zum Abschluss des Tages haben alle gemeinsam den ersten Testdurchlauf durchgeführt. Team Kamera hat die Farb-Information über den in Python geschriebenen HTTP-Client an den HTTP-Server auf dem Roboter gesendet. Dobot führte die entsprechende Handlung aus und navigierte alle Flaschen von der Ausgangsposition zur jeweiligen Zielposition. Hurra!

Tag 5 – Abschluss und Testing

Team Kamera hat die sogenannte "Object Detection" wieder eingebaut. Diese ermöglicht es, auf einem Frame (dem Einzelbild eines Videos) zu erkennen, welches Objekt darauf gezeigt ist. Dobot soll mithilfe dieser Technik erkennen, ob sich eine Flasche im Bild befindet. Außerdem haben sie kleinere Anpassungen vorgenommen, um die Bilderkennung zu optimieren und das Ganze noch ausgiebig getestet. Sie haben etwa den Bildbereich, der benötigt wird um die Farbe zu erkennen, verkleinert. Damit ist er nun weniger vom Licht abhängig. Team Dobot hat das Coding der letzten vier Tage ausgiebig getestet und programmiertechnisch modularer aufgebaut. So ist es nun möglich, die Koordinaten der einzelnen Flaschenabstellpunkte im Coding als Konstanten festzusetzen. Des Weiteren haben sie programmiert, dass auftretende Fehler gemeldet werden, sodass sie direkt erkannt werden – etwa falls die Koordinaten ungeeignet oder zu groß sind. Zum Abschluss des Dobot M1 Projekts haben sie gemeinsam alle Features getestet, und siehe da: alles funktioniert fehlerfrei!

Soviel zum Bericht der Azubis. Es werden sicher noch Anpassungen nötig werden, aber jetzt sind sie erst einmal mit dem derzeitigen Stand sehr zufrieden. Es überlegen sich bereits verschiedene Unternehmensbereiche eigene Einsatzszenarien, Dobot wird im Showroom der SALT eine wichtige Rolle spielen und wird auch auf der LogiMat präsentiert.

Und: wir sind stolz auf unser Team Dobot und den Spezialisten Samuel de Vos, Ihr habt eine tolle Arbeit geleistet!

Jetzt brauchen wir einen Namen für den cleveren neuen Kollegen –  Vorschläge sind herzlich willkommen.

Daniela Oppmann

 


Weiterführende Informationen:

Hinterlassen Sie einen Kommentar

Nach oben