Wir möchten einen Roboter bauen, der eine vorgegebene oder algorithmisch erzeugte Zeichnung auf Papier oder einem vergleichbaren ebenen Untergrund anfertigen kann.
Es geht nicht darum, einen fahrbaren Drucker zu entwickeln, der z.B. mittels Kamera von aussen überwacht wird, sondern einen autonomen Roboter, der sich selber lokalisiert und dementsprechend handelt.
Hierbei soll sich der Kurs von Malokal selbst korrigieren, um Kursabweichungen und Fahrfehler auszugleichen.
Dazu soll mittels Partikelfilter (Berechnung des wahrscheinlichsten Aufenthaltsortes) oder relativer Messungen mit optischen Mausmodulen die Position des Roboter geschätzt werden. Diese Informationen sollen dann in Kurskorrekturen eingerechnet werden.
Zur Gewinnung von Informationen des aktuellen Aufenthaltsortes sollen Infrarot-Leuchttürme an bestimmten Punkten im Raum positioniert werden.Es sind mindestens drei nötig, besser wären aber mehr Leuchttürme. Der Roboter verfügt über einen IR-Empfänger, der mittels Schrittmotor gedreht wird. Dreht sich nun der IR-Empfänger, erkannt er, in welcher Richtung (also an welchem Winkel) sich ein IR-Sender befindet. Mit den drei Winkeln wird dann mit Triangulation und Partikelfilter die Position bestimmt.
Malokal muss
Malokal soll
Es wäre nice to have, wenn Malokal
Es muss eine gute Basis für den Roboter gefunden werden.
Bewegt werden soll der Roboter auf drei Rädern, wobei zwei Schrittmotoren auf je einer Seite des Roboters zum steuern und fahren dienen und ein drittes, passives Rad, als Stütze.
Nötig ist natürlich eine Grundplatte, an der angebracht werden:
Die Grundplatte wird so konstruiert, dass der Stift mittig auf der Achse der Räder sitzt, um scharfe Ecken zeichnen zu können und die Steuerung einfach zu machen.
Das Material wird vornehmlich Holz sein, da es leicht zu bearbeiten ist, dabei nicht all zu schwer wird.
Außerdem sollten wir uns überlegen, welche Elektronik-Lösungen gelötet werden und welche auf den Breadboards variabel gesteckt werden.
Der Antrieb soll durch zwei Schrittmotoren erfolgen. Diese werden im vorderen Bereich des Roboters angebracht und können getrennt angesprochen werden. Im hinteren mittleren Bereich wird ein frei drehbares nicht angetriebenes Rad verbaut.
Es sollte darauf geachtet werden, dass der Schwerpunkt möglichst weit unten und in der Mitte des Roboters liegt. Das macht ihn weniger anfällig für eventuelle abrupte Richtungswechsel etc.
Was ist nötig?
Zu Beachten:
Es sollte darauf geachtet werden, dass die Plattform waagerecht zum Boden verläuft. Dafür müssen die Höhe des Stützrades und die der Schrittmotoren angeglichen werden.
Am einfachsten ist es sicherlich, das Stützrad entsprechend mit Abstandhaltern (welcher Art auch immer) soweit von der Platte entfernt anzuschrauben, dass die Plattform nicht schief ist.
Zu recherchieren:
Dazu mehr im Kapitel Fahren.
Außerdem brauchen wir eine Vorrichtung zum Halten, Heben und Senken des Stifts.
Weiterhin brauchen wir einen Turm. Ideen dazu werden im Kapitel Orientierungssensoren behandelt.
Der Malokal soll einen „Turm“ bekommen, auf dem sich ein Infrarot-Empfänger dreht und sein komplettes Umfeld nach den positionierten IR-Leuchttürmen absucht.
Zum Drehen wird ein Schrittmotor verwendet.
Die Idee ist also folgende: Der Schrittmotor dreht sich Step für Step.
Empfängt der IR-Empfänger ein IR-Signal eines Leuchtturms (jeder Leuchtturm hat eigene Signatur, dazu später mehr), wird der aktuelle Schritt des Steppers, also die aktuelle Ausrichtung der Empfängers, dazu genutzt, um einen Winkel zu berechnen.
Winkel = aktueller Step × Grad pro Step
Dazu muss bekannt sein, welcher Step 0° ist.
Zu tun:
Risiken:
Bei einer unausgereiften Konstruktion können die Winkel evtl. ungenau sein.
Bei Verwendung eines Partikelfilters tendenziell nicht so schlimm.
Evtl. könnte der Schrittmotor Fehler machen. Diese könnten sich aufsummieren. Dieses Problem könnte mit eine optischen/Durchgangs-Kalibrierung (wie Fahrradtacho o.ä.) abgefangen werden.
Eine weitere Idee, ist die relative Bewegung vom Malokal zum Papier zu messen, um die evtl. auftretenden Fehler der Schrittmotoren auszugleichen.
Dazu soll jeweils ein Mausmodul rechts bzw. links der Räder an einem Ausleger angebracht werden.
Die Module messen jeweils die zurückgelegte Strecke. Abweichungen werden verrechnet und zur Kurskorrektur verwendet.
Recherche:
Es muss überprüft werden, wie genau diese Mausmodule sind. Danach muss geprüft werden, ob diese Genauigkeit höher ist als die der Schrittmotoren selbst. Ist dies nicht der Fall, braucht man diese Idee nicht weiter zu verfolgen.
Material:
Es werden Mausmodule benötigt.
Die können einfach billige Mäuse aufgeschraubt und die entsprechenden Teile ausgebaut werden.
Anleitungen zur Verkabelung gibt es Online.
Zum Zeichnen müssen wir die Position des Malokal auf dem Papier kennen. Diese Position sollte möglichst genau sein, um Zeichenfehler zu vermeiden und idealer Weise in jedem Moment neu bestimmt werden können, ohne dabei auf alte Daten zurückgreifen zu müssen. Benötigt wird zum einen der Punkt, an dem sich Malokal befindet, also die x- und y-Position. Zum anderen braucht man die Ausrichtung des Roboters, also den Winkel.
„Bei der Lösung mittels Partikelfiltern wird die Pose des Roboters über eine Partikelwolke repräsentiert. Jeder Partikel stellt eine mögliche Pose des Roboters dar. Über den Partikelfilter wird jeder Partikel, also jede dadurch repräsentierte Pose, auf ihre Plausibilität überprüft. Die Wahrscheinlichkeit plausibler Partikel wird heraufgesetzt, die Wahrscheinlichkeit wenig plausibler Partikel wird reduziert. Fallen Partikel unter einen bestimmten Wahrscheinlichkeits-Schwellwert, werden sie verworfen.“
Quelle: http://de.wikipedia.org/wiki/Lokalisierung_%28Robotik%29//
Hier sind definitiv noch tiefere Recherche-Arbeiten nötig. Das Internet stellt viel Material bereit (dutzende Doktor- und Diplomarbeiten). Diese sind aber schwierig zu lesen, da sie sehr mathematisch und theoretisch aufgebaut sind und die Syntax kompliziert ist.
Mit dem drehbaren Turm werden die Winkel zu den Leuchttürmen gemessen und an den Partikelfilter übergeben. Mit drei Winkeln lässt sich die x- und y-Position bestimmen.
Die Leuchttürme sind Türme, die mit einer Infrarot-LED bestückt sind. Diese LEDs senden ihre eigene ID aus (definiertes, individuelles Signal). Damit ist jeder Turm eindeutig zu identifizieren.
Die Türme werden an definierten Positionen um das Papier verteilt aufgestellt.
Für die Triangulation werden mindestens drei Türme benötigt. Mehr Türme würden allerdings zu genaueren Messungen führen (z.B. bei Ausfall oder Nicht/Fehl-Messung).
Wir werden unsere Versuche mit drei Türmen starten und im Laufe des Projekts evtl. mehr Leuchttürme einsetzen, je nach dem, wie gut die Ergebnisse werden.
Alle Türme sind an einen zentralen Arduino angeschlossen, der die Signale generiert.
Der Abstrahlwinkel von den LED-Türmen sollte mindestens 90° sein, damit der Turm von jeder Stelle „gesehen“ werden kann. Die Türme müssen ausreichend hoch sein. Die genaue Positionierung ist wichtig. Die LED sollte genau über der Papierecke sitzen.
Die Methode zur Kalibrierung hängt von der Methode zur Lokalisation ab.
Für den drehbaren Turm zur Messung des Winkels zum Leuchtturm ist eine Umdrehungsmessung (vergleichbar mit Fahrradtacho) denkbar. Ausserdem muss zu Beginn der Winkel bekannt sein, bzw Malokal von Hand in einem bestimmten Winkel auf dem Papier positioniert werden.
Bei einer relativen Positionsbestimmung auf dem Papier könnte Malokal in regelmäßigen Abständen die Kante des Papiers optisch oder mechanisch erkennen und die Position dementsprechend ausgleichen.
Wenn der Partikelfilter verwendet wird, werden mehrere Iterationen benötigt, bis die Lokalisierung genau genug ist.
Eventuell muss die Position auch während des Zeichnens von aussen korrigiert werden.
Malokal hat ein Ziel, durch Fahren soll er dieses erreichen. Dazu muss die ist-Position bekannt sein. Abweichungen müssen während des Fahrens ausgeglichen werden.
Die mathematische Repräsentation des Pfades muss noch erarbeitet werden.
Interessant ist eine Beschleunigung beim Anfahren und eine Abbremsung vor Kurven oder vor einem Halt, um Schlupf und die Auswirkungen der Massen-Trägheit zu minimieren.
Die Implementierung ist vermutlich nicht ganz trivial und sollte zeitlich nicht unterschätzt werden.
Wie bekommt Malokal seine Daten? Möglich sind eine USB-Verbindung, eine Anbindung über Infrarot/Funk, WLAN, Bluetooth. Wichtig ist Schnelligkeit und eine einfache Bedienung, da gerade in der Testphase oft neue Daten an Malokal übertragen werden müssen.
Malokal soll entweder nach einem Algorithmus oder einer Vorgabe zeichnen. Ein Bild in Pfade umzuwandeln ist vermutlich sehr schwer, also bietet es sich an, ein Dateiformat zu erfinden, was schon Fahranweisungen enthält.