Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

projektewise2014:malokal:projektplanung

malokal — Projektplanung

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.

Prioritäten

Malokal muss

  • fahren und lenken
  • eine programmierte Route entlang fahren
  • durch Erkennung der Leuchttürme Winkel bestimmen
  • eine Stiftvorrichtung bekommen, die ihn malen lässt

Malokal soll

  • seinen Kurs korrigieren können

Es wäre nice to have, wenn Malokal

  • Outdoor-tauglich wird
  • mit einer Fernbedienung steuerbar ist
  • Sensoren hat (Taster o.ä.), die Kollisionen mit Wänden verhindern
  • Multicolor zeichnen kann
  • selber das Papier oder ähnlichen Untergrund erkennen kann

Roboter

Basis

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 Servomotoren
  • das Stützrad
  • die Elektronik
  • die Batterien/Akkus
  • ein drehbarer Turm für den IR-Empfänger
  • eine Vorrichtung für den Stift

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.

Fahrgestell und Aufbau

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?

  • Zwei Schrittmotoren
  • Zwei Antriebsräder
  • 2 Schrittmotor-Treiber (Polulu)
  • Stromversorgung (für die Stepper wird ein Akku mit max. 10,8 V benötigt)
  • Ein frei drehbares Rückrad (Bei Pollin heißen die „Laufrad“) :

cdn.pollin.de_article_big_g441516.jpg

Befestigung der Komponenten

  • Antriebsräder werden an die Stepper-Achsen geschraubt
  • die Stepper selbst müssen an der Grundplatte befestigt werden
    • Möglichkeiten hier sind: Klemmverbindungen, Schrauben
  • Das Stützrad wird einfach an die Platte geschraubt

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:

  • Ansprechen der Stepper ohne Delay
  • sanftes Beschleunigen und Bremsen der Stepper
  • Kurvenfahren

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.

Orientierungssensoren

Infrarot

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:

  • Turm bauen (aus Holz)
  • Schrittmotor anbringen
  • Gedanken machen, wie der IR-Empfänger befestigt wird
    • Das Problem wird sein, dass der IR-Empfänger ja verkabelt ist
    • Wenn dieser auf dem Motor sitzt, drehen sich die Kabel auch mit
    • Das führt nach kürzester Zeit zum Super-Gau
    • Es braucht also entweder eine Konstruktion mit Bürsten
    • Oder eine, bei der sich der Empfänger nicht mit dreht, sondern nur ein Spiegel o.ä.
    • Eine einfachere Alternative ist es wahrscheinlich, die Richtung der Drehung nach einer Umdrehung umzukehren.
      • Eventuell könnte hier die zeitliche Änderung der Messung zu Problemen führen (nur so ein Gedanke)

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.

Optisches Mausmodul

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.

Lokalisierung

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.

Partikelfilter- Algorithmus

„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.

Prinzip der Triangulation

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.

Leuchttürme

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.

Kalibrierung

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.

Dynamik

Fahren (Pfad berechnen, Abweichungen korrigieren)

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.

IO

Kommunikation mit dem Rechner

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.

Vorgabe, Bild

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.

projektewise2014/malokal/projektplanung.txt · Zuletzt geändert: 2016/01/21 12:45 (Externe Bearbeitung)