Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

projektesose2015:armin_clean:start

Dokumentation

Einleitung

Beschreibung des Roboters:

Unser grundsätzlicher Anspruch an unseren Roboter war die Funktion Schachfiguren auf Befehl hin und her bewegen zu können, diese präzise zu platzieren und dabei keine anderen Figuren um zu stoßen. Unser Roboter Ar/\/\in besteht aus 3 Servos -die paralel geschaltet sind- die mit Hilfe von Holz und Pappe einen Arm darstellen und einer Grundplatte auf die der Arm geschraubt ist. Die Grundplatte ist auch die Unterlage für das Spielfeld. Weiterhin hat unser Roboter einen Greifer. Über einen Laptop und dem dazugehörigen Programm, kann man durch die Eingabe der Schachfelder dem Arm den Befehl geben eine Figur zu bewegen.

Umsetzung

Überlick über das Gesamtsystem:

Die verschiedenen Baugruppen der Roboters übernehmen unterschiedliche Teilaufgaben:

  • Grundplatte:

Die Grundplatte bildet die Grundstütze für unseren Roboter. Sie macht ihn transportabel, kippsicher und dient gleichzeitig als Spielfeldunterlage.

  • Servos:

Sie sorgen für die Beweglichkeit des Arms. Je nach dem in welche Richtung sie montiert sind sorgen sie für die Bewegungsfreiheit des Arms, entweder in die vertikale oder in die horizontale Richtung.

  • Greifer:

Der Greifer greift nach der Positionierung der Arms die Figuren und lässt sie auf ihrer neuen Position wieder los.

  • Arduino:

Der Arduino ist die zentrale Recheneinheit in unserem Roboter. Er steuert alle Servos und den Greifer. Der Arduino sorgt dafür, dass die elektronischen Teile genau dann ihre Funktionen ausüben, wenn sie an der Reihe sind. Sobald die Eingabe an dem Laptop erfolgt, auf welcher Position die Schachfigur steht, die bewegt werden soll, steuert der Arduino die Servos an, damit der Greifer so positioniert wird, dass die Figur von diesem gegriffen werden und zu ihrem neuen Platz bewegt werden kann.

  • Schachfeld:

Das Schachfeld ist unser Spielfeld auf dem interagiert wird.

  • Sofware:

Wir haben ein auf Java basierendes Programm geschrieben, welches uns die Möglichkeit gibt, unseren Roboter über ein Aktionsfenster zu steuern.

Die Mathematik dahinter

Die Volgende Matrix beschreibt die Drehungen die unser Roboterarm vollführt. Mit ihrer Hilfe können wir nun die Winkel der Gelenke bestimmen und an welcher Stelle sich der Greifer in unserem dreidimensionalen Koordinatensystem befindet. Die Matrix ergibt sich aus drei vorhergehenden Matrizen: A1, A2 und A3. Jede einzelen steht für die Drehung eines Armgelenks. Wenn man diese multipliziert erhält man die auf dem Bild dargestellte Matrix T. Dreht man die Rechnung um, kann man die Koordinaten eingeben an die sich der Arm bewegen soll und wir erhalten die Winkel die die Servos anfahren müssen.

Bauteile

Bauteil Anzahl
Dynamixel AX-12A (Servos) 3
Greifer 1
Arduino Nano 1
Grundplatte (Holz) 1
Diverse elektronische Bauteile wie Kabel, Widerstände mehrere
Diverse statische Bauteile wie Holz und Pappe mehrere
Schachfeld 1

Pinbelegung

Da uns unser Arduino Leonardo wärend des Projektes kaputt gegangen ist, und die Nano´s nur eine Serielle Schnittstelle haben, mussten wir den Arduino Nano mit einem Software Serial versehen. Hierbei werden einfach zwei der Digitalpinns als Serielle Schnittstelle verwendet. Dies geht allerdings zu lasten der Übertragungsgeschwindigkeit, was wir in kauf nahmen, da für unseren Arm die Übertragungsgeschwindigkeit nicht so besonders wichtig ist. Wir verwendeten die Digital Pins 4 und 5. Hierbei ist einer der Steuerpin und von dem anderen geht die Spannung aus. Der dritte Pin ist der Ground Pin.

Herausforderungen

Die größte Schwirigkeit die wir bei der Planung und Umsetzung hatten war die Koordinierung des Armes im Raum. Da wir uns als Ziel gesetzt hatten den Arm nur durch die Eingabe der für Schach üblichen Koordinaten zu bewegen, mussten wir uns mit den mathematischen Grundlagen der Matrizenmultiplikation vertraut machen. Da wir mit linearer Algebra nur wenig vertraut waren, stellte sich das selbstständige Erlernen dieser einen großen Zeitaufwand dar, den wir eventuell etwas unterschätzt haben. Der Arm soll selbstständig die Figur von der genannten Position auf dem Schachfeld greifen und zum angegebenen Feld bewegen um sie dort abzusetzen. Die einzige Aufgabe die der bedienende Mensch dabei zu erledigen hat, ist also die Benennung der beiden Schachfelder.

Eine weitere eher kleine Herausforderung war die Planung der zu verwendenden Servos. Um bestimmen zu können welche Kraft die Servos aufbringen müssen, mussten wir uns zunächst für die Materialien des Arms entscheiden. Um so leicht wie möglich zu bauen entschieden wir uns für Pappe und als Verbindungsteile Holz. Trotzdem mussten unsere Servos einiges an Kraft aufbringen, und so entschieden wir uns für die Dynamixel AX-12A.

Code

Teils kommentierter Code:

Gesamter Code:

projektesose2015/armin_clean/start.txt · Zuletzt geändert: 2016/01/21 12:45 (Externe Bearbeitung)