Dies ist eine alte Version des Dokuments!
Theodor Simon Morawetz
Anna Wolf
Rembrandt van Rijn, einer der bekanntesten Künstler des Barock, lebte zu einer Zeit, in der die Kunst aus den Königspalästen in den Alltag der breiten Mittelschicht Einzug fand. Das eröffnete völlig neue Möglichkeiten dafür, was Kunst bedeutet und sein kann und immer mehr Menschen wurden selbst zu Künstlern. Und jetzt, wo es möglich ist: Warum nicht auch Roboter?
Ziel unseres Rembrandt-Projektes ist es also, einen zeichnenden Roboter zu bauen. Er soll aus einer Zeichenvorrichtung und einer (evtl. beweglichen) Kamera bestehen, mit der er den zu zeichnenden Bildausschnitt fotografieren kann. Über entsprechende Prozesse der Bildbearbeitung und -analyse sollen Zeichenbefehle aus dem Bild extrahiert werden, die der Roboter dann über einen an einem beweglichen Wagen angebrachten Stift aufs Papier bringt.
Was der Roboter können muss:
Was der Roboter könnten soll:
Was nett wäre:
Was wir bewusst weglassen:
Der Roboter soll auf ein noch zu definierendes (beispielsweise visuelles) Signal hin mit der eingebauten Kamera eine Aufnahme machen und diese an Processing senden. Dort soll das Bild soweit bearbeitet werden, dass im nächsten Schritt die Extrahierung der Zeichenbefehle reibungslos funktioniert. Es ist noch zu recherchieren, welche Vorraussetzungen dafür nötig sind, es liegt jedoch nahe, den Kontrast zu erhöhen und die Aufnahme in ein Schwarz-Weiß-Bild umzuwandeln. Zudem sollte ein Ausschnitt gewählt werden, der sich auf das Papier übertragen lässt (Format und Seitenverhältnisse).
Im späteren Abschnitt 4. Zusätzliche Features wird noch auf eine mögliche Weiterentwicklung des Kamerasystems zur autonomen Wahl eines Bildausschnitts eingegangen.
Dieser Aufgabenbereich dient lediglich der Vorbereitung auf den viel wichtigeren Teil der Extrahierung der Zeichenbefehle aus dem Bild. Als solcher wird er vorraussichtlich keine allzu große Herausforderung darstellen, da sich Funktionen zur Bildbearbeitung in Processing relativ schnell recherchieren lassen sollten. Wichtig ist, dass wir nicht zu viel Zeit in diese Aufgabe investieren, da wir eventuelle Einstellungen in der Testphase noch optimieren können.
In diesem Aufgabenbereich soll eine Methode entwickelt werden, die ein bereits vorbearbeitetes Bild entgegennimmt und daraus Zeichenbefehle für den Roboter generiert. Dafür muss zunächst nach einer gründlichen Recherche der dazu in Processing implementierten Funktionen und bereits in der Literatur vorhandenen Algorithmen entschieden werden, welchem Konzept das zeichnen folgen soll.
Eine sehr primitive Variante wäre es, das Bild in eine Matrix aus Einsen und Nullen zu konvertieren, in denen Eins für einen schwarzen und Null für einen weißen Punkt steht, und dann den Zeichenwagen Zeile für Zeile über das Bild fahren zu lassen, wie einen Drucker.
Wünschenswerter, aber bei weitem komplexer wäre es, prägnante Linien (oder sogar Kurven) aus dem Bild zu extrahieren und dem Roboter (z.B. in Form von Punktkoordinaten oder Anfangs- und Endpunkten) zu übergeben. In diesem Fall wäre es möglicherweise sinnvoll, sich neben den Linien, die das Bild konstruieren auch Gedanken über mögliche Schattierungen zu machen, die zusätzlich Hell-Dunkel-Kontraste schaffen könnten.
Die Methode ist das Kernstück des Roboters. Sie nimmt das im Aufgabenabschnitt 1. Bildaufnahme und -bearbeitung enstandene Bild entgegen und übergibt anschließend die Befehle an den vom Arduino gesteuerten Zeichenwagen (Abschnitt 3. Ansteuerung des/der Stift(e)).
keine - Computer und Testbilder sollten bereits vorhanden sein
Es gibt bereits einige Malroboter im Robotik-Wiki. Möglicherweise finden wir daher nützliche Ansätze in deren Projekt-Dokumentationen. Ebenfalls interessant könnte der Artikel Portrait drawing by Paul the robot sein,
Dieser Aufgabenbereich ist quasi das Gehirn des Roboters und damit für das Gelingen des Projektes unerlässlich. Gleichzeitig ist er der komplexeste und am wenigsten gewisse Teil. Zeitmangel wird hier das größte Problem sein, deshalb sollten alle anderen Aufgabenbereiche so schnell wie möglich erledigt werden. Im Notfall können wir aber immer auf die primitive Variante des Matrixdrucks zurückgreifen.
In diesem Aufgabenbereich geht es um die Umsetzung der von Processing übergebenen Zeichenbefehle. Die Hardware ist bereits so gut wie vorhanden: Als Grundaufbau möchten wir den MazeMate-Roboter aus dem WiSe 17/18 benutzen. Dieser umfasst bereits ein Brett als Unterlage, über das sich ein Wagen bewegen kann. Ähnlich wie bei einem 3D-Drucker gibt es zwei Schienenführungen, eine in x- und eine in y-Richtung, sodass jeder Punkt im Bild durch seine Koordinaten (x, y) dargestellt werden kann. Die Ansteuerung des Wagens geschieht über Stepper.
Eingebaut werden muss lediglich der Stift (bzw. die Stifte), und zwar so, dass er sich auf- und absetzen lässt.
Projektdokumentation des MazeMates
Da der Aufbau bereits vorhanden ist, ist es schwierig, im Nachhinein größere Änderungen zu machen. Wenn ein Apsekt des Aufbaus nicht in unser Konzept passt, ist es möglicherweise nötig, unsere Anforderungen anzupassen. Zudem besteht die Möglichkeit, dass die Winkel im Aufbau nicht genau 90° sind, oder dass ein Zahnradschritt zu ungenau für die gewünschte Auflösung ist. Wir sollten deswegen früh prüfen, ob wir die Zahnräder ersetzen können und sollten.
Die Testphase schließt sich an die Aufgabenbereiche 1-3 an und optimiert die darin entwickelte Soft- bzw. Hardware. Dazu sollten wir unseren Roboter zunächst einfache Bilder oder Objekte abzeichnen lassen und uns dann an immer komplexere Gegenstände bis hin zu Personen wagen.
Möglicherweise müssen wir hierfür weitere Recherchen anstellen, abhängig von den vorgefundenen Fehlern.
Je mehr Zeit für die Testphase bleibt, desto besser. Erfahrungsgemäß könnte es allerdings knapp werden. Deshalb: Durchatmen, Kopf freikriegen und den Überblick behalten. Bevor wir uns in irgendein kleines Teilproblem verennen, sollten wir lieber systematische Tests druchführen und bei Problemen auch Meinungen anderer einholen.
Im Abschnitt Ziele und Prioritäten stehen unsere zusätzlichen Wünsche für den Rembrandt-Roboter. Sie zu erfüllen, wäre nett, ist aber nicht unbedingt notwendig. Daher wird dieser Aufgabenbereich nur dann bearbeitet, wenn noch Zeit dafür ist.
Je nach Umsetzung der zusätzlichen Features:
Bei großen Eingriffen sollten wir dringend sicherstellen, dass wir genug Zeit zur Verfügung haben. Sollte das zusätzliche Feature nicht rechtzeitig funktionieren, müssten wir sonst wieder alles abbauen.
11,35 €*